MCP Neo4j Memory Server

by sylweriusz

32 stars
313 downloads
Not rated
GitHub

Description

# Neo4j Memory Server A Model Context Protocol (MCP) server that provides AI assistants with persistent, intelligent memory capabilities using Neo4j's graph database with unified architecture ## What it does This server enables AI assistants to: - **Remember** - Store memories…

About

# Neo4j Memory Server A Model Context Protocol (MCP) server that provides AI assistants with persistent, intelligent memory capabilities using Neo4j's graph database with unified architecture ## What it does This server enables AI assistants to: - **Remember** - Store memories as interconnected knowledge nodes with…

Details

Author
sylweriusz
GitHub stars
32
Downloads
313
Categories
Knowledge Base

- Stores memories as nodes with typed relationships and temporal metadata
- Unified search: vectors, exact matches, wildcards, and graph traversal
- Creates multiple memories with relations in a single batch request
- Isolates projects via separate databases with instant switching
- Filters memories by relative or absolute date on any temporal field
- Zero-fallback error handling for reliable debugging

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name MCP Neo4j Memory Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via npm install @sylweriusz/mcp-neo4j-memory-server, then add the tool to your Claude Desktop config with environment variables NEO4J_URI, NEO4J_USERNAME, and NEO4J_PASSWORD. You must run a Neo4j database with the GDS plugin (recommended: DozerDB). Four unified MCP tools—memory_store, memory_find, memory_modify, and database_switch—handle all memory operations.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp neo4j memory server": {
            "mcp-neo4j-memory-server": {
                "command": "docker",
                "args": [
                    "run",
                    "\\"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-neo4j-memory-server": {
        "command": "docker",
        "args": [
            "run",
            "\\"
        ]
    }
}
# Neo4j Memory Server A Model Context Protocol (MCP) server that provides AI assistants with persistent, intelligent memory capabilities using Neo4j's graph database with unified architecture ## What it does This server enables AI assistants to: - **Remember** - Store memories as interconnected knowledge nodes with observations and metadata - **Search** - Find relevant memories using semantic vector search, exact matching, and graph traversal - **Connect** - Create meaningful relationships between memories with batch operations and cross-references - **Organize** - Separate memories by project using different databases - **Evolve** - Track how knowledge develops over time with temporal metadata and relationship networks ## Features ### Core Capabilities - 🧠 **Graph Memory** - Memories as nodes, relationships as edges, observations as content - 🔍 **Unified Search** - Semantic vectors, exact matching, wildcards, and graph traversal in one tool - 🔗 **Smart Relations** - Typed connections with strength, source tracking, and temporal metadata - 📊 **Multi-Database** - Isolated project contexts with instant switching ### Advanced Operations - ⚡ **Batch Operations** - Create multiple memories with relationships in single request using localId - 🎯 **Context Control** - Response detail levels: minimal (lists), full (complete data), relations-only - 📅 **Time Queries** - Filter by relative ("7d", "30d") or absolute dates on any temporal field - 🌐 **Graph Traversal** - Navigate networks in any direction with depth control ### Architecture - 🚀 **MCP Native** - Seamless integration with Claude Desktop and MCP clients - 💾 **Persistent Storage** - Neo4j graph database with GDS plugin for vector operations - ⚠️ **Zero-Fallback** - Explicit errors for reliable debugging, no silent failures ## Technical Highlights - Built on Neo4j for scalable graph operations - Vector embeddings using sentence transformers (384 dimensions) - Clean architecture with domain-driven design - Supports GDS plugin for advanced vector operations (necessary) - **Unified Architecture** - 4 comprehensive tools for complete memory operations ## Quick Start ```bash npm install @sylweriusz/mcp-neo4j-memory-server ``` Add to Claude Desktop config: ```json { "mcpServers": { "memory": { "command": "npx", "args": ["-y", "@sylweriusz/mcp-neo4j-memory-server"], "env": { "NEO4J_URI": "bolt://localhost:7687", "NEO4J_USERNAME": "neo4j", "NEO4J_PASSWORD": "your-password" } } } } ``` ## Neo4j Setup ### Working setup: DozerDB with GDS Plugin For the database, use DozerDB with the Graph Data Science plug-in, GDS is not only recommended but necessary: For current installation instructions, see: https://dozerdb.org/ Example setup: ```bash # Run DozerDB container with latest version docker run \ -p 7474:7474 -p 7687:7687 \ -v $HOME/neo4j/data:/data \ -v $HOME/neo4j/logs:/logs \ -v $HOME/neo4j/plugins:/plugins \ --env NEO4J_AUTH=neo4j/password \ --env NEO4J_dbms_security_procedures_unrestricted='gds.*' \ graphstack/dozerdb:latest # Install GDS plugin - see dozerdb.org for current instructions # Verify GDS plugin works # In Neo4j Browser (http://localhost:7474): # RETURN gds.similarity.cosine([1,2,3], [2,3,4]) as similarity ``` ## Unified Tools The server provides **4 unified MCP tools** that integrate automatically with Claude: - `memory_store` - Create memories with observations and immediate relations in ONE operation - `memory_find` - Unified search/retrieval with semantic search, direct ID lookup, date filtering, and graph traversal - `memory_modify` - Comprehensive modification operations (update, delete, observations, relations) - `database_switch` - Switch database context for isolated environments ## Memory Structure ```json { "id": "dZ$abc123", "name": "Project Alpha", "memoryType": "project", "metadata": {"status": "active", "priority": "high"}, "observations": [ {"id": "dZ$obs456", "content": "Started development", "createdAt": "2025-06-08T10:00:00Z"} ], "related": { "ancestors": [{"id": "dZ$def789", "name": "Initiative", "relation": "PART_OF", "distance": 1}], "descendants": [{"id": "dZ$ghi012", "name": "Task", "relation": "INCLUDES", "distance": 1}] } } ``` ## System Prompt ### The simplest use of the memory tool, the following usually is more than enough. ``` ## Memory Tool Usage - Store all memory for this project in database: 'project-database-name' - Use MCP memory tools exclusively for storing project-related information - Begin each session by: 1. Switching to this project's database 2. Searching memory for data relevant to the user's prompt ``` ## Troubleshooting **Vector Search Issues:** - Check logs for `[VectorSearch] GDS Plugin detected` - GDS Plugin requires DozerDB setup (see Neo4j Setup section) **Connection Issues:** - Verify Neo4j is running: `docker ps` - Test connection: `curl http://localhost:7474` - Check credentials in environment variables ## License MIT
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.