twin memory

Claude Desktop

Connect Claude Desktop to twin memory with the custom connector you add in claude.ai, where you sign in, or through mcp-remote with your key.

Claude Desktop has two ways to reach twin memory. A custom connector is the simpler one: you sign in once and choose whose memory it reaches. mcp-remote runs a small local bridge and keeps your key and end user in a config file on your machine.

Option A: a custom connector

Claude Desktop shows the custom connectors of your claude.ai account. Add twin memory once, in claude.ai or in Desktop's own Customize > Connectors, and it works in both. The steps, the sign-in card and the Team and Enterprise setup are on claude.ai.

Connectors run from Anthropic's cloud, not from your computer, so the server has to be reachable from the internet. api.twinmemory.dev is; a server on your own machine needs a tunnel.

Option B: mcp-remote

claude_desktop_config.json describes local servers that Claude Desktop starts itself. mcp-remote is one: it runs on your machine and forwards to a remote URL with the headers you give it.

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "twin-memory": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.twinmemory.dev/v1/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}",
        "--header",
        "X-Twin-Account:user_42"
      ],
      "env": {
        "AUTH_HEADER": "Bearer tm_..."
      }
    }
  }
}

The header is written Authorization:${AUTH_HEADER}, with no space, and the space lives inside the environment value. Claude Desktop on Windows, among other clients, does not escape spaces inside args, and "Authorization: Bearer tm_..." would be split in two.

mcp-remote also takes:

  • --header-file /path/to/file, with one Name: value line per header, which keeps the key out of the process list;
  • --transport http-only, which stops it from trying the older SSE transport. twin memory serves Streamable HTTP only.

Restart Claude Desktop after editing the file. Its log for this server is ~/Library/Logs/Claude/mcp-server-twin-memory.log.

Use a read key if Claude should only search and read: it cannot write or erase. Use a read and write key if Claude should save what it learns: the server then lists memory_add too.


Sources checked 2026-10-21: support.claude.com: custom connectors using remote MCP, github.com/geelen/mcp-remote.

On this page