AnchorMindANCHORMIND
SIGN IN

Documentation

How to connect to the AnchorMind MCP server and use the memory tools.

1. Getting Started

  1. Sign up with GitHub and get admin approval.
  2. Issue an API access key in the console.
  3. Register the MCP server in your agent (Claude Code, Cursor, etc.).
  4. Verify the integration with a first rememberrecall round trip.

2. Connection

The endpoint speaks Streamable HTTP (JSON-RPC); authentication uses a Bearer header.

Endpoint: https://memento.anchormind.net/mcp
Auth: Authorization: Bearer <ACCESS_KEY>

3. Claude Code Setup

Register the server in .mcp.json at the project root or in ~/.claude.json. Templates are available in Downloads.

{
  "mcpServers": {
    "anchormind": {
      "type": "http",
      "url": "https://memento.anchormind.net/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_ACCESS_KEY"
      }
    }
  }
}

4. Cursor Setup

Register the same server in ~/.cursor/mcp.json.

{
  "mcpServers": {
    "anchormind": {
      "url": "https://memento.anchormind.net/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_ACCESS_KEY"
      }
    }
  }
}

5. Memory Tool Reference

contextLoad Core/Working Memory at session start.
PARAMSOptional: tokenBudget (default 2000) · types (default preference·error·procedure) · sessionId · structured · workspace
RETURNSANCHOR/CORE MEMORY fragment lists, _meta.hints
recallSearch fragments. Keyword/semantic/hybrid auto-routing.
PARAMSAt least one of keywords · text (natural language) · topic recommended / optional: type · tokenBudget (default 1000) · caseMode · depth · timeRange · threshold · pageSize
RETURNSfragments[], _meta.searchEventId · hints · suggestion
rememberStore one self-contained fact (1-3 sentences, 300 chars recommended).
PARAMSRequired: content (rejected over 4000 chars) · topic · type / optional: keywords (3-5) · importance · isAnchor · caseId · supersedes
RETURNSCreated fragment id, validation_warnings
batch_rememberBulk store up to 200 fragments in one transaction.
PARAMSRequired: fragments[] (each with content · topic · type) / optional: async (queue-backed)
RETURNSSync: per-item results / async: accepted count and jobId
batch_statusCheck a batch_remember(async) job. Read-only.
PARAMSRequired: jobId
RETURNSstate (queued|processing|completed|dead) · accepted · processed · failed
reflectPersist session learnings as atomic fragments.
PARAMSAt least one of summary or sessionId required / optional: decisions · errors_resolved · new_procedures · open_questions · narrative_summary
RETURNSCreated fragments, _meta.link_suggestions
amendUpdate an existing fragment. Send only changed fields.
PARAMSRequired: id / optional: content · topic · keywords · importance · assertionStatus (observed|inferred|verified|rejected)
RETURNSUpdate result
forgetDelete resolved errors and unneeded fragments.
PARAMSid or topic / optional: force (hard-delete permanent fragments)
RETURNSDeletion result
linkCreate causal/relational links between fragments.
PARAMSRequired: fromId · toId / optional: relationType (related default, caused_by · resolved_by · part_of · contradicts) · weight
RETURNSLink creation result
graph_exploreTrace error causality (RCA).
PARAMSRequired: startId (error fragment recommended)
RETURNS1-hop caused_by/resolved_by causal graph
fragment_historyView a fragment change history.
PARAMSRequired: id
RETURNSPre-amend versions, superseded_by chain
reconstruct_historyReconstruct case work history in time order.
PARAMSOne of caseId or entity required / optional: timeRange · query · limit (default 100)
RETURNSordered_timeline · causal_chains · unresolved_branches · case_events · summary
search_tracesLightweight grep-style fragment scan.
PARAMSOptional: event_type · entity_key · keyword · case_id · session_id · time_range · limit (default 20)
RETURNStraces[] · count
tool_feedbackReport search usefulness (link-weight learning).
PARAMSRequired: tool_name · relevant · sufficient / optional: fragment_ids · search_event_id
RETURNSFeedback application result
memory_statsMemory statistics and quota.
PARAMSNone
RETURNSFragment counts · quota and other statistics
memory_consolidateManual GC trigger (master key only).
PARAMSNone
RETURNSTTL transitions · decay · expiry deletion · dedup results
session_rotateEnd the current session and issue a new sessionId.
PARAMSOptional: reason (recorded in the audit log)
RETURNSNew sessionId
get_skill_guideReturn the SKILL.md usage guide.
PARAMSOptional: section (overview · lifecycle · tools, etc.)
RETURNSFull guide (about 12KB) or the given section

6. Verifying the Integration

After connecting, confirm the round trip with this checklist.

  1. Call context → check the ANCHOR/CORE MEMORY response (an empty list is normal for a new account).
  2. Store one fragment with remember → check success and the fragment id in the response.
  3. Search that keyword with recall → the fragment you just stored should return.
  4. Call reflect at session end → confirm summary fragments are created.

7. curl Fallback

If the MCP session expires, call the JSON-RPC endpoint directly: issue a session via initialize, then pass it in the MCP-Session-Id header.

1. Initialize a session — keep the MCP-Session-Id response header

SESSION_ID=$(curl -s -X POST https://memento.anchormind.net/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_KEY" \
  -D - \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}' \
  2>/dev/null | grep -i "^mcp-session-id" | tr -d '\r' | awk '{print $2}')

2. Call a tool — remember example

curl -s -X POST https://memento.anchormind.net/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_KEY" \
  -H "MCP-Session-Id: $SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
    "name":"remember",
    "arguments":{"content":"connection test","topic":"setup","type":"fact"}
  }}'

3. Validate the response