Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

mcp-neo4j-server

MCP.Pizza Chef: da-okazaki

The mcp-neo4j-server is an MCP server that bridges Neo4j graph databases with AI models like Claude Desktop, allowing users to perform graph database operations through natural language commands. It supports executing Cypher queries and managing graph data seamlessly within AI-enhanced workflows. Easily deployable via npx or integrated into Claude Desktop configurations, it facilitates real-time, conversational graph data exploration and manipulation, enhancing productivity and accessibility for developers and analysts working with complex graph structures.

Use This MCP server To

Query Neo4j graph databases using natural language Execute Cypher commands via AI-driven interfaces Integrate graph data operations into AI workflows Explore and manipulate graph data conversationally Automate graph database management tasks Enable real-time graph insights in chat environments

README

MCP Neo4j Server

smithery badge

An MCP server that provides integration between Neo4j graph database and Claude Desktop, enabling graph database operations through natural language interactions.

Neo4j Server MCP server

Quick Start

You can run this MCP server directly using npx:

npx @alanse/mcp-neo4j

Or add it to your Claude Desktop configuration:

{
  "mcpServers": {
    "neo4j": {
      "command": "npx",
      "args": ["@alanse/mcp-neo4j-server"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USERNAME": "neo4j",
        "NEO4J_PASSWORD": "your-password"
      }
    }
  }
}

Features

This server provides tools for interacting with a Neo4j database:

Tools

  • execute_query: Execute Cypher queries on the Neo4j database

    • Supports all types of Cypher queries (READ, CREATE, UPDATE, DELETE)
    • Returns query results in a structured format
    • Parameters can be passed to prevent injection attacks
  • create_node: Create a new node in the graph database

    • Specify node labels and properties
    • Returns the created node with its internal ID
    • Supports all Neo4j data types for properties
  • create_relationship: Create a relationship between two existing nodes

    • Define relationship type and direction
    • Add properties to relationships
    • Requires node IDs for source and target nodes

Installation

Installing via Smithery

To install MCP Neo4j Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @alanse/mcp-neo4j-server --client claude

For Development

  1. Clone the repository:
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-server
  1. Install dependencies:
npm install
  1. Build the project:
npm run build

Configuration

The server requires the following environment variables:

  • NEO4J_URI: Neo4j database URI (default: bolt://localhost:7687)
  • NEO4J_USERNAME: Neo4j username (default: neo4j)
  • NEO4J_PASSWORD: Neo4j password (required)

Usage Examples

Here are examples of how you can interact with the Neo4j database using natural language:

Querying Data

You can ask questions like:

  • "Show me all employees in the Sales department"
  • "Find the top 5 oldest customers"
  • "Who has purchased more than 3 products in the last month?"

Example:

User: "Show me all employees in the Sales department"

Claude: Let me query the database for Sales department employees.

[Executes query internally: MATCH (e:Employee)-[:WORKS_IN]->(d:Department {name: 'Sales'}) RETURN e.name, e.position]

Result:
- John Smith (Sales Manager)
- Sarah Johnson (Sales Representative)
- Mike Brown (Account Executive)

Creating Data

You can give instructions like:

  • "Add a new person named John Doe who is 30 years old"
  • "Create a product called 'Premium Coffee' with price $24.99"
  • "Add a new department called 'Research & Development'"

Example:

User: "Add a new person named John Doe who is 30 years old"

Claude: I'll create a new Person node with the provided information.

[Creates node internally with label 'Person' and properties {name: 'John Doe', age: 30}]

Result: Created new person node with ID: 123

Creating Relationships

You can request relationships like:

  • "Make John Doe friends with Jane Smith"
  • "Set Product A as a component of Product B"
  • "Assign John Doe to the Sales department"

Example:

User: "Make John Doe friends with Jane Smith"

Claude: I'll create a friendship relationship between these two people.

[Creates relationship internally: MATCH (a:Person {name: 'John Doe'}), (b:Person {name: 'Jane Smith'})
CREATE (a)-[:FRIENDS_WITH {since: '2024-01-05'}]->(b)]

Result: Created friendship relationship between John Doe and Jane Smith

Complex Operations

You can perform more complex operations with natural language:

  • "Find all products purchased by customers who live in New York"
  • "Show me friends of friends of John Doe"
  • "Calculate the average age of employees in each department"

Example:

User: "Find all products purchased by customers who live in New York"

Claude: I'll query the database for this information.

[Executes query internally:
MATCH (c:Customer {city: 'New York'})-[:PURCHASED]->(p:Product)
RETURN c.name, collect(p.name) as products]

Result:
- Alice Wilson: [Premium Coffee, Tea Set, Cookies]
- Bob Miller: [Premium Coffee, Water Bottle]

Testing

Run the test suite:

npm test

License

MIT

mcp-neo4j-server FAQ

How do I start the mcp-neo4j-server?
You can start it directly using the command 'npx @alanse/mcp-neo4j-server' or configure it within Claude Desktop by adding it to the mcpServers section with appropriate Neo4j credentials.
What environment variables are required to connect to Neo4j?
You need to set NEO4J_URI, NEO4J_USERNAME, and NEO4J_PASSWORD to connect the server to your Neo4j instance.
Can I use this server with LLMs other than Claude?
Yes, while it is designed for Claude Desktop, the MCP protocol allows integration with other LLM providers like OpenAI and Gemini.
What kind of operations can I perform with this server?
You can execute Cypher queries, retrieve graph data, and perform graph database management tasks through natural language commands.
Is it necessary to have Neo4j installed locally?
No, as long as you have network access to a Neo4j instance specified by the NEO4J_URI, the server can connect remotely.
How secure is the connection to Neo4j?
Security depends on your Neo4j setup and network configuration; the server uses the credentials you provide to authenticate.
Can I customize the commands or tools exposed by the server?
The server exposes standard Cypher execution tools, but you can extend or modify it by contributing to the open-source project on GitHub.
Does the server support real-time updates from Neo4j?
The server primarily executes queries on demand; real-time subscription features depend on Neo4j capabilities and client implementation.