Neo4j GraphRAG MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NEO4J_URI | Yes | Neo4j connection URI | bolt://localhost:7687 |
| AZURE_API_KEY | No | API Key for Azure embedding provider | |
| AZURE_API_BASE | No | API Base URL for Azure embedding provider | |
| COHERE_API_KEY | No | API Key for Cohere embedding provider | |
| NEO4J_DATABASE | No | Database name | neo4j |
| NEO4J_PASSWORD | Yes | Neo4j password | password |
| NEO4J_USERNAME | Yes | Neo4j username | neo4j |
| OPENAI_API_KEY | No | API Key for OpenAI embedding provider | |
| EMBEDDING_MODEL | No | Embedding model format (e.g. text-embedding-ada-002, azure/deployment-name, bedrock/amazon.titan-embed-text-v1, cohere/embed-english-v3.0, ollama/nomic-embed-text) | text-embedding-3-small |
| AWS_ACCESS_KEY_ID | No | AWS Access Key ID for Bedrock embedding provider | |
| AWS_SECRET_ACCESS_KEY | No | AWS Secret Access Key for Bedrock embedding provider |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_neo4j_schema_and_indexesA | Returns Neo4j graph schema with search indexes and property size warnings. IMPORTANT: Call this tool BEFORE using any search tools (vector_search, fulltext_search, search_cypher_query). This tool provides:
Property size warnings help you avoid token limits when using search tools. For example, if a property has warning "avg ~100-200KB", avoid returning it unless necessary. You should only provide a |
| vector_searchA | Performs vector similarity search on a Neo4j vector index. This tool embeds your text query using OpenAI and searches the specified vector index. Returns node IDs, labels, node properties (automatically sanitized), and similarity scores. Automatic Sanitization (always applied):
Property Selection:
Performance Optimization: Internally fetches max(top_k × 2, 100) results to avoid local maximum problems in kANN algorithms. |
| fulltext_searchA | Performs fulltext search on a Neo4j fulltext index using Lucene query syntax. Lucene Syntax Supported:
Automatic Sanitization (always applied):
Property Selection:
Returns node/relationship IDs, labels/types, properties (sanitized), and relevance scores. |
| read_neo4j_cypherB | Execute a read Cypher query on the Neo4j database. |
| search_cypher_queryA | Execute a Cypher query that uses vector and/or fulltext search indexes. This powerful tool allows you to:
Example: Placeholders:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no overlap: fulltext_search uses Lucene queries, vector_search uses embeddings, search_cypher_query combines both with graph traversal, read_neo4j_cypher handles general read queries, and get_neo4j_schema_and_indexes provides metadata. The descriptions explicitly differentiate their use cases and when to apply each, preventing confusion.
All tool names follow a consistent snake_case pattern with clear verb_noun or noun_verb structures: fulltext_search, vector_search, search_cypher_query, read_neo4j_cypher, get_neo4j_schema_and_indexes. The naming is predictable and readable, making it easy for agents to infer functionality.
With 5 tools, this server is well-scoped for Neo4j GraphRAG operations. It covers essential search methods (fulltext, vector, hybrid), general querying, and schema inspection without being overly sparse or bloated. Each tool serves a unique and necessary function in the workflow.
The toolset provides strong coverage for search and querying in a Neo4j GraphRAG context, including schema inspection, multiple search types, and flexible Cypher execution. A minor gap is the lack of write operations (e.g., create/update nodes), but this aligns with a read-focused RAG server, and agents can work around this limitation.