
How to add Graphiti MCP to Cursor
Temporal knowledge-graph memory for agents: add episodes and search facts over FalkorDB or Neo4j, from Zep. Paste the config into ~/.cursor/mcp.json and restart Cursor.
Last updated June 14, 2026 · 28k★ · http · apikey · official
Cursor config for Graphiti MCP
git clone https://github.com/getzep/graphiti.git && cd graphiti/mcp_server && docker compose up{
"mcpServers": {
"graphiti-mcp": {
"url": "http://localhost:8000/mcp/",
"type": "streamable-http"
}
}
}Remote server — no local install needed. Restart the client after saving the config.
Setup steps
- 1Open Cursor → Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json directly).
- 2Paste the Graphiti MCP config below into the "mcpServers" object.
- 3Fill in placeholder secrets, then save.
- 4Cursor reloads MCP servers automatically — check Settings → MCP for a green status dot.
- 5Ask Cursor to use one of Graphiti MCP's tools to confirm it's connected.
Before you start
- Docker and Docker Compose (default FalkorDB combined container)
- An LLM provider API key — OPENAI_API_KEY by default; Anthropic, Gemini, Groq, and Azure OpenAI are also supported
- Python 3.10+ and uv only if running the server standalone against an external database
- Neo4j 5.26+ if you choose it over the bundled FalkorDB
What Graphiti MCP can do in Cursor
add_memoryAdd an episode (text, JSON, or message format) to the graph; queued for async LLM extraction.
add_tripletInsert a single source-fact-target triplet directly, bypassing extraction.
search_nodesSearch entity nodes with entity_types and center_node_uuid filters.
search_memory_factsSearch facts (edges) with edge_types, center node, and valid_at/invalid_at date-range filters.
summarize_sagaGenerate or refresh the running summary of a saga's episodes.
build_communitiesDetect entity communities and produce higher-level community summaries.
get_episode_entitiesTrace provenance: which entities and facts specific episodes created.
delete_entity_edgeDelete an entity edge from the graph.
Security
Self-hosted: graph data stays in your FalkorDB/Neo4j instance, but every episode's content is sent to the configured LLM provider (OpenAI by default) for entity extraction. API keys live in a server-side .env file, and anonymous telemetry is on unless you set GRAPHITI_TELEMETRY_ENABLED=false.
Graphiti MCP + Cursor FAQ
Where is the Cursor config file?
Cursor reads MCP servers from ~/.cursor/mcp.json. Paste the Graphiti MCP config there under the "mcpServers" key and restart the client.
Is Graphiti MCP safe to use with Cursor?
Self-hosted: graph data stays in your FalkorDB/Neo4j instance, but every episode's content is sent to the configured LLM provider (OpenAI by default) for entity extraction. API keys live in a server-side .env file, and anonymous telemetry is on unless you set GRAPHITI_TELEMETRY_ENABLED=false.
Is the Graphiti MCP server free?
Yes — Apache-2.0 and fully self-hosted, with FalkorDB bundled in the default container. Your real cost is LLM usage: each episode triggers multiple extraction/dedup/summarization calls to your configured provider, which is also why the SEMAPHORE_LIMIT concurrency setting matters.
How is this different from a vector-store memory server?
Graphiti builds an entity/relationship graph with bi-temporal validity rather than storing chunks. You get structured facts with valid_at/invalid_at history, date-range queries, community summaries, and provenance tracing — at the price of running a graph database and paying for extraction LLM calls.
Why am I seeing 429 rate-limit errors during ingestion?
Your SEMAPHORE_LIMIT is too high for your LLM tier. The default of 10 assumes roughly OpenAI Tier 3 (500 RPM); the README suggests 1-2 for free tiers and up to 20-50 for Tier 4. Each episode fans out into several concurrent LLM requests, so lower it until 429s stop.