run_queryLABSCO SUMMARY
The read-only query is a separate tool.
Having run_read_query beside run_query is what makes this comfortable to hand to an assistant: exploration goes through the read tool, and writes need the tool that says so. The schema tools are the other half of that — labels, relationship types, indexes and constraints let a model compose a query against the graph as it actually is rather than as it assumes.
What it is
An MCP server for Neo4j over stdio. It splits the surface into three parts: running Cypher, inspecting the graph's schema, and reading server information — so an assistant can find its way around a graph before querying it.
What you get
- Cypher execution with the read path kept separate —
run_queryandrun_read_query - Schema inspection: the schema itself, node labels and relationship types —
get_schema,get_labels,get_relationship_types - The metadata that decides whether a query will be fast —
get_indexes,get_constraints - The server's address and version —
get_server_info - An install with no build step —
bunx @daanrongen/neo4j-mcp - A local inspector run —
bun run build && bun run inspect— that lists every tool and shows request and response shapes
Requirements
A reachable Neo4j instance and two environment variables: NEO4J_URL, a Bolt URL such as bolt://localhost:7687 or neo4j://localhost:7687, and NEO4J_PASSWORD, with the username defaulting to neo4j. Bun on the machine to run bunx; the documented setups are a Claude Desktop stdio entry and a one-line claude mcp add for the CLI. The package is @daanrongen/neo4j-mcp 1.1.4.
Setup effort
One command plus credentials — bunx @daanrongen/neo4j-mcp, then supply credentials
USE CASES
Exploring a graph you did not build
Read the labels and relationship types before writing any Cypher against it.
Answering a question with Cypher
Let the model compose the query from the schema it just read and run it read-only.
Working out why a query is slow
Check which indexes and constraints exist before rewriting it.
Confirming which database you are on
Read the server address and version before running anything that writes.
8 tools
Listed in project docs. Your client may show a different list.
run_read_queryget_schemaget_labelsget_relationship_typesget_indexesget_constraintsget_server_infoBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
Requires
- bunx on PATH
- NEO4J_PASSWORD in your environment
- NEO4J_URL in your environment
INSTALLATION
Connect your client
Server setup
bunx @daanrongen/neo4j-mcpMCP Clients
Claude Desktop
{
"mcpServers": {
"neo4j": {
"type": "stdio",
"command": "bunx",
"args": [
"@daanrongen/neo4j-mcp"
],
"env": {
"NEO4J_URL": "bolt://localhost:7687",
"NEO4J_PASSWORD": "<YOUR_NEO4J_PASSWORD>"
}
}
}
}Claude Code
claude mcp add neo4j \
-e NEO4J_URL=bolt://localhost:7687 \
-e NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD> \
-- bunx @daanrongen/neo4j-mcp