-
Notifications
You must be signed in to change notification settings - Fork 0
Client Compatibility
This page tracks client-facing expectations. Treat live client behavior as drift-prone and re-test before claiming support after OAuth or discovery changes.
| Client | Expected behavior |
|---|---|
| Claude.ai custom connector | OAuth + MCP discovery; a client with the write scope should see the full write/build/admin tool set after authenticated reconnect |
| Claude Desktop | Connects to https://mcp.arleo.eu/mcp with MCP-compatible discovery |
| ChatGPT custom connector | OAuth flow and scoped tool access |
| Le Chat custom connector | OAuth flow and scoped tool access, same 2-scope (read/write) model as the other clients |
| MCP Inspector | Anonymous read-only MCP inspection |
Since #450 there is no separate "admin" scope — a client either has read (auto-registered, no secret) or write (registered client, implies read plus every build/admin/diagnostic tool). See Scope and Tool Matrix.
Use the MCP endpoint for MCP clients:
https://mcp.arleo.eu/mcp
OAuth issuer:
https://mcp.arleo.eu
Do not configure the MCP endpoint as https://mcp.arleo.eu unless a client explicitly expects the issuer/base URL. /mcp is the JSON-RPC MCP endpoint.
If Claude connects but only shows anonymous/read-only tools:
- Remove and recreate the connector to clear client-side cache.
- Confirm the OAuth flow grants the intended scope.
- Confirm
tools/listis called withAuthorization: Bearer .... - Confirm
/mcpresponses include cache controls that prevent an anonymous tool list from being reused for an authenticated request. - Confirm admin tools are gated by the token scope, not by
client_idalone.
Useful headers for /mcp:
Cache-Control: no-store
Vary: Authorization
WWW-Authenticate: Bearer ...
ChatGPT redirect URI handling is strict. Do not allow arbitrary redirect URIs to fix a client issue.
Expected policy:
- accepted: known HTTPS callbacks for ChatGPT
- rejected: HTTP, similar malicious hosts, unknown domains, wrong paths
- unknown DCR clients: no write/admin escalation
Run:
SMOKE_LIVE=1 ./scripts/smoke-agent-interop.shOptional bearer-token checks should be provided via environment variables and must never be printed in logs:
READ_BEARER=REDACTED ADMIN_BEARER=REDACTED SMOKE_LIVE=1 ./scripts/smoke-agent-interop.shBefore sharing output publicly, redact any bearer token, authorization code, client secret, or cookie.