Graphiti Memory Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Graphiti Memory Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
>> Developers portable knowledge graph memory server using graphiti
This is derived from original graphitic server to be scalable remote server using Stateless Streamalble HTTP Transport in compliance with latest MCP Specification.
Graphiti is a framework for building and querying temporally-aware knowledge graphs, specifically tailored for AI agents operating in dynamic environments. Unlike traditional retrieval-augmented generation (RAG) methods, Graphiti continuously integrates user interactions, structured and unstructured enterprise data, and external information into a coherent, queryable graph. The framework supports incremental data updates, efficient retrieval, and precise historical queries without requiring complete graph recomputation, making it suitable for developing interactive, context-aware AI applications.
This is an experimental Model Context Protocol (MCP) server implementation for Graphiti. The MCP server exposes Graphiti's key functionality through the MCP protocol, allowing AI assistants to interact with Graphiti's knowledge graph capabilities.
The Graphiti MCP server exposes the following key high-level functions of Graphiti:
git clone ...mcp_server directorycd graphiti/mcp_server
uv to create a virtual environment and install dependencies:# Install uv if you don't have it already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a virtual environment and install dependencies in one step
uv syncThe server uses the following environment variables:
NEO4J_URI: URI for the Neo4j database (default: bolt://localhost:7687)NEO4J_USER: Neo4j username (default: neo4j)NEO4J_PASSWORD: Neo4j password (default: demodemo)OPENAI_API_KEY: OpenAI API key (required for LLM operations)OPENAI_BASE_URL: Optional base URL for OpenAI APIMODEL_NAME: OpenAI model name to use for LLM operations.SMALL_MODEL_NAME: OpenAI model name to use for smaller LLM operations.LLM_TEMPERATURE: Temperature for LLM responses (0.0-2.0).AZURE_OPENAI_ENDPOINT: Optional Azure OpenAI LLM endpoint URLAZURE_OPENAI_DEPLOYMENT_NAME: Optional Azure OpenAI LLM deployment nameAZURE_OPENAI_API_VERSION: Optional Azure OpenAI LLM API versionAZURE_OPENAI_EMBEDDING_API_KEY: Optional Azure OpenAI Embedding deployment key (if other than OPENAI_API_KEY)AZURE_OPENAI_EMBEDDING_ENDPOINT: Optional Azure OpenAI Embedding endpoint URLAZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME: Optional Azure OpenAI embedding deployment nameAZURE_OPENAI_EMBEDDING_API_VERSION: Optional Azure OpenAI API versionAZURE_OPENAI_USE_MANAGED_IDENTITY: Optional use Azure Managed Identities for authenticationSEMAPHORE_LIMIT: Episode processing concurrency. See Concurrency and LLM Provider 429 Rate Limit ErrorsYou can set these variables in a .env file in the project directory.
To run the Graphiti MCP server directly using uv:
uv run graphiti_mcp_server.pyWith options:
uv run graphiti_mcp_server.py --model gpt-4.1-mini --transport sseAvailable arguments:
--model: Overrides the MODEL_NAME environment variable.--small-model: Overrides the SMALL_MODEL_NAME environment variable.--temperature: Overrides the LLM_TEMPERATURE environment variable.--transport: Choose the transport method (sse or stdio, default: sse)--group-id: Set a namespace for the graph (optional). If not provided, defaults to "default".--destroy-graph: If set, destroys all Graphiti graphs on startup.--use-custom-entities: Enable entity extraction using the predefined ENTITY_TYPESGraphiti's ingestion pipelines are designed for high concurrency, controlled by the SEMAPHORE_LIMIT environment variable. By default, SEMAPHORE_LIMIT is set to 10 concurrent operations to help prevent 429 rate limit errors from your LLM provider. If you encounter such errors, try lowering this value.
If your LLM provider allows higher throughput, you can increase SEMAPHORE_LIMIT to boost episode ingestion performance.
The Graphiti MCP server can be deployed using Docker. The Dockerfile uses uv for package management, ensuring consistent dependency installation.
#### Environment Configuration
Before running the Docker Compose setup, you need to configure the environment variables. You have two options:
.env.example file to create a .env file: cp .env.example .env.env file to set your OpenAI API key and other configuration options: # Required for LLM operations
OPENAI_API_KEY=your_openai_api_key_here
MODEL_NAME=gpt-4.1-mini
# Optional: OPENAI_BASE_URL only needed for non-standard OpenAI endpoints
# OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up#### Neo4j Configuration
The Docker Compose setup includes a Neo4j container with the following default configuration:
neo4jdemodemobolt://neo4j:7687 (from within the Docker network)#### Running with Docker Compose
A Graphiti MCP container is available at: zepai/knowledge-graph-mcp. The latest build of this container is used by the Compose setup below.
Start the services using Docker Compose:
docker compose upOr if you're using an older version of Docker Compose:
docker-compose upThis will start both the Neo4j database and the Graphiti MCP server. The Docker setup:
uv for package management and running the serverpyproject.toml fileTo use the Graphiti MCP server with an MCP-compatible client, configure it to connect to the server:
[!IMPORTANT] You will need the Python package manager,uvinstalled. Please refer to theuvinstall instructions.
>
Ensure that you set the full path to the uv binary and your Graphiti project folder.{
"mcpServers": {
"graphiti-memory": {
"transport": "stdio",
"command": "/Users/<user>/.local/bin/uv",
"args": [
"run",
"--isolated",
"--directory",
"/Users/<user>>/dev/zep/graphiti/mcp_server",
"--project",
".",
"graphiti_mcp_server.py",
"--transport",
"stdio"
],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "password",
"OPENAI_API_KEY": "sk-XXXXXXXX",
"MODEL_NAME": "gpt-4.1-mini"
}
}
}
}For SSE transport (HTTP-based), you can use this configuration:
{
"mcpServers": {
"graphiti-memory": {
"transport": "sse",
"url": "http://localhost:8000/sse"
}
}
}The Graphiti MCP server exposes the following tools:
add_episode: Add an episode to the knowledge graph (supports text, JSON, and message formats)search_nodes: Search the knowledge graph for relevant node summariessearch_facts: Search the knowledge graph for relevant facts (edges between entities)delete_entity_edge: Delete an entity edge from the knowledge graphdelete_episode: Delete an episode from the knowledge graphget_entity_edge: Get an entity edge by its UUIDget_episodes: Get the most recent episodes for a specific groupclear_graph: Clear all data from the knowledge graph and rebuild indicesget_status: Get the status of the Graphiti MCP server and Neo4j connectionThe Graphiti MCP server can process structured JSON data through the add_episode tool with source="json". This allows you to automatically extract entities and relationships from structured data:
add_episode(
name="Customer Profile",
episode_body="{\"company\": {\"name\": \"Acme Technologies\"}, \"products\": [{\"id\": \"P001\", \"name\": \"CloudSync\"}, {\"id\": \"P002\", \"name\": \"DataMiner\"}]}",
source="json",
source_description="CRM data"
)
To integrate the Graphiti MCP Server with the Cursor IDE, follow these steps:
python graphiti_mcp_server.py --transport sse --use-custom-entities --group-id <your_group_id>Hint: specify a group_id to namespace graph data. If you do not specify a group_id, the server will use "default" as the group_id.
or
docker compose up{
"mcpServers": {
"graphiti-memory": {
"url": "http://localhost:8000/sse"
}
}
}The integration enables AI assistants in Cursor to maintain persistent memory through Graphiti's knowledge graph capabilities.
The Graphiti MCP Server container uses the SSE MCP transport. Claude Desktop does not natively support SSE, so you'll need to use a gateway like mcp-remote.
docker compose upIf you prefer to have mcp-remote installed globally, or if you encounter issues with npx fetching the package, you can install it globally. Otherwise, npx (used in the next step) will handle it for you.
npm install -g mcp-remoteOpen your Claude Desktop configuration file (usually claude_desktop_config.json) and add or modify the mcpServers section as follows:
{
"mcpServers": {
"graphiti-memory": {
// You can choose a different name if you prefer
"command": "npx", // Or the full path to mcp-remote if npx is not in your PATH
"args": [
"mcp-remote",
"http://localhost:8000/sse" // Ensure this matches your Graphiti server's SSE endpoint
]
}
}
}If you already have an mcpServers entry, add graphiti-memory (or your chosen name) as a new key within it.
The Graphiti MCP server uses the Graphiti core library, which includes anonymous telemetry collection. When you initialize the Graphiti MCP server, anonymous usage statistics are collected to help improve the framework.
To disable telemetry in the MCP server, set the environment variable:
export GRAPHITI_TELEMETRY_ENABLED=falseOr add it to your .env file:
GRAPHITI_TELEMETRY_ENABLED=falseFor complete details about what's collected and why, see the Telemetry section in the main Graphiti README.
This project is licensed under the same license as the parent Graphiti project.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.