Graphiti Local — Claude Code MCP server for agent memory
A local temporal knowledge graph for agents: six read-only tools, and proposed updates reach the graph only after a human approves them.
claude mcp add graphiti-local -- uvx graphiti-localWhat Graphiti Local does
Graphiti Local keeps project decisions in a graph and hands them to your agent through six read-only MCP tools or the kg CLI. Proposed updates sit in a separate queue until someone approves and applies them. Inference runs on Ollama, the graph lives in LadybugDB, and the local setup needs neither Docker nor a cloud API key.
One command is enough to look around: uvx --from git+https://github.com/renezander030/graphiti-local kg-demo answers a question against a small synthetic graph bundled with the package. No model is involved there — retrieval matches keywords. Turning your own text into a graph means extraction, and extraction needs a model, which is the full setup. You install uv and Ollama, and setup downloads need internet access.
Before extracted facts touch the configured graph, run kg-ingest INPUT --review-output review.jsonl and mark every claim in review.jsonl.review.jsonl as accept, refuse or contested. Restoring from the snapshot will not go through while decisions are still open. Model extraction gets things wrong, so read the returned facts and their validity timestamps. kg-ingest also takes a Markdown file or a directory tree, and long documents are split at stable text boundaries. For several users, each one gets a group and its own LadybugDB file, named after the SHA-256 of that group. A tenant boundary inside a single database server calls for FalkorDB or Neo4j.
What it helps with
- carry project decisions across agent sessions
- review extracted facts before they reach the graph
- look up what is currently known without the history
- break a long document or directory into episodes
- keep several users' memory in separate files
Example prompts for the agent
- Run
kg-demoand ask which database Aurora Analytics uses - Mark the facts in
review.jsonl.review.jsonlasacceptorrefuse - Ingest the
docs/directory withkg-ingestand show what landed
How to install Graphiti Local
Platform CLI
claude mcp add graphiti-local -- uvx graphiti-localuvx runs the command named after the package; if the README names another one, use uvx --from graphiti-local <command>
Platform CLI
codex mcp add graphiti-local -- uvx graphiti-localuvx runs the command named after the package; if the README names another one, use uvx --from graphiti-local <command>
Config file
{
"mcpServers": {
"graphiti-local": {
"command": "uvx",
"args": [
"graphiti-local"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from graphiti-local <command>
Config file
{
"servers": {
"graphiti-local": {
"type": "stdio",
"command": "uvx",
"args": [
"graphiti-local"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from graphiti-local <command>
Platform CLI
gemini mcp add graphiti-local uvx graphiti-localuvx runs the command named after the package; if the README names another one, use uvx --from graphiti-local <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Graphiti Local
How do I install Graphiti Local in Claude Code?
Run claude mcp add graphiti-local -- uvx graphiti-local. The full local setup also expects uv and a running Ollama.
What does Graphiti Local do?
It holds a local temporal knowledge graph and serves it to your agent through six read-only MCP tools. Changes land in the graph only after a person approves them.
Does it work without Ollama?
For kg-demo, yes — the answer comes from keyword matching over a synthetic graph. Extracting facts from your own text does need a model.