Atlas / MCP servers / sylweriusz / Neo4j Memory

Neo4j MemorySAFE

mcp/sylweriusz/neo4j-memory
Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
32 29r · 3w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
31
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

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
  • Su
Read from source at commit e300e5e4299aOBSERVED · 2026-10-08
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp-neo4j-memory-server --env NEO4J_PASSWORD=${NEO4J_PASSWORD} -- npx -y @sylweriusz/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-neo4j-memory-server": {
      "command": "npx",
      "args": [
        "-y",
        "@sylweriusz/[email protected]"
      ],
      "env": {
        "NEO4J_PASSWORD": "${NEO4J_PASSWORD}"
      }
    }
  }
}
03

Exposed tools (32)

29 read · 3 write · 0 destructive.

ToolRiskDescription
analyze-memory-qualityreadAssess observation quality and relationship density. Identifies improvement opportunities in knowledge capture and organization.
areareadTechnical area (database, api, frontend, infrastructure)
constraintsreadWhat must NOT change (APIs, interfaces, behavior)
create-project-knowledgewriteStructured project documentation workflow. Ensures comprehensive memory creation with proper relationships for maintainable knowledge graphs.
current_statereadBrief description of current architecture
database_switchread
debug-orphaned-memoriesreadFind and fix disconnected memories. Identifies isolation patterns and suggests meaningful connections to improve knowledge graph density.
decision_titlereadBrief title of the decision
depthreadHow many relationship levels to explore (1-5)
desired_outcomereadWhere you want the architecture to go
document-decisionreadCapture architectural/technical decisions with full context. Ensures alternatives and rationale are recorded for future reference.
domainreadProject domain (web, mobile, data, infrastructure)
evolve-architecturereadGradually evolve system architecture with memory-tracked decisions. Each step documented, relationships mapped, alternatives recorded.
explore-memory-graphreadSystematic exploration of memory connections. Guides through graph traversal patterns to discover knowledge relationships and insights.
granularityreadDetail level:
iteration_sizereadHow big each step should be:
memory_findread
memory_modifywrite
memory_storeread
memory_typesreadTypes to check for orphans (comma-separated)
pain_pointsreadWhat problems you
project_descriptionreadWhat you
project_namereadName of the project to document
refactor-with-rationalereadRefactor code while documenting every decision. Creates memory trail of what changed and why, perfect for team handoffs.
scopereadAnalysis scope:
session_typereadType of session:
starting_pointwriteMemory name or type to start exploration from
target_codereadFile/module/function to refactor
text-to-knowledge-graphreadTransform narrative text (books, documents, conversations) into structured knowledge graph with entities and relationships.
text_sourcereadSource type:
vibe-code-with-memoryreadMemory-assisted vibe coding workflow. Captures design decisions, tracks implementation evolution, and maintains context across sessions.
vibe_levelreadHow much to embrace the vibe:
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (7)

LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/application/mcp-handlers/mcp-database-handler.ts:6
import { DIContainer } from '../../container/di-container';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/application/mcp-handlers/mcp-database-handler.ts:7
import { MCPDatabaseError, MCPValidationError, MCPErrorCodes } from '../../infrastructure/errors';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/application/mcp-handlers/mcp-memory-handler.ts:5
import { DIContainer } from '../../container/di-container';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/application/mcp-handlers/mcp-memory-handler.ts:6
import { createErrorMessage } from '../../infrastructure/utilities';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/application/mcp-handlers/mcp-memory-handler.ts:7
import { MCPValidationError, MCPOperationError, MCPErrorCodes } from '../../infrastructure/errors';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @xenova/transformers, dotenv, express, neo4j-driver, ulid, zod, @types/express
Why it matters. 18 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
streamable_http_plan.md:123
- Handles POST/GET /mcp endpoint with DELETE for session termination
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha e300e5e4299afull audit observations/trust-audit/mcp-server/sylweriusz__neo4j-memory.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08e300e5e4299aSAFEB89first audit
06

Questions

What tools does Neo4j Memory expose?

32 in total: 29 read-only, 3 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Neo4j Memory safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Neo4j Memory need?

It reads NEO4J_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Neo4j Memory run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @sylweriusz/mcp-neo4j-memory-server at 3.2.0.

How current is this page?

The grade is for one exact copy of the source (e300e5e4299a), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement