Neo4j
STDIOOfficial Neo4j MCP server for graph database operations and Cypher query execution
Official Neo4j MCP server for graph database operations and Cypher query execution
Official Model Context Protocol (MCP) server for Neo4j.
BETA - Active development; not yet suitable for production.
Releases: https://github.com/neo4j/mcp/releases
neo4j-mcp in a directory present in your PATH variables (see examples below).Mac / Linux:
chmod +x neo4j-mcp sudo mv neo4j-mcp /usr/local/bin/
Windows (PowerShell / cmd):
move neo4j-mcp.exe C:\Windows\System32
Verify the neo4j-mcp installation:
neo4j-mcp -v
Should print the installed version.
Create / edit mcp.json (docs: https://code.visualstudio.com/docs/copilot/customization/mcp-servers):
{ "servers": { "neo4j": { "type": "stdio", "command": "neo4j-mcp", "env": { "NEO4J_URI": "bolt://localhost:7687", "NEO4J_USERNAME": "neo4j", "NEO4J_PASSWORD": "password", "NEO4J_DATABASE": "neo4j", "NEO4J_READ_ONLY": "true" // Optional: disables write tools } } } }
Restart VSCode; open Copilot Chat and ask: "List Neo4j MCP tools" to confirm.
First, make sure you have Claude for Desktop installed. You can install the latest version here.
We’ll need to configure Claude for Desktop for whichever MCP servers you want to use. To do this, open your Claude for Desktop App configuration at:
~/Library/Application Support/Claude/claude_desktop_config.json$env:AppData\Claude\claude_desktop_config.jsonin a text editor. Make sure to create the file if it doesn’t exist.
You’ll then add the neo4j-mcp MCP in the mcpServers key:
{ "mcpServers": { "neo4j-mcp": { "type": "stdio", "command": "neo4j-mcp", "args": [], "env": { "NEO4J_URI": "bolt://localhost:7687", "NEO4J_USERNAME": "neo4j", "NEO4J_PASSWORD": "password", "NEO4J_DATABASE": "neo4j", "NEO4J_READ_ONLY": "true" // Optional: disables write tools } } } }
Notes:
NEO4J_READ_ONLY=true to disable all write tools (e.g., write-cypher).bolt://localhost:7687.Provided tools:
| Tool | ReadOnly | Purpose | Notes | 
|---|---|---|---|
get-schema | true | Introspect labels, relationship types, property keys | Provide valuable context to the client LLMs. | 
read-cypher | true | Execute arbitrary Cypher (read mode) | Rejects writes, schema/admin operations, and PROFILE queries. Use write-cypher instead. | 
write-cypher | false | Execute arbitrary Cypher (write mode) | Caution: LLM-generated queries could cause harm. Use only in development environments. Disabled if NEO4J_READ_ONLY=true. | 
list-gds-procedures | true | List GDS procedures available in the Neo4j instance | Help the client LLM to have a better visibility on the GDS procedures available | 
Enable readonly mode by setting the NEO4J_READ_ONLY environment variable to true (for example, "NEO4J_READ_ONLY": "true").
When enabled, write tools (for example, write-cypher) are not exposed to clients.
The read-cypher tool performs an extra round-trip to the Neo4j database to guarantee read-only operations.
Important notes:
CREATE, MERGE, DELETE, SET, etc., are treated as non-read queries.SHOW USERS, SHOW DATABASES, etc., are treated as non-read queries and must use write-cypher instead.EXPLAIN PROFILE queries are treated as non-read queries, even if the underlying statement is read-only.CREATE INDEX, DROP CONSTRAINT, etc., are treated as non-read queries.Below are some example prompts you can try in Copilot or any other MCP client:
📚 Contributing Guide – Contribution workflow, development environment, mocks & testing.
Issues / feedback: open a GitHub issue with reproduction details (omit sensitive data).