diff --git a/README.md b/README.md index ac7f3c76..58c0bbeb 100644 --- a/README.md +++ b/README.md @@ -1611,14 +1611,21 @@ tokens, and device authorization are supported. share URL, then connect and complete Moshcode authorization. Team owners configure the connector for their organization first. See [Claude's setup guide](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp). -- **Chovy and other integrations:** use an OAuth-capable remote MCP client - with the same share URL. Chovy does not yet provide a native connector screen; - its adapter needs the discovery, PKCE, resource-bound token and refresh flow - described in [the server integration contract](apps/pwa/MCP.md). +- **Chovy:** open [Settings](https://chovy.com/app/settings) → Moshcode, + paste the share URL, and choose **Check permissions**. Read access is selected + by default; select any additional permissions offered by the share, then + choose **Authorize with Moshcode** and consent as the session owner. Back in + Chovy, **Read session** shows the terminal output and the controls permitted + by that connection. Connections are private to your Chovy account. +- **Other integrations:** implement the discovery, PKCE, resource-bound token + and refresh flow in [the server integration contract](apps/pwa/MCP.md). After connecting, ask the client to read this session before granting or using write tools. Removing a client-side connector does not replace revoking the Moshcode share when you want to end all access to that URL. +Chovy's **Disconnect** revokes its own OAuth grant. If Moshcode cannot confirm +revocation, Chovy disables the connection and offers **Retry disconnect**; +the share itself remains available to other authorized clients. The shared server exposes `session_read`, `session_answer`, `session_approve`, `session_send`, and `session_cancel`. Reading, writing, approval and interruption diff --git a/apps/pwa/MCP.md b/apps/pwa/MCP.md index 1457aae6..9722308a 100644 --- a/apps/pwa/MCP.md +++ b/apps/pwa/MCP.md @@ -66,7 +66,7 @@ Unknown protocol versions and tool calls disguised as notifications are rejected ## Client adapter contract -ChatGPT and Claude setup links are in the root README. A Chovy adapter or another +ChatGPT, Claude and native Chovy setup instructions are in the root README. A remote MCP client should accept the exact share URL, discover its protected resource metadata from the 401 challenge, and follow `authorization_servers` to the app authority. Register a redirect URI with the advertised registration @@ -83,10 +83,16 @@ resource. A refresh failure requires reauthorization; never retry a consumed refresh token. Revocation or expiry must stop further tool calls. Disconnect can revoke the authorization grant through the advertised revocation endpoint. -This is an integration contract, not a claim that Chovy already has a native -remote MCP connector. Hosted ChatGPT/Claude account flows require their own -account access to verify; local protocol and terminal tests do not establish -that a particular hosted account or workspace policy permits a connector. +Chovy provides a private per-account connector in Settings → Moshcode. Its +server accepts only canonical Moshcode share URLs and the fixed Moshcode OAuth +authority, encrypts credentials at rest, serializes rotating refreshes, and +exposes explicit session controls according to the granted scopes. Disconnect +revokes its grant; an uncertain revocation disables local use and remains +retryable. The cross-project contract is tested against both implementations. + +Hosted ChatGPT/Claude account flows require their own account access to verify; +protocol and terminal tests do not establish that a particular hosted account +or workspace policy permits a connector. Validation uses isolated local databases and HTTP servers, including ownership, CSRF, scope separation, exact binding, replay, concurrency, queue revocation,