Model or dataset
neo4j-contrib/mcp-neo4j avatar
neo4j-contrib/mcp-neo4j

mcp-neo4j: Four Neo4j Labs MCP Servers, One Labs Support Boundary

Neo4j Labs Model Context Protocol servers

983 stars259 forksPythonMIT

At a glance

What is it?
The neo4j-contrib/mcp-neo4j repository ships four separate MCP servers for Cypher generation, knowledge graph memory, Aura instance management and graph data modeling. It is MIT licensed, maintained by the Neo4j Field GenAI team, and explicitly not backed by Neo4j product support.
Who is it for?
Adopt mcp-neo4j if you want an MCP client such as Claude Desktop, VS Code, Cursor, Windsurf or Gemini CLI to read and write a Neo4j graph, and you accept the Labs terms: no SLA and no backwards compatibility guarantee. Do not adopt it as the supported product path, because the README points to github.com/neo4j/mcp for that.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

Four servers, four different jobs

The repository is not one MCP server. It is a collection of four, each with its own release cadence. mcp-neo4j-cypher turns natural language into Cypher: it reads the schema of a configured database and executes generated read and write queries against it. mcp-neo4j-memory stores entities and relationships in a personal knowledge graph on a local or remote Neo4j instance, so facts persist across sessions, conversations and clients. mcp-neo4j-cloud-aura-api manages Neo4j Aura instances: create, destroy, find by name, scale up and down, enable features. mcp-neo4j-data-modeling creates, validates and visualizes graph data models, with import and export to Arrows.app. The release tags confirm the split: mcp-neo4j-cypher-v0.6.0, mcp-neo4j-memory-v0.4.5 and mcp-gemini-ext-v1.0.1 are versioned independently, so upgrading one does not move the others. The README's example prompts map onto these boundaries. Asking what is in a graph or rendering a chart of top products by frequency, total and average volume is the cypher server. Listing instances or creating an Aura Professional instance with 4GB and Graph Data Science enabled is the Aura API server. Storing the fact that you worked on the MCP servers with Andreas and Oskar is the memory server. If you only need one of those behaviours, you only need one server, and the repository layout lets you take it alone.

Where the schema comes from, and why APOC is mandatory

The cypher server is the one with a hard external dependency. The README states plainly that it requires the APOC plugin to be installed and enabled on the Neo4j instance for schema inspection. That is the mechanism: before the model writes a query, the server inspects the database schema, and that inspection path runs through APOC. On a managed instance where you cannot install plugins, the cypher server's schema step is not available, and the README does not describe a fallback. This is the single most common way a first attempt fails, and it fails at the point where the model needs to know what labels and relationship types exist. The memory server has no such stated requirement in the material, which is consistent with its narrower job: it stores and retrieves entities and relationships rather than discovering an arbitrary schema. The Aura API server depends on Aura credentials rather than on the database's plugin surface. So the four servers do not share a single prerequisite profile, and treating them as interchangeable in a deployment plan is a mistake.

Transports: STDIO by default, HTTP and SSE when you move off the desktop

All servers support three transport modes. STDIO is the default and is what local tools and Claude Desktop integration use. SSE is for web-based deployments. HTTP is streamable HTTP, aimed at modern web deployments and microservices. The README gives both a flag form and an environment variable form. By flag: mcp-neo4j-cypher --transport http for basic HTTP mode, or mcp-neo4j-cypher --transport http --host 127.0.0.1 --port 8080 --path /api/mcp/ for a custom configuration. By environment: NEO4J_TRANSPORT=http, NEO4J_MCP_SERVER_HOST=127.0.0.1, NEO4J_MCP_SERVER_PORT=8080, NEO4J_MCP_SERVER_PATH=/api/mcp/, then run mcp-neo4j-cypher with no flags. The environment variable names are worth reading closely. NEO4J_TRANSPORT is unprefixed, while the host, port and path variables carry the NEO4J_MCP_SERVER_ prefix. Anyone scripting a container image from these values should copy them exactly rather than assume a uniform naming scheme. The README does not state a precedence rule when both a flag and the matching environment variable are set, so pick one mechanism per deployment and stay with it.

The Labs label is the real deployment constraint

The README is unusually direct about status. These servers are part of the Neo4j Labs program, developed and maintained by the Neo4j Field GenAI team, and they are not supported by the Neo4j product team. The sentence that matters for anyone putting this behind a production client reads: they are actively developed and maintained, but we don't provide any SLAs or guarantees around backwards compatibility and deprecation. Two consequences follow. First, a tool name, argument shape or environment variable can change between releases without a deprecation window, and the independent version tags mean you must track each server separately. Second, if you need a supported path, the README points to the official Neo4j MCP server at github.com/neo4j/mcp. That link is the clearest signal in the document about intended use: Labs is where experimental features land first, and the product repository is where support lives. Neither statement tells you which features exist in both places, and the material does not compare them, so verify that yourself before choosing.

Cloud deployment is documented, but the scaling claim is generic

The README says all servers in the repository are containerized and ready for cloud deployment on platforms such as AWS ECS Fargate and Azure Container Apps, and that each server supports HTTP transport mode designed for scalable, production-ready deployments with auto-scaling and load balancing. A separate README-Cloud.md is cited as the complete guide, covering AWS ECS Fargate with auto-scaling and an Application Load Balancer, Azure Container Apps with built-in scaling and traffic management, configuration best practices around security, monitoring, resource recommendations and troubleshooting, and integration examples for connecting MCP clients to cloud-deployed servers. Treat the auto-scaling and load balancing language as a statement about what the HTTP transport makes possible, not as a benchmark. No throughput figure, instance size or concurrency number appears in the material. The practical question the README does not answer is session affinity: an MCP server that holds conversation state behaves differently behind a load balancer than a stateless one, and nothing here says which of the four servers are stateless. Test that against your own client before trusting a horizontally scaled deployment.

What it is not: the wrong tool and the honest alternative

If your goal is a supported, versioned integration with a compatibility promise, this repository is the wrong tool by its own description, and the README names the alternative: the official Neo4j MCP server at github.com/neo4j/mcp. The difference in approach is one of governance rather than protocol. Both speak MCP and both connect an LLM client to Neo4j, but the official repository sits with the product team, while this one sits with the Field GenAI team under Labs terms with no SLA and no backwards compatibility guarantee. The material does not describe the official server's feature set, so do not assume it covers all four Labs servers; the Aura API management and the Arrows.app data modeling workflows are described here and their equivalents elsewhere are not stated. A second boundary is the APOC requirement on mcp-neo4j-cypher. If your Neo4j instance cannot enable APOC, the schema inspection step is unavailable and the natural-language-to-Cypher workflow loses the input it depends on. The memory and data-modeling servers are the more contained choices in that situation, because the README attaches no plugin requirement to them.

Maintenance cost and the MIT licence

The repository is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive licence and it is the reason the Labs support boundary matters more than the licence does: MIT gives you the right to fork and patch, and the absence of an SLA means you may need to. The maintenance cost is structural. Four servers, three transport modes and independent version tags mean a single upgrade is never a single upgrade. If you run mcp-neo4j-cypher and mcp-neo4j-memory together, you are tracking two release streams and two sets of breaking-change risks, and the README gives no shared changelog or compatibility matrix across them. The repository does welcome contributions, and the Field GenAI team is described as actively developing it, so fixes do arrive; they simply arrive without a schedule you can plan a release around. This is not legal advice, and the MIT text in the repository is the authoritative version if the terms matter to your organisation.

Editorial conclusion

Adopt mcp-neo4j if you want an MCP client such as Claude Desktop, VS Code, Cursor, Windsurf or Gemini CLI to read and write a Neo4j graph, and you accept the Labs terms: no SLA and no backwards compatibility guarantee. Do not adopt it as the supported product path, because the README points to github.com/neo4j/mcp for that. Before wiring it in, confirm the APOC plugin is installed and enabled on the target instance, since mcp-neo4j-cypher needs it for schema inspection, and decide which of the four servers you actually need rather than starting all of them.

Official sources

  1. License: MIT
  2. neo4j-contrib/mcp-neo4j on GitHub
  3. Project website
  4. README
  5. Releases
Community notes

Community notes