2.3.6 • Published 1 month ago

@sylweriusz/mcp-neo4j-memory-v2 v2.3.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

MCP Neo4j Memory Server

Persistent memory for AI conversations using Neo4j. Store, search, and relate information across sessions.

Quick Start

npm install @sylweriusz/mcp-neo4j-memory-v2

Add to Claude Desktop config:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@sylweriusz/mcp-neo4j-memory-v2"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USERNAME": "neo4j", 
        "NEO4J_PASSWORD": "your-password"
      }
    }
  }
}

Neo4j Setup

Option 1: DozerDB with GDS Plugin

For the database, use DozerDB with the Graph Data Science plug-in, GDS is not only recommended but necessary:

# Run DozerDB container
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:5.26.3.0

# Install GDS plugin for vector similarity
wget https://github.com/DozerDB/graph-data-science/releases/download/2.8.0-alpha01/open-gds-2.8.0-alpha01.jar
docker cp open-gds-2.8.0-alpha01.jar $(docker ps -q --filter ancestor=graphstack/dozerdb):/plugins/
docker restart $(docker ps -q --filter ancestor=graphstack/dozerdb)

# Verify GDS plugin works
# In Neo4j Browser (http://localhost:7474):
# RETURN gds.similarity.cosine([1,2,3], [2,3,4]) as similarity

Option 2: Standard Neo4j (not(by me) tested with GDS)

# Docker (basic setup)
docker run -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/password neo4j:latest

# Or download from neo4j.com/download

Option 3: Cloud (not(by me) tested with GDS)

  • Neo4j AuraDB (free tier available)
  • Use connection string as NEO4J_URI

Note: Without GDS plugin, vector search will fail.

Features

  • Persistent Memory: Information survives conversation restarts
  • Semantic Search: Natural language queries using vector embeddings
    • GDS Plugin: Native Neo4j vector operations (necessary)
  • Knowledge Graphs: Connect related memories with directional relationships
  • Multi-Database: Organize by project/context
  • Zero-Fallback Architecture: Explicit errors instead of hidden failures

Basic Usage

The server provides 6 MCP tools that integrate automatically with Claude:

  • memory_manage - Create, update, delete memories
  • memory_retrieve - Get memories by ID
  • memory_search - Find memories with natural language
  • observation_manage - Add detailed content to memories
  • relation_manage - Connect memories
  • database_switch - Change active database

Memory Structure

{
  "id": "Bm>xyz123",
  "name": "Project Alpha", 
  "memoryType": "project",
  "metadata": {"status": "active"},
  "observations": [
    {"content": "Started development", "createdAt": "2025-01-15T10:00:00Z"}
  ],
  "related": {
    "ancestors": [{"id": "Bm>abc", "name": "Initiative", "relation": "PART_OF"}],
    "descendants": [{"id": "Bm>def", "name": "Task", "relation": "INCLUDES"}]
  }
}

System Prompt

For memory-focused workflows:

# MCP Memory Essentials

## SETUP (do this first!)
**Switch to project database**: `database_switch("project-memory-name")`

## CRITICAL WORKFLOW (must follow)
1. **Search first**: `memory_search()` before creating
2. **Memory exists?** → Add observations with `observation_manage()`
3. **Memory doesn't exist?** → Create with `memory_manage()`, then add observations with `observation_manage()`

## CORE RULES (non-negotiable)
- **Language**: Match user's language, add `{language: 'en'}` to metadata
- **Structure**: Metadata = overviews, Observations = complete modules
- **One concept = one memory**: Don't create 5 memories for related things

## OBSERVATION COMPLETENESS TEST
When adding an observation, ask: "Is this self-contained?"
- ❌ Bad: "Step 3: Click submit button" (fragment)
- ✅ Good: "Login process: 1) Enter email 2) Enter password 3) Click submit 4) Handle 2FA if enabled" (complete module)



## OPTIONAL TUNING

# Relationships (when connecting memories)
- Strength: 0.9 (critical) → 0.1 (weak)  
- Source: "agent" or "user"

# Health monitoring
- Run memory_search('*', limit: 100) periodically
- Watch for 1-observation memories or generic names

Troubleshooting

Vector Search Issues:

  • Check logs for [VectorSearch] GDS Plugin detected
  • GDS Plugin requires DozerDB setup (see Neo4j Setup section)
  • In-memory fallback works but is slower for large datasets

Connection Issues:

  • Verify Neo4j is running: docker ps
  • Test connection: curl http://localhost:7474
  • Check credentials in environment variables

License

MIT

2.3.6

1 month ago

2.3.5

1 month ago

2.3.4

1 month ago

2.3.3

1 month ago

2.3.2

1 month ago

2.3.1

1 month ago

2.1.2

2 months ago

2.1.1

2 months ago

2.1.0

2 months ago

2.0.9

2 months ago

2.0.8

2 months ago

2.0.7

2 months ago

2.0.6

2 months ago

2.0.5

2 months ago

2.0.4

2 months ago

2.0.3

2 months ago

2.0.2

2 months ago

2.0.1

2 months ago

2.0.0

2 months ago