Ditto

Start typing to search...

Ditto MCP Server

Choose your MCP client and connect it to your Ditto memories with the right setup values and auth method.

Connect Ditto once, and Claude, Codex, Cursor, OpenCode, or another MCP client can use your Ditto memories from the place where you already work. Most clients connect with OAuth — you sign in with your Ditto account and never touch an API key.

Using OpenClaw or Hermes Agent? Those integrations use the Ditto CLI, not MCP. Start with OpenClaw or Hermes Agent.

Endpoint

https://api.heyditto.ai/mcp

One Streamable HTTP endpoint for every client. (The legacy SSE endpoints /mcp/sse and /mcp/message still work for older clients.)

Pick Your Tool

OAuth, no API key

Claude.ai

Add Ditto as a remote custom connector. OAuth handles sign-in, so there is no key to manage.

Claude connector docs
Connector nameDitto
URLhttps://api.heyditto.ai/mcp
AuthOAuth
  1. Open Claude.ai Settings → Connectors.
  2. Choose Add custom connector.
  3. Paste the Ditto MCP URL and complete the Ditto sign-in flow.

Authentication

OAuth is the default for Claude.ai, Claude Desktop, Claude Code, Codex CLI, OpenCode, and Cursor. Your client opens a browser sign-in, and no credentials live in config files.

API keys cover the rest — local JSON/TOML configs and clients without OAuth support. Create one at app.heyditto.ai/mcp, copy it immediately (it’s shown once), and use it as an Authorization: Bearer <key> header. Create a separate key per tool so revoking one doesn’t break the others, and never commit keys to git.

What your client can do

Once connected, your client can search your memories and subjects, fetch full conversations, explore how memories relate to each other, and save new memories from wherever you’re working. You don’t need to learn the tool names — MCP clients discover them automatically.

Troubleshooting

“Not Authenticated” — check the key for typos or extra spaces, confirm the header format is Authorization: Bearer YOUR_API_KEY, make sure the key wasn’t revoked, and restart the client after changing config.

Empty search results — memories come from your Ditto conversations, so an empty account returns nothing. Try broader search terms, and check the client is actually calling Ditto.

OAuth flow fails — log into Ditto in your browser first, allow pop-ups, and retry in an incognito window if it still hangs.