Skip to content

MCP Overview

Remem exposes a full Model Context Protocol (MCP) interface for agent frameworks. It was designed for MCP from the start — not retrofitted. remem-server (port 4545, the REST API and storage engine) mounts the full MCP interface in-process at /mcp over Streamable HTTP. For stdio-only clients, remem-mcp is a small companion binary that bridges stdio to remem-server’s /mcp route — it holds no data itself.

  • Streamable HTTP (/mcp on remem-server) — for hosted agents and any client that speaks MCP over HTTP directly
  • stdio (via the remem-mcp binary) — for local tools (Claude Desktop, Claude Code) that only speak stdio
ToolDescription
store_memoryStore a new memory
search_memoriesSemantic, keyword, or hybrid search
get_memoryRetrieve a memory by ID
update_memoryUpdate content or metadata
delete_memorySoft or hard delete
find_relatedTraverse the relationship graph
promote_to_longtermPromote a short-term memory to long-term
list_recent_memoriesRecently created/accessed memories, filtered and sorted

See Tool Reference for full parameter tables.

Resource URIDescription
memory://statsSystem statistics snapshot
memory://collections/recentRecently created/accessed memories
memory://collections/importantHigh-importance memories

See Resource Reference for sample responses.

Run the remem-mcp binary as a stdio bridge to remem-server. It ships in the same rememorg/remem-community:server-latest image, so no Rust toolchain is needed:

{
"mcpServers": {
"remem": {
"command": "docker",
"args": ["run", "--rm", "-i", "--network", "remem-network", "rememorg/remem-community:server-latest", "remem-mcp", "--server-url", "http://remem-server:4545"]
}
}
}

See Claude Desktop Setup for the full walkthrough.

Point the client directly at http://localhost:4545/mcp, passing REMEM_API_KEY as a bearer token if auth is enabled — no companion binary needed.

Tool descriptions, parameter schemas, and return formats were designed for LLM consumption. Each tool description explains not just what the tool does but when to call it and what to do with the result. This makes Remem work well with agents that choose tools autonomously.

Every tool returns {"success": true, ...} on success or {"success": false, "error": "TOOL_ERROR", "message": "..."} on failure — errors are never thrown as JSON-RPC protocol errors, so check success in the result body.