trackmcp
Back to directory

MCP server for Neo4j — run Cypher queries, explore schema, and inspect database info over stdio

0 stars TypeScriptOthers Updated Apr 20, 2026

Documentation

neo4j-mcp

MCP server for Neo4j — run Cypher queries, explore graph schema, and inspect database info over stdio.

Installation

bash
bunx @daanrongen/neo4j-mcp

Tools (8 total)

DomainToolsCoverage
Query`run_query`, `run_read_query`Execute Cypher queries (write and read-only)
Schema`get_schema`, `get_labels`, `get_relationship_types`, `get_indexes`, `get_constraints`Inspect graph schema and metadata
Info`get_server_info`Neo4j server address and version

Configuration

VariableRequiredDescription
`NEO4J_URL`YesBolt URL (e.g. `bolt://localhost:7687` or `neo4j://localhost:7687`)
`NEO4J_PASSWORD`YesNeo4j password (username defaults to `neo4j`)

Setup

Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:

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

Claude Code CLI

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

Development

bash
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

Inspecting locally

`bun run inspect` launches the MCP Inspector against the local build:

bash
bun run build && bun run inspect

This opens the Inspector UI in your browser where you can call any tool interactively and inspect request/response shapes.

Architecture

code
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

License

MIT

Frequently asked questions

What is neo4j-mcp?

neo4j-mcp is MCP server for Neo4j — run Cypher queries, explore schema, and inspect database info over stdio

How do I install neo4j-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is neo4j-mcp open source?

Yes — it is hosted on GitHub at https://github.com/daanrongen/neo4j-mcp.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP