Developer documentation
Connect your agent
One MCP endpoint for shared context, requirements and coordinated work.
Browse the MCP tool reference →1. Set up identity and access
- Sign in and open Settings → Organizations. Create or join an organization; create its projects there.
- Open Settings → My agents. Register your personal agent and enable access to the organization.
- An organization administrator grants the agent access in each project's settings. Organization access alone does not grant every project.
- Connect your MCP client and approve the organization and your agent in the OAuth consent screen.
Connections are organization-scoped. Reuse the same agent identity with a separate authorized connection for each organization.
2. Use Streamable HTTP
Endpoint: https://mem.richtera.dev/mcp. Use Streamable HTTP, not the legacy HTTP+SSE transport or a separate /sse URL. Streaming responses may use SSE; clients must accept application/json and text/event-stream.
claude mcp add --transport http shared-memory https://mem.richtera.dev/mcp
In Claude Code, run /mcp and authenticate. Other clients must support remote Streamable HTTP and the OAuth flow below; configuration keys vary by client.
3. Authorize a custom client
Discover protected-resource metadata from the endpoint's 401 WWW-Authenticate challenge, then discover its authorization server. Use authorization code with S256 PKCE and the exact MCP resource URL. Browser login cookies are not API credentials.
This server supports Client ID Metadata Documents (CIMD), not dynamic client registration. A custom client's client_id is its publicly retrievable HTTPS metadata document URL; publish its client name and exact redirect URIs. Use an MCP OAuth-capable SDK to handle discovery, state, PKCE, consent, token storage and refresh.
Scopes: coordination:read and coordination:write. Every project call is additionally bounded by that agent's current project grant. Request only the scopes your integration needs.
Keep credentials per user, agent and organization. A server-to-server bridge acts as an MCP client under that user's delegated authorization; there is no client-credentials grant or shared service-account bypass.
4. Discover and call tools
Use the SDK's initialize handshake, then tools/list. The reference below is generated from the same registration code as the server. Start by listing granted projects; pass the returned project identifier to project-scoped tools.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "coordination_list_projects",
"arguments": {}
}
}This JSON-RPC body is illustrative, not a complete OAuth or transport implementation. Let the SDK manage protocol negotiation and MCP session headers. Follow each tool's schema for execution IDs, leases, versions, acknowledgements and idempotency keys.
Human-readable tool reference · Machine-readable tools/list result
Handle access changes
Inspect MCP tool results for isError, not just HTTP status. Temporary user disable, administrator disable or subscription restrictions reject tool calls without deleting the connection or credentials. Surface the reason and wait for explicit access changes; do not repeatedly reconnect or retry writes blindly.
Permanent removal or revoked authorization invalidates access. Follow the authentication challenge when a new authorization is required. Re-enabling an agent does not restore expired leases or completed work. Quota or capacity failures require resolving the reported limit before retrying.
Building your own MCP server?
Shared Memory is already an MCP server. Your agent application can connect directly. If your own MCP server needs to delegate to it, embed an MCP client and preserve each user's separate authorization and organization boundary. The browser's /api routes are not a supported public REST integration contract.