cypher_queryLABSCO SUMMARY
Per-directory credentials, so one install covers every project.
Most database servers make you register a new entry per database. Here the .env in whichever folder you opened decides the target, which means the plugin is installed once and the graph follows the project. The explicit read/write mode is the other good call — it means a destructive statement cannot slip through as a read because it happened to end in RETURN. The README's macOS warning is real: GUI apps do not read your shell rc file, so a neo4j-mcp-server that is only on your shell's PATH is invisible to them — install with pipx or into a system path.
What it is
A Neo4j MCP server that also ships as a Claude Code plugin. The design decision worth knowing: it inherits the client's working directory and loads a .env from there, so the same installed plugin talks to a different database depending on which project folder you opened. One consolidated query tool covers Cypher, with the read/write distinction as an explicit argument rather than something inferred from the statement.
What you get
- Any Cypher query run with an explicit
modeof read or write — write is required for CREATE, MERGE, SET and DELETE even when they also return rows — returning records, a record count, a truncation flag and statistics —cypher_query - The graph's labels, relationship types and property keys, which is where you start on a database you did not build —
get_database_schema - A connectivity check returning the server agent string and Bolt protocol version, for when the failure is the connection rather than the query —
test_database_connection - Full result serialization that preserves node and relationship
element_id, labels, types and Neo4j temporal and spatial values, rather than flattening them to strings - A result-size guard with a truncation flag, so a runaway
MATCH (n)returns a capped result you can see was capped — raiselimiton the call orNEO4J_DEFAULT_RESULT_LIMITin the environment - Two readable resources and a help prompt:
neo4j://schema,neo4j://connectionandcypher_query_help
Requirements
A reachable Neo4j database — local, Docker or Aura — and Python 3.10+. Install the package from a clone with pip install -e ., which puts a neo4j-mcp-server console script on your PATH; the plugin shells out to it by name, so it has to be there. Credentials come from environment variables or a .env in the working directory: NEO4J_HOST, NEO4J_PORT, NEO4J_USERNAME, NEO4J_PASSWORD, NEO4J_DATABASE, with NEO4J_URI_SCHEME and NEO4J_ENCRYPTED for Aura and TLS. Leave username and password blank for an unauthenticated local instance rather than setting them to defaults. Both stdio and SSE transports are supported.
Setup effort
Build from source — git clone https://github.com/cxt9/neo4j-mcp.git
USE CASES
Understanding a graph someone else modelled
Read the labels, relationship types and property keys before writing a query against names you are guessing at.
Asking a question of the data
Run Cypher in read mode and get records back with element IDs and typed values preserved, not stringified.
Changing the graph deliberately
Set the mode to write for a CREATE or MERGE, which makes the intent explicit rather than inferred.
Switching between a local database and Aura
Keep a different .env in each project folder and let the working directory decide which one the server connects to.
Recovering from a query that returned too much
Notice the truncation flag, then raise the limit on the call rather than assuming you saw the whole result.
3 tools
Listed in project docs. Your client may show a different list.
get_database_schematest_database_connectionBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
- neo4j-mcp-server on PATH
- Python 3.10+
- NEO4J_PASSWORD in your environment
- NEO4J_USERNAME in your environment
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/cxt9/neo4j-mcp.git
cd neo4j-mcp
pip install -e .MCP Clients
Claude Code
/plugin install <YOUR_PATH_TO_NEO4J_MCP>Claude Desktop, Cursor
{
"mcpServers": {
"neo4j": {
"command": "neo4j-mcp-server",
"args": []
}
}
}The configuration on this page does not set NEO4J_USERNAME and NEO4J_PASSWORD; the project's instructions put them in a .env file. Check which folder the server reads that file from before you rely on it.