RustMCP 2025-11-25Apache-2.0one SQLite file

Give your agent a brain that remembers.

mcpmem is an MCP server with a persistent knowledge graph, code intelligence and semantic search. One binary, one file, no database to run, no telemetry.

Star on GitHub cargo install mcpmem
Works with Claude Desktop, Claude Code and any MCP client.
What it does

Three memories, one server

Each is a category of MCP tools you switch on with a flag. Compile only what you need.

Knowledge graph

Entities, directed relations and timestamped observations. Key-value attributes on both nodes and edges. FTS5 search, paths, neighbours, subgraphs, merge and rename.

--enable-graph-read --enable-graph-write

Code intelligence

Point it at a repo. tree-sitter parses 11 languages into symbols and outlines, so a coding agent navigates by name instead of reading whole files.

--enable-code

Semantic search

The server embeds entities, observations, relations and the contents of files attached to nodes, then fuses vector similarity with full-text relevance and graph centrality. Semantic, hybrid and MMR retrieval.

--enable-vectors
How it works

Install, add two lines, stop forgetting

A single binary speaks MCP over stdio for local agents or over HTTP with OAuth 2.1 for remote connectors. Everything lives in one embedded SQLite file per workspace, so backup is a copy and migration is a move.

transportstdio · HTTP (streamable)
storageSQLite, WAL mode, one file per workspace
embeddingsOllama, OpenAI-compatible, Amazon Bedrock
filesattach PDF, markdown, text or images to a node; text is extracted, chunked and embedded
coderegister a Git repo in the admin panel; reindex on demand or on a watch
eventssigned webhooks on create, update, delete, rename
telemetrynone
# install cargo install mcpmem # everything on: memory + vectors + code mcpmem --transport stdio --legacy-owner-id machine:local --enable-all
// claude_desktop_config.json / .mcp.json { "mcpServers": { "memory": { "command": "mcpmem", "args": ["--legacy-owner-id", "machine:local", "--enable-all"] } } }
Trim --enable-all to the categories you want. Unknown types are never refused; the server suggests the closest existing ones instead.
Works with
The UI

See what your agent knows

A built-in web viewer: force-directed graph, node and relation inspector, direct and semantic search, files on nodes with their contents indexed, and an admin panel for principals, scopes, webhooks and workspaces.

mcpmemsecond-brain GraphSearchAdmin
Entity types Osoba32 Technologia28 Organizacja28 Decyzja21 Zasada21
Osoba Krystian Pudlik degree 4 · 7 observations · 2 files Observations Od września 2026 na 75% FTE w Parloa Attributes role · frontend engineer fte · 0.75
Security

Fail closed by default

OAuth 2.1 with scopes

Remote clients authorize through your identity provider and get only the scopes you tick: graph-read, graph-write, vectors, code, admin.

Workspaces

Each graph has an owner, a visibility and reader or writer grants. A private workspace you cannot access looks exactly like one that does not exist.

Nothing leaves the box

No telemetry, no cloud dependency. Webhooks are signed and opt-in; the worker runs empty unless you configure it.

Ready when your agent is.

Star on GitHubcrates.io