mcpField
G
Graphiti MCP Server 🧠

Graphiti MCP Server 🧠

Local
github.com/giffletMemory & Knowledge142Updated 65w ago

About Graphiti MCP Server 🧠

Graphiti MCP Server is a Neo4j-based knowledge graph server for AI agents that need to manage and query graph data. It supports custom entity extraction, semantic search, and Docker deployment.

Key features

  1. 01Manages knowledge graphs with Neo4j
  2. 02Custom entity extraction
  3. 03Semantic search
  4. 04OpenAI model integration
  5. 05Docker deployment support

Use cases

  1. 01Store and query graph information for AI agents
  2. 02Extract custom entities from text
  3. 03Retrieve knowledge with semantic search

MCP support

It exposes knowledge-graph capabilities to MCP clients over SSE, WebSocket, or stdio transports.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json Β· Universal config
{
"mcpServers": {
"graphiti": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
Run commanddocker run -i --rm compose

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocicompose

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Graphiti MCP Server 🧠

Python Version License Docker

🌟 A powerful knowledge graph server for AI agents, built with Neo4j and integrated with Model Context Protocol (MCP).

πŸš€ Features

  • πŸ”„ Dynamic knowledge graph management with Neo4j
  • πŸ€– Seamless integration with OpenAI models
  • πŸ”Œ MCP (Model Context Protocol) support
  • 🐳 Docker-ready deployment
  • 🎯 Custom entity extraction capabilities
  • πŸ” Advanced semantic search functionality

πŸ› οΈ Installation

Prerequisites
  • Docker and Docker Compose
  • Python 3.10 or higher
  • OpenAI API key
  • Minimum 4GB RAM (recommended 8GB)
  • 2GB free disk space
Quick Start πŸš€
  1. Clone the repository:
git clone https://github.com/gifflet/graphiti-mcp-server.git
cd graphiti-mcp-server
  1. Set up environment variables:
cp .env.sample .env
  1. Edit .env with your configuration:
# Required for LLM operations
OPENAI_API_KEY=your_openai_api_key_here
MODEL_NAME=gpt-4.1-mini

# Optional: Custom OpenAI endpoint (e.g., for proxies)
# OPENAI_BASE_URL=https://api.openai.com/v1

# Neo4j Configuration (defaults work with Docker)
NEO4J_URI=bolt://neo4j:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=demodemo
  1. Start the services:
docker compose up -d
  1. Verify installation:
# Check if services are running
docker compose ps

# Check logs
docker compose logs graphiti-mcp
Alternative: Environment Variables

You can run with environment variables directly:

OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up

πŸ”§ Configuration

Service Ports 🌐
ServicePortPurpose
Neo4j Browser7474Web interface for graph visualization
Neo4j Bolt7687Database connection
Graphiti MCP8000MCP server endpoint
Environment Variables πŸ”§
OpenAI Configuration
VariableRequiredDefaultDescription
OPENAI_API_KEYβœ…-Your OpenAI API key
OPENAI_BASE_URL❌-Custom OpenAI API endpoint (consumed by OpenAI SDK)
MODEL_NAME❌gpt-4.1-miniMain LLM model to use
SMALL_MODEL_NAME❌gpt-4.1-nanoSmall LLM model for lighter tasks
LLM_TEMPERATURE❌0.0LLM temperature (0.0-2.0)
EMBEDDER_MODEL_NAME❌text-embedding-3-smallEmbedding model
Neo4j Configuration
VariableRequiredDefaultDescription
NEO4J_URI❌bolt://neo4j:7687Neo4j connection URI
NEO4J_USER❌neo4jNeo4j username
NEO4J_PASSWORD❌demodemoNeo4j password
Server Configuration
VariableRequiredDefaultDescription
MCP_SERVER_HOST❌-MCP server host binding
SEMAPHORE_LIMIT❌10Concurrent operation limit for LLM calls
Azure OpenAI Configuration (Optional)

For Azure OpenAI deployments, use these environment variables instead of the standard OpenAI configuration:

VariableRequiredDefaultDescription
AZURE_OPENAI_ENDPOINTβœ…*-Azure OpenAI endpoint URL
AZURE_OPENAI_API_VERSIONβœ…*-Azure OpenAI API version
AZURE_OPENAI_DEPLOYMENT_NAMEβœ…*-Azure OpenAI deployment name
AZURE_OPENAI_USE_MANAGED_IDENTITY❌falseUse Azure managed identity for auth
AZURE_OPENAI_EMBEDDING_ENDPOINT❌-Separate endpoint for embeddings
AZURE_OPENAI_EMBEDDING_API_VERSION❌-API version for embeddings
AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME❌-Deployment name for embeddings
AZURE_OPENAI_EMBEDDING_API_KEY❌-Separate API key for embeddings

* Required when using Azure OpenAI

Notes:

  • OPENAI_BASE_URL is consumed directly by the OpenAI Python SDK, useful for proxy configurations or custom endpoints
  • SEMAPHORE_LIMIT controls concurrent LLM API calls - decrease if you encounter rate limits, increase for higher throughput
  • Azure configuration is an alternative to standard OpenAI - don't mix both configurations
Neo4j Settings πŸ—„οΈ

Default configuration for Neo4j:

  • Username: neo4j
  • Password: demodemo
  • URI: bolt://neo4j:7687 (within Docker network)
  • Memory settings optimized for development
Docker Environment Variables 🐳

You can run with environment variables directly:

OPENAI_API_KEY=your_key MODEL_NAME=gpt-4.1-mini docker compose up

For Azure OpenAI:

AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com \
AZURE_OPENAI_API_VERSION=2024-02-01 \
AZURE_OPENAI_DEPLOYMENT_NAME=your-deployment \
OPENAI_API_KEY=your_key \
docker compose up

πŸ”Œ Integration

Cursor IDE Integration πŸ–₯️
  1. Configure Cursor MCP settings:
{
  "mcpServers": {
    "Graphiti": {
      "command": "uv",
      "args": ["run", "graphiti_mcp_server.py"],
      "env": {
        "OPENAI_API_KEY": "your_key_here"
      }
    }
  }
}
  1. For Docker-based setup:
{
  "mcpServers": {
    "Graphiti": {
      "url": "http://localhost:8000/sse"
    }
  }
}
  1. Add Graphiti rules to Cursor's User Rules (see graphiti_cursor_rules.mdc)
  2. Start an agent session in Cursor
Other MCP Clients

The server supports standard MCP transports:

  • SSE (Server-Sent Events): http://localhost:8000/sse
  • WebSocket: ws://localhost:8000/ws
  • Stdio: Direct process communication

πŸ’» Development

Local Development Setup
  1. Install dependencies:
# Using uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# Or using pip
pip install -r requirements.txt
  1. Start Neo4j locally:
docker run -d \
  --name neo4j-dev \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/demodemo \
  neo4j:5.26.0
  1. Run the server:
# Set environment variables
export OPENAI_API_KEY=your_key
export NEO4J_URI=bolt://localhost:7687

# Run with stdio transport
uv run graphiti_mcp_server.py

# Or with SSE transport
uv run graphiti_mcp_server.py --transport sse --use-custom-entities
Testing
# Run basic connectivity test
curl http://localhost:8000/health

# Test MCP endpoint
curl http://localhost:8000/sse

πŸ” Troubleshooting

Common Issues
🐳 Docker Issues
# Clean up and restart
docker compose down -v
docker compose up --build

# Check disk space
docker system df
Logs and Debugging
# View all logs
docker compose logs -f

# View specific service logs
docker compose logs -f graphiti-mcp
docker compose logs -f neo4j

# Enable debug logging
docker compose up -e LOG_LEVEL=DEBUG
Performance Issues
  • Memory: Increase Neo4j heap size in docker-compose.yml
  • Storage: Monitor Neo4j data volume usage
  • Network: Check for firewall blocking ports 7474, 7687, 8000

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MCP Client    β”‚    β”‚  Graphiti MCP    β”‚    β”‚     Neo4j       β”‚
β”‚   (Cursor)      │◄──►│     Server       │◄──►│   Database      β”‚
β”‚                 β”‚    β”‚   (Port 8000)    β”‚    β”‚  (Port 7687)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                                β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚   OpenAI API     β”‚
                       β”‚   (LLM Client)   β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Components
  • Neo4j Database: Graph storage and querying
  • Graphiti MCP Server: API layer and LLM operations
  • OpenAI Integration: Entity extraction and semantic processing
  • MCP Protocol: Standardized AI agent communication

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


Need help? Open an issue or check our troubleshooting guide above.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.