Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 11 additions & 5 deletions apps/pwa/MCP.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand Down
Loading