Skip to main content
Glama
alankyshum

Graphiti-Memory MCP Server

by alankyshum

Graphiti-Memory MCP Server

A Model Context Protocol (MCP) server that provides memory and knowledge graph operations using Neo4j and the Graphiti framework.

Features

  • 📝 Add Memories: Store episodes and information in the knowledge graph with automatic entity extraction

  • 🧠 Search Nodes: Query entities in your knowledge graph using natural language

  • 🔗 Search Facts: Find relationships and connections between entities

  • 📚 Retrieve Episodes: Get historical episodes and memories

  • 🗑️ Management Tools: Delete episodes, edges, and clear the graph

  • 🤖 AI-Powered: Optional OpenAI integration for enhanced entity extraction

  • 📊 Real-time Data: Direct connection to your Neo4j database

  • 🛠️ Built-in Diagnostics: Comprehensive error messages and troubleshooting

Installation

Prerequisites

  1. Neo4j Database: You need a running Neo4j instance

    # Install Neo4j (via Homebrew on macOS) brew install neo4j # Start Neo4j neo4j start
  2. Python 3.10+: Required for the MCP server

Install from PyPI

pip install graphiti-memory

Install from Source

git clone https://github.com/alankyshum/graphiti-memory.git cd graphiti-memory pip install -e .

Configuration

MCP Configuration

Add to your MCP client configuration file (e.g., Claude Desktop config):

{ "mcpServers": { "graphiti-memory": { "command": "graphiti-mcp-server", "env": { "NEO4J_URI": "neo4j://127.0.0.1:7687", "NEO4J_USER": "neo4j", "NEO4J_PASSWORD": "your-password-here", "OPENAI_API_KEY": "your-openai-key-here", "GRAPHITI_GROUP_ID": "default" } } } }

Neo4j Setup

  1. Set Password (first-time setup):

    neo4j-admin dbms set-initial-password YOUR_PASSWORD
  2. Test Connection:

    # HTTP interface curl http://127.0.0.1:7474 # Bolt protocol nc -zv 127.0.0.1 7687

Available Tools

1. add_memory

Add an episode or memory to the knowledge graph. This is the primary way to add information.

Example:

{ "name": "add_memory", "arguments": { "name": "Project Discussion", "episode_body": "We discussed the new AI feature roadmap for Q2. Focus on improving entity extraction.", "source": "text", "group_id": "project-alpha" } }

Parameters:

  • name: Name of the episode (required)

  • episode_body: Content to store - text, message, or JSON (required)

  • source: Type of content - "text", "message", or "json" (default: "text")

  • group_id: Optional namespace for organizing data

  • source_description: Optional description

2. search_memory_nodes

Search for nodes (entities) in the knowledge graph using natural language.

Example:

{ "name": "search_memory_nodes", "arguments": { "query": "machine learning", "max_nodes": 10 } }

Returns: List of nodes with UUID, name, summary, labels, and timestamps.

3. search_memory_facts

Search for facts (relationships) between entities in the knowledge graph.

Example:

{ "name": "search_memory_facts", "arguments": { "query": "what technologies are related to AI", "max_facts": 10 } }

Returns: List of fact triples with source, target, and relationship details.

4. get_episodes

Retrieve recent episodes for a specific group.

Example:

{ "name": "get_episodes", "arguments": { "group_id": "project-alpha", "last_n": 10 } }

5. delete_episode

Delete an episode from the knowledge graph.

Example:

{ "name": "delete_episode", "arguments": { "uuid": "episode-uuid-here" } }

6. delete_entity_edge

Delete a fact (entity edge) from the knowledge graph.

Example:

{ "name": "delete_entity_edge", "arguments": { "uuid": "edge-uuid-here" } }

7. get_entity_edge

Retrieve a specific entity edge by UUID.

Example:

{ "name": "get_entity_edge", "arguments": { "uuid": "edge-uuid-here" } }

8. clear_graph

Clear all data from the knowledge graph (DESTRUCTIVE).

Example:

{ "name": "clear_graph", "arguments": {} }

Usage

With Claude Desktop

Configure in ~/Library/Application Support/Claude/claude_desktop_config.json:

{ "mcpServers": { "graphiti-memory": { "command": "graphiti-mcp-server", "env": { "NEO4J_URI": "neo4j://127.0.0.1:7687", "NEO4J_USER": "neo4j", "NEO4J_PASSWORD": "your-password", "OPENAI_API_KEY": "your-openai-key-here", "GRAPHITI_GROUP_ID": "default" } } } }

Note: OPENAI_API_KEY is optional. Without it, entity extraction will be limited but the server will still work.

Standalone Testing

Test the server directly from command line:

export NEO4J_URI="neo4j://127.0.0.1:7687" export NEO4J_USER="neo4j" export NEO4J_PASSWORD="your-password" echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | graphiti-mcp-server

Troubleshooting

Connection Failed

Error: Connection refused or ServiceUnavailable

Solutions:

  1. Check Neo4j is running: neo4j status

  2. Start Neo4j: neo4j start

  3. Verify port 7687 is accessible: nc -zv 127.0.0.1 7687

Authentication Failed

Error: Unauthorized or authentication failure

Solutions:

  1. Verify password is correct

  2. Reset password: neo4j-admin dbms set-initial-password NEW_PASSWORD

  3. Update password in MCP configuration

  4. Use test tool to verify: test_neo4j_auth

Package Not Found

Error: neo4j package not installed

This package automatically installs the neo4j dependency. If you see this error:

pip install neo4j

Development

Setup Development Environment

git clone https://github.com/alankyshum/graphiti-memory.git cd graphiti-memory pip install -e ".[dev]"

Running Tests

# Test the server python -m graphiti_memory.server << 'EOF' {"jsonrpc":"2.0","id":1,"method":"initialize","params":{}} EOF

Architecture

MCP Client (Claude Desktop / Cline / etc.) ↓ Graphiti-Memory Server ↓ Neo4j Database

The server:

  • Listens on stdin for JSON-RPC messages

  • Logs diagnostics to stderr

  • Responds on stdout with JSON-RPC

  • Maintains persistent Neo4j connection

Contributing

Contributions welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Submit a pull request

License

MIT License - see LICENSE file for details.

  • GitHub: https://github.com/alankyshum/graphiti-memory

  • PyPI: https://pypi.org/project/graphiti-memory/

  • Issues: https://github.com/alankyshum/graphiti-memory/issues

  • MCP Specification: https://modelcontextprotocol.io

Credits

Built for use with:

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alankyshum/graphiti-memory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server