Model Context Protocol server for Neo4j graph database, providing tools for Cypher query execution, schema inspection, constraint/index management, Graph Data Science operations, and vector/fulltext search capabilities
The Neo4j MCP server presents a mixed quality picture. It has 17 tools across schema discovery, query execution, indexing, and search categories. Naming is generally clear (verb-first pattern: get-, read-, write-, create-, drop-, list-), but parameter documentation is inconsistent. Many tools lack comprehensive input schemas and detailed parameter descriptions. Error handling strategies are not visible in the provided source. The server shows awareness of tool annotations (tool_annotations=true in features) but the actual implementation details of how these are applied are not evident in the sampled code.
Create a constraint on a node label or relationship type
Create a fulltext index for text search
Create an index on properties of a node label or relationship type
Create a vector index for similarity search
Drop an existing constraint
Drop an existing index
Explain the execution plan of a Cypher query without executing it
Perform full-text search using fulltext indexes
Empty or minimal input schemas for discovery tools (get-schema, list-constraints-and-indexes, list-gds-procedures). These tools accept no parameters but lack explicit empty-object schema documentation. For tools with {} input, the schema should be explicit and documented.
Parameter descriptions are minimal or missing context. For example, 'query' parameters in read-cypher/write-cypher/explain-cypher lack detail about Cypher dialect, version, available functions, or expected return format. LLMs need richer guidance to construct valid queries.
No visible output schema documentation. Tool descriptions state what they return (e.g., 'return results', 'return constraints') but the actual response structure is not documented in the definitions provided. LLMs cannot plan downstream steps or extract required fields without knowing the response schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Retrieve the graph schema including node labels, relationship types, and their properties
Provide feedback or report issues
List all constraints and indexes defined in the database
List available Graph Data Science procedures
Profile the execution of a Cypher query with runtime statistics
Execute a read-only Cypher query and return results
Set vector property values on nodes
Perform vector similarity search using vector indexes
Execute a write Cypher query that modifies the graph
Constraint and index creation tools (create-constraint, create-index, etc.) lack constraint descriptions for their input parameters. constraintType and indexType are enums but no valid enum values are documented. Properties parameter is an array but element type is not specified.
No error handling guidance visible. Tool descriptions do not explain what happens on failure (e.g., invalid Cypher syntax, constraint violations, missing indexes). LLMs have no guidance on retry strategies or recovery paths.
'give-feedback' tool is a meta/administrative tool that does not fit the domain of graph database operations. Its presence suggests unclear scope. Consider separating meta-operations (feedback, telemetry) from the core tool set or documenting when/why this tool should be invoked.
Vector and fulltext search tools accept 'indexName' and 'indexType' parameters but do not document the expected format, naming conventions, or whether these resolve dynamically or must be pre-created. The relationship between index creation tools and search tools is not explicit.
Cypher query tools (read/write/explain/profile) expose raw Cypher as input. No input validation, sanitization, or constraint documentation visible. Tool descriptions should warn about injection risks or query safety best practices.