Neo4j

Servidor MCP para Neo4j: ejecuta consultas Cypher, explora el esquema e inspecciona información de la base de datos a través de stdio.

Documentación

neo4j-mcp

Servidor MCP para Neo4j — ejecuta consultas Cypher, explora el esquema del grafo e inspecciona la información de la base de datos a través de stdio.

Instalación

bunx @daanrongen/neo4j-mcp

Herramientas (8 en total)

DominioHerramientasCobertura
Consultarun_query, run_read_queryEjecuta consultas Cypher (escritura y solo lectura)
Esquemaget_schema, get_labels, get_relationship_types, get_indexes, get_constraintsInspecciona el esquema del grafo y metadatos
Informaciónget_server_infoDirección y versión del servidor Neo4j

Configuración

VariableRequeridoDescripción
NEO4J_URLURL de Bolt (p. ej. bolt://localhost:7687 o neo4j://localhost:7687)
NEO4J_PASSWORDContraseña de Neo4j (el nombre de usuario por defecto es neo4j)

Preparación

Claude Desktop

Edita ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "neo4j": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@daanrongen/neo4j-mcp"],
      "env": {
        "NEO4J_URL": "bolt://localhost:7687",
        "NEO4J_PASSWORD": "your-password"
      }
    }
  }
}

Claude Code CLI

claude mcp add neo4j \
  -e NEO4J_URL=bolt://localhost:7687 \
  -e NEO4J_PASSWORD=your-password \
  -- bunx @daanrongen/neo4j-mcp

Desarrollo

bun install
bun run dev        # run with --watch
bun test           # run test suite
bun run typecheck  # tsc type check
bun run lint       # biome lint
bun run build      # bundle to dist/main.js

Inspección local

bun run inspect lanza el Inspector MCP contra la compilación local:

bun run build && bun run inspect

Esto abre la interfaz del Inspector en tu navegador, donde puedes llamar a cualquier herramienta de forma interactiva e inspeccionar las formas de las solicitudes y respuestas.

Arquitectura

src/
├── config.ts                # Effect Config — NEO4J_URL, NEO4J_PASSWORD
├── main.ts                  # Entry point — ManagedRuntime + StdioServerTransport
├── domain/
│   ├── Neo4jClient.ts       # Context.Tag service interface
│   ├── errors.ts            # Neo4jError, QueryError, NodeNotFoundError
│   ├── models.ts            # Schema.Class models (QueryResult, SchemaInfo, IndexInfo, …)
│   ├── query.test.ts        # Domain query tests (uses Neo4jClientTest)
│   └── schema.test.ts       # Domain schema tests (uses Neo4jClientTest)
├── infra/
│   ├── Neo4jClientLive.ts   # Layer.scoped — neo4j-driver connection with acquireRelease
│   └── Neo4jClientTest.ts   # In-memory Ref-based test adapter
└── mcp/
    ├── server.ts            # McpServer wired to ManagedRuntime
    ├── utils.ts             # formatSuccess, formatError
    └── tools/               # query.ts, schema.ts, info.ts

Licencia

MIT