MCP Neo4j Server
The MCP Neo4j Server enables natural language interactions with a Neo4j graph database for querying and managing data. You can:
Execute Cypher Queries: Run Cypher queries (READ, CREATE, UPDATE, DELETE) with support for query parameters
Create Nodes: Add new nodes with specified labels and properties
Create Relationships: Establish relationships between existing nodes, defining the type, direction, and properties
Provides integration between Neo4j graph database and Claude Desktop, enabling graph database operations through natural language interactions. It allows executing Cypher queries, creating nodes and relationships, and performing complex graph operations via natural language commands.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Neo4j Serverfind all customers who purchased in the last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Neo4j Server
An MCP server that provides integration between Neo4j graph database and Claude Desktop, enabling graph database operations through natural language interactions.
Quick Start
You can run this MCP server directly using npx:
npx @alanse/mcp-neo4jOr 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",
"NEO4J_DATABASE": "neo4j"
}
}
}
}Related MCP server: Notion MCP Server
Features
This server provides tools for interacting with a Neo4j database:
Neo4j Enterprise Support
This server now supports connecting to specific databases in Neo4j Enterprise Edition. By default, it connects to the "neo4j" database, but you can specify a different database using the NEO4J_DATABASE environment variable.
Tools
execute_query: Execute Cypher queries on the Neo4j databaseSupports 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 databaseSpecify 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 nodesDefine 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 claudeFor Development
Clone the repository:
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-serverInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
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)NEO4J_DATABASE: Neo4j database name (default: neo4j) - Use this to connect to a specific database in Neo4j Enterprise
Usage Examples
Here are examples of how you can interact with the Neo4j database using natural language:
Connecting to a Specific Database
For Neo4j Enterprise users with multiple databases, you can specify which database to connect to:
{
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "your-password",
"NEO4J_DATABASE": "myCustomDatabase"
}
}This will connect to "myCustomDatabase" instead of the default "neo4j" database.
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: 123Creating 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 SmithComplex 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 testLicense
MIT
Available Tools
3 toolscreate_nodeB
Create a new node in Neo4j
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Node label | |
| properties | Yes | Node properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose behavioral traits; but it only states the action without mentioning side effects, permissions, constraints, or return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded, but more context could be added without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 params, no output schema, no annotations), the description is too minimal; it lacks details on behavior, error handling, and return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for 'label' and 'properties'; the description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new node in Neo4j' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_relationship and execute_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no when-not-to-use or prerequisites provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_relationshipB
Create a relationship between two nodes
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Relationship type | |
| toNodeId | Yes | ID of the target node | |
| fromNodeId | Yes | ID of the source node | |
| properties | No | Relationship properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states the action without revealing constraints, failure conditions, or required privileges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is very concise, but lacks necessary detail. However, it is not verbose, so it earns a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters including a nested object and no output schema, the description is too brief. It should explain directionality, required type, and optional properties.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, so baseline is 3. Description adds no additional meaning beyond the schema, such as explaining relationship direction or properties usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Create' and resource 'relationship between two nodes', which is specific and distinct from sibling tools that create nodes or execute queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like execute_query for creating relationships. No mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_queryC
Execute a Cypher query on Neo4j database
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Cypher query to execute | |
| params | No | Query parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but fails to do so. It omits information about side effects (e.g., mutation vs read), error behavior, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous words. It is efficient but could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain return values, error handling, or important behavioral context for a general query executor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Execute' and the resource 'a Cypher query on Neo4j database'. It distinguishes from sibling tools (create_node, create_relationship) by indicating general query execution rather than specific node/relationship creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the siblings. The description does not mention context or exclusions, leaving the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.1- First observed
create_node - First observed
create_relationship - First observed
execute_query
TDQS
Scored across 3 tools
Each tool targets a distinct operation: creating nodes, creating relationships, and executing arbitrary queries. There is no overlap.
All tools follow a consistent verb_noun pattern in snake_case: create_node, create_relationship, execute_query.
With 3 tools, the server is slightly small but still reasonable for a focused database interface. The tools cover essential create and query operations.
The server lacks direct update and delete operations on nodes/relationships. While execute_query can handle these via Cypher, it creates a dependency on raw queries, which is a notable gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis lets you use Claude Desktop, or any MCP Client, to use natural language to accomplish things with Neo4j and your Aura account.980MIT
- AlicenseNot gradedqualityDmaintenanceA simple server that integrates with Claude to allow querying and manipulating Notion pages and databases through natural language prompts.1,527MIT
- FlicenseNot gradedqualityCmaintenanceA server that enables interaction with PostgreSQL, MySQL, MariaDB, or SQLite databases through Claude Desktop using natural language queries.1-

Kuzu MCP serverofficial
AlicenseBqualityFmaintenanceThis server enables natural language interaction between a user and their Kuzu databases using clients like Claude Desktop or Cursor, allowing LLMs to retrieve the database schema, execute Cypher queries, create nodes, and establish relationships in the graph database.242MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/da-okazaki/mcp-neo4j-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server