MCP Integration

Give Claude Desktop, Claude Code, or Cursor direct access to your memory spaces.

Full reference: MCP docs · REST API · All docs

1

Get an API key

Create a key on the API Keys page and paste it into the config below. Keys are personal: the server can only reach spaces you are a member of.

Paste your key here and the snippets below update automatically. Nothing is sent anywhere: this runs in your browser.

2

Add the server to your client

Add to claude_desktop_config.json, then restart Claude Desktop.

json
{
  "mcpServers": {
    "anona": {
      "url": "http://anona-prod-alb-747552680.us-east-1.elb.amazonaws.com/mcp",
      "headers": {
        "Authorization": "Bearer anona_live_YOUR_KEY"
      }
    }
  }
}

The key is personal: the server reaches only the spaces you belong to. Name a space per call, e.g. “remember this in YOUR_SPACE_ID”.

Or connect without a key. Add the URL with no Authorizationheader. An OAuth-capable client (Claude Desktop, Claude Code, Cursor) will prompt you to sign in and approve: no key ever touches the client's config. Authorized apps appear under Connected apps below.

3

Verify the connection

In Claude Code, confirm the server is reachable:

bash
claude mcp list

You should see anona … ✔ Connected. In Claude Desktop or Cursor, the anona tools appear in the tool menu after a restart.

4

Use it

Once connected, your assistant can call these tools on its own:

remember(content, space_id)Store a fact so it persists across future conversations.
recall(query, space_id, limit?)Search memories relevant to a question.
list_spaces(-)Show the memory spaces this key can access.
get_insights(query, space_id)Summarize everything the space knows about a topic.

Try it: ask “Remember that I deploy on Fridays”, then in a brand new chat ask “When do I deploy?”

5

Raw protocol (custom clients)

The endpoint speaks MCP Streamable HTTP in stateless JSON mode: one JSON-RPC message per POST, one JSON reply. Any client that can send JSON works: no SDK required. Handshake methods (initialize, tools/list) are open; only tools/call needs the Bearer key.

Discover tools:

bash
# List the available tools
curl -s http://anona-prod-alb-747552680.us-east-1.elb.amazonaws.com/mcp \
  -H "Authorization: Bearer anona_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Call a tool:

bash
# Call a tool (store a memory)
curl -s http://anona-prod-alb-747552680.us-east-1.elb.amazonaws.com/mcp \
  -H "Authorization: Bearer anona_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "remember",
      "arguments": {
        "content": "User ships on Fridays.",
        "space_id": "YOUR_SPACE_ID"
      }
    }
  }'

Response: a per-tool failure (denied space, exhausted credits) comes back as isError: true content, not an HTTP error:

json
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{ "type": "text", "text": "Stored in space 'YOUR_SPACE_ID'." }],
    "isError": false
  }
}