Skip to main content
Glama

Neo4j MCP - Model Context Protocol for Neo4j

A robust Model Context Protocol (MCP) implementation that enables LLMs to interact with Neo4j graph databases using natural language.

This server uses a stable, synchronous Neo4j driver wrapped for asynchronous use, ensuring reliable connections and compatibility with modern MCP clients.

šŸš€ Features

  • Full Read/Write Access: Execute both read and write Cypher queries.

  • Flexible Authentication: Connect to Neo4j with or without authentication.

  • Schema Introspection: Automatically discover database schema (labels, relationship types).

  • Secure Configuration: Environment-based configuration using a .env file.

  • LLM Integration: Ready to use with Cursor, Claude Desktop, and other MCP-compatible tools.

  • Robust Error Handling: Clear error messages for connection and query issues.

  • Parameterized Queries: Support for safe, parameterized queries to prevent injection.

šŸ“‹ Prerequisites

  • Python 3.8+

  • A running Neo4j database (local, Docker, or cloud).

  • pip for installing packages.

šŸ”§ Installation

  1. Clone the repository:

    git clone https://github.com/your-repo/neo4j-mcp.git
    cd neo4j-mcp
  2. Install in editable mode: This is the recommended way to install, as it links the neo4j-mcp-server command directly to your source code.

    pip install -e .

āš™ļø Configuration

Configuration is managed via a .env file in the project root.

  1. Create a

  2. Add your Neo4j connection details.

Example 1: Local Neo4j without Authentication

Create a .env file with the following content. Leave NEO4J_USERNAME and NEO4J_PASSWORD blank.

# .env file
NEO4J_HOST=localhost
NEO4J_PORT=7687
NEO4J_USERNAME=
NEO4J_PASSWORD=
NEO4J_DATABASE=neo4j

Example 2: Local or Cloud Neo4j with Authentication

# .env file
NEO4J_HOST=localhost
NEO4J_PORT=7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your-secret-password
NEO4J_DATABASE=neo4j

Example 3: Encrypted Connection (Aura)

For cloud services like Neo4j Aura, use the neo4j+s scheme and set NEO4J_ENCRYPTED to true.

# .env file
NEO4J_HOST=xxx.databases.neo4j.io
NEO4J_PORT=7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your-aura-password
NEO4J_DATABASE=neo4j
NEO4J_URI_SCHEME=neo4j+s
NEO4J_ENCRYPTED=true

šŸƒ Quick Start

With your .env file configured and dependencies installed, you can start the server.

# Start the MCP server
neo4j-mcp-server

The server will start and listen for connections over stdio. If you see INFO:neo4j_mcp.server:Starting Neo4j MCP Server (stdio), it's working!

You can also start it with an SSE transport for web-based clients:

neo4j-mcp-server --transport sse --port 3000

šŸ”Œ LLM Integration (Cursor Example)

  1. Make sure the server is installed and your .env file is configured.

  2. In Cursor, open the MCP configuration file (~/.cursor/mcp.json or via the @ symbol > Tools > Settings icon).

  3. Add the following server configuration. The server uses the .env file from its own directory, so you don't need to specify credentials here.

{
  "mcp.servers": {
    "neo4j": {
      "command": "neo4j-mcp-server",
      "transport": "stdio"
    }
  }
}
  1. Restart Cursor. The @neo4j tool should now be available and connected.

šŸ› ļø Available Tools

  • read_cypher_query(query, [parameters], [database]): Execute a read-only query.

  • write_cypher_query(query, [parameters], [database]): Execute a write query.

  • get_database_schema([database]): Get database labels and relationship types.

  • test_database_connection(): Verify the connection and get server info.

  • run_cypher_query(query, [parameters], [database], [read_only]): Run a query with explicit read/write mode.

🚨 Troubleshooting

  • AttributeError: type object 'SessionConfig' has no attribute 'AccessMode': Your neo4j library version might be incompatible. The project is tested with neo4j>=5.15.0.

  • ConnectionError: Neo4j authentication failed: Check your NEO4J_USERNAME and NEO4J_PASSWORD in the .env file. If your database has no auth, ensure these are blank.

  • ConnectionError: Neo4j service unavailable: Make sure your Neo4j database is running and accessible at the specified NEO4J_HOST and NEO4J_PORT.


Made with ā¤ļø for the Neo4j and MCP communities

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/cxt9/neo4j-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server