MCP server for executing Cypher queries against Neo4j databases with support for read-only, write, and admin operations
This server demonstrates significant gaps in definition quality across multiple dimensions. Tool naming is verb-based and clear (read-cypher, write-cypher, get-schema, admin-cypher, enable-admin-cypher), which is appropriate. However, descriptions are uniformly terse (10-30 characters), falling well below the 194-character baseline and failing the 20-character minimum guidance. Input schemas are present for most tools but lack parameter-level descriptions in several cases. The 'params' parameter across multiple tools uses additionalProperties:true without constraining or documenting what parameters are valid, violating pattern:constrained-input. No output schemas are documented. Error handling is not visible in the provided source. Security is a critical concern: the admin-cypher and enable-admin-cypher tools expose privilege escalation with minimal guardrails, no evidence of permission checks, audit logging, or confirmation patterns before destructive operations.
Perform cypher query with escalated privilege
Enable Admin Cypher depending on the permission
Extract Neo4j database schema including node labels, properties, and relationship types
Perform a read-only Cypher against a Neo4j database
Perform write Cypher query
Descriptions are critically short and lack actionable context. 'Perform a read-only Cypher against a Neo4j database' (11 chars) and 'Perform write Cypher query' (25 chars) fall far below the 194-character baseline. LLMs cannot determine when to select these tools or what they actually do in the system.
The 'params' parameter across read-cypher, write-cypher, and admin-cypher uses additionalProperties:true with no documentation of what parameters Neo4j Cypher actually accepts. This violates pattern:constrained-input and leaves LLMs unable to validate or reason about valid parameter keys.
No output schemas are documented for any tool. LLMs cannot plan downstream operations or understand what data to extract from Cypher results.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 44 | - | v1 |
admin-cypher and enable-admin-cypher enable privilege escalation with no visible permission checks, audit logging, or confirmation patterns. A critical security gap: no evidence of pattern:permission-gate, pattern:audit-trail, or pattern:confirmation-request.
The 'query' parameter has a default value 'MATCH(n) RETURN n'. This is not a safe default, it executes a read on connection and may cause unexpected side effects if omitted.
No parameter descriptions for 'query' and 'params' beyond the name. LLMs have no guidance on what format queries should take, how to structure parameters, or what Cypher syntax is valid.
enable-admin-cypher's 'permission' enum accepts only 'read' or 'write' but the description does not explain what these values mean in context or how enabling admin-cypher with a read permission differs from write permission.
get-schema has an empty input schema (no parameters), but the description is vague: 'Extract Neo4j database schema including node labels, properties, and relationship types'. No hint of what the output looks like or how the LLM should use it.