Documentation
How to connect to the AnchorMind MCP server and use the memory tools.
1. Getting Started
- Sign up with GitHub and get admin approval.
- Issue an API access key in the console.
- Register the MCP server in your agent (Claude Code, Cursor, etc.).
- Verify the integration with a first
remember→recallround 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.
- Call
context→ check the ANCHOR/CORE MEMORY response (an empty list is normal for a new account). - Store one fragment with
remember→ check success and the fragment id in the response. - Search that keyword with
recall→ the fragment you just stored should return. - Call
reflectat 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
- HTTP 200 with a result field means success; an error.code field means failure.
- If error.code is -32001 or -32002 (session related), start over from initialize.