Skip to content

MCP Overview

Remem 0.5 exposes a full Model Context Protocol (MCP) interface for agent frameworks. The Go service mounts the MCP interface at /mcp over Streamable HTTP alongside the REST API and Pebble-backed storage. For stdio-only clients, remem-mcp is a small companion binary that forwards calls to the server — it holds no data itself.

  • Streamable HTTP (/mcp on the Remem server) — for hosted agents and clients that speak 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 the running Remem server. Set its URL and credential in the client configuration:

{
"mcpServers": {
"remem": {
"command": "docker",
"command": "remem-mcp",
"args": ["--url", "http://localhost:4545/mcp", "--api-key", "your-secret-key"]
}
}
}

See Claude Desktop Setup for the full walkthrough.

Point the client directly at http://localhost:4545/mcp, passing the server 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.