MCP server for Neon database management, providing tools to manage projects, branches, databases, and schemas
neon-mcp provides 8 tools with complete input schemas and basic descriptions. All tools have verb-noun naming (list*, get*, delete*, restore*, compare*, retrieve*) and documented parameters with types. However, descriptions are minimal (10-50 chars), lacking context on WHEN to use each tool, prerequisites, or return value details. Parameter descriptions are present but terse. No output schemas documented. Error handling is absent, no guidance on retryability, user-fixable errors, or recovery paths. Tools lack idempotency markers and confirmation patterns for destructive operations (deleteBranch, restoreBranch). Composition is sound: tools chain naturally (listProjects → listBranches → getBranch). Security: credentials injected via env.NEON_API_KEY (correct pattern). Overall: functional but minimal, typical of community servers.
Compare schemas between branches.
Delete a specific branch.
Get details of a specific branch.
List all branches for a project.
List all databases for a branch.
List all projects.
Restore a branch to a specific point.
Retrieve the schema of a database.
Descriptions are too brief (10-50 chars) and lack context. 'List all projects' does not explain WHEN to call this vs other discovery tools, what structure is returned, or how to use results downstream. LLMs need 50-200 char descriptions with purpose, prerequisites, and return hints.
No output schemas documented. Callers cannot know what fields to expect (e.g., does listProjects return project_id, name, status?). This forces LLMs to guess and risks downstream tool failures when chaining results.
Destructive operations (deleteBranch, restoreBranch) lack confirmation or dry-run patterns. Agents can accidentally delete branches without a safety gate. No error guidance on retryability or recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot infer which tools are safe to retry or which modify state. This is a current MCP spec feature (2026-07-28) that should be present.
Parameter descriptions are minimal. E.g., 'the ID of the project' does not explain format (UUID? alphanumeric?), where to find it, or what happens if invalid. Descriptions should include constraints and examples.