diff --git a/crates/imcp2-core/src/discoverability.rs b/crates/imcp2-core/src/discoverability.rs index 97fe49d..0426126 100644 --- a/crates/imcp2-core/src/discoverability.rs +++ b/crates/imcp2-core/src/discoverability.rs @@ -62,7 +62,7 @@ //! discovery still READS it — but it cannot authorize a write, because the //! operators who adopted that proposal published it against different terms and //! never agreed to the ones publishing the protocol manifest now signifies -//! (). Consent that was never given +//! (). Consent that was never given //! cannot be inherited from a path this server invented, so an early adopter is //! refused — and told, precisely, that serving the same JSON at the standard //! path is all that is required. @@ -378,7 +378,8 @@ fn legacy_only_refusal( msg.push_str(if legacy.canisters.contains(canister_id) { "That older document DOES list this canister, but it cannot authorize the write: it \ predates the protocol, and its publishers never accepted the terms that publishing the \ - standard manifest now signifies (https://internetcomputer.org/icp-mcp/terms/). " + standard manifest now signifies \ + (https://internetcomputer.org/icp-mcp/app-operator-terms/). " } else { "That older document does not list this canister either. " }); diff --git a/docs/openai-directory-submission.md b/docs/openai-directory-submission.md index ec5db6c..d53f690 100644 --- a/docs/openai-directory-submission.md +++ b/docs/openai-directory-submission.md @@ -72,7 +72,7 @@ add details not published in the docs. | Public HTTPS production endpoint, stable and complete ("trial or demo plugins will not be accepted") | ✅ production deployment | | Privacy policy disclosing "categories of personal data collected, purposes of use, categories of recipients, data retention timelines" | ✅ the rewritten policy matches these four required disclosures exactly; its one home is `https://internetcomputer.org/icp-mcp/privacy-policy/` (dfinity/internetcomputer-org#77 refreshes its text to the current draft, and the old mcp.internetcomputer.org URL permanently redirects there from the release that ships #165) | | Customer support contact (OpenAI asks for a URL) | ✅ `https://internetcomputer.org/icp-mcp/support/` — the page's one home (the old mcp.internetcomputer.org URL permanently redirects there from the release that ships #165); routes users to , the status dashboard, id.ai access management, GitHub issues, and the security policy | -| Terms of Service URL | ✅ `https://internetcomputer.org/icp-mcp/terms/` — the page's one home (the old mcp.internetcomputer.org URL permanently redirects there from the release that ships #165); Swiss-law terms covering the credentials-never-held session model, the user's sole responsibility for authorized actions, irreversibility of network actions, app-developer acceptance via service discoverability, and as-is/liability limits with the Art. 100 CO carve-out. Needs the same legal pass as the privacy policy | +| Terms of Service URL | ✅ `https://internetcomputer.org/icp-mcp/terms/` — the **ICP MCP User Terms**, the end-user agreement to enter in the portal (the old mcp.internetcomputer.org URL permanently redirects there). Swiss-law terms covering the credentials-never-held session model, the user's sole responsibility for authorized actions, irreversibility of network actions, and as-is/liability limits with the Art. 100 CO carve-out. Since 2026-09-01 the operator-side provisions live in a separate agreement, the [ICP MCP App Operator Terms](https://internetcomputer.org/icp-mcp/app-operator-terms/) (dfinity/internetcomputer-org#90), which governs how applications are made discoverable and is not the URL a directory listing wants. Both need the same legal pass as the privacy policy | | Logo | ✅ [`docs/assets/icp-logo-1024.png`](assets/icp-logo-1024.png) | Note the legacy redirect `chatgpt.com/connector_platform_oauth_redirect` is