An experimental Neo4j MCP server release that connects to a Neo4j database and exposes MCP tools for interacting with it. It supports STDIO for desktop clients and HTTP with per-request authentication for web or multi-tenant use, with startup checks and optional adaptive disabling of unavailable features.
From the registry: Neo4j MCP Canary — The canary goes first so the rest of us know what's coming
$ neo4j-mcp-canary -vhttps://github.com/neo4j-labs/neo4j-mcp-canary/releases/Please install the `neo4j-mcp-canary` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Neo4j MCP Canary binary** — Download the release archive for your OS/architecture, extract the neo4j-mcp-canary binary, place it on your PATH, and verify the installation. Run: `neo4j-mcp-canary -v` (https://github.com/neo4j-labs/neo4j-mcp-canary/releases/)
- **Provision a Neo4j database** — Have a running Neo4j database instance available, such as Neo4j Aura, Neo4j Desktop, or a self-managed deployment. (https://neo4j.com/product/auradb/)
- **Install the APOC plugin** — APOC must be installed in the Neo4j instance because the get-schema tool depends on apoc.meta.schema.
- **Create Neo4j credentials for STDIO mode** — For STDIO mode, prepare a Neo4j username and password with appropriate permissions. The server verifies connectivity and APOC availability at startup.
Canonical MCP server config (stdio transport):
- command: `neo4j-mcp-canary`
- args: []
- required environment variables:
- `NEO4J_URI`: Neo4j connection URI. (example: `<your-neo4j-uri>`)
- `NEO4J_USERNAME`: Neo4j database username. Required in STDIO mode; must be unset in HTTP mode. (example: `<your-neo4j-username>`)
- `NEO4J_PASSWORD`: Neo4j database password. Required in STDIO mode; must be unset in HTTP mode. (example: `<your-neo4j-password>`)
- optional environment variables:
- `NEO4J_DATABASE`: Neo4j database name. Defaults to neo4j. (example: `<your-database-name>`)
- `NEO4J_READ_ONLY`: Set to true to disable write-cypher and expose only read-only tools. (example: `<true-or-false>`)
- `NEO4J_TELEMETRY`: Enable or disable anonymous telemetry. Defaults to true. (example: `<true-or-false>`)
- `NEO4J_SCHEMA_SAMPLE_SIZE`: Number of nodes per label that APOC examines when inferring schema. (example: `<schema-sample-size>`)
- `NEO4J_LOG_LEVEL`: Log verbosity level. (example: `<debug|info|notice|warning|error|critical|alert|emergency>`)
- `NEO4J_LOG_FORMAT`: Log output format. Defaults to text. (example: `<text-or-json>`)
- `NEO4J_TRANSPORT_MODE`: Transport mode. Defaults to stdio; set to stdio for desktop MCP clients. (example: `stdio`)
- `NEO4J_CYPHER_MAX_ROWS`: Per-call row cap for read-cypher and write-cypher. Set 0 to disable. (example: `<max-rows>`)
- `NEO4J_CYPHER_MAX_BYTES`: Per-call byte cap on the response envelope. Set 0 to disable. (example: `<max-bytes>`)
- `NEO4J_CYPHER_TIMEOUT`: Cypher execution timeout in seconds. Set 0 to disable. (example: `<timeout-seconds>`)
- `NEO4J_CYPHER_MAX_ESTIMATED_ROWS`: Planner estimated row threshold above which read-cypher refuses a query. Set 0 to disable. (example: `<max-estimated-rows>`)
Note: The README documents both STDIO and HTTP modes. Canonical MCP client config uses the default STDIO mode. In STDIO mode, startup verification is mandatory and the server will not start unless Neo4j connectivity, query execution, and APOC availability all succeed. HTTP mode exists but is intended for web or multi-tenant deployments and uses per-request authentication rather than fixed MCP config env vars.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.NEO4J_URIrequiredNeo4j connection URI.NEO4J_USERNAMErequiredDatabase username; required in STDIO mode and must be unset in HTTP mode.NEO4J_PASSWORDrequiredDatabase password; required in STDIO mode and must be unset in HTTP mode.MCP server for interacting with the Supabase platform