MCP server for interacting with Neon Management API and databases
This server presents a strong set of 17 well-named database and Neon management tools with comprehensive input schemas and mostly good descriptions. However, several critical gaps prevent a higher score: (1) Tool #14 (inspect_database) has NO visible input schema in the provided code, (2) Tool #17 (fetch) accepts a bare 'url' parameter with minimal context about valid formats, (3) Several tools lack explicit output schema documentation, (4) Error handling patterns are not evident in the code samples, and (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible despite the toolkit supporting them. The naming is consistently strong (verb-noun patterns like run_sql, describe_table_schema, prepare_database_migration). Descriptions are generally 50-150 characters, good length for LLM selection. Most parameters have types and descriptions, but some optional fields lack guidance on when to use them (e.g., role_name in get_connection_string). Security patterns are present (scope-based filtering via grant-filter.ts, tool annotations framework), but not fully leveraged in the visible implementation.
Apply a prepared migration to the main branch and clean up temporary branch
Apply query tuning suggestions to the main branch and clean up temporary branch
Get detailed information about a branch
Get detailed schema information for a specific table
Analyze SQL query execution plan using EXPLAIN
Fetch documentation or resource content
Get a database connection string for a project/branch
Tool #14 (inspect_database) has NO visible input schema definition in the source code. The handler exists but schema is not provided.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible in the tool definitions, despite the toolkit supporting them via ToolAnnotations. Tools that modify state (run_sql_transaction, complete_database_migration, complete_query_tuning) should be explicitly marked as destructive.
Tool #17 (fetch) has minimal description ('Fetch documentation or resource content') and accepts a bare 'url' parameter with only generic guidance. No documentation about supported URL formats, rate limits, content types, or size restrictions.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 70 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
List all tables in a database
Get Neon Auth configuration for a project
Run inspection checks on a database
List all organizations accessible to the user
List slow queries from a database
Prepare a schema migration by testing it on a temporary branch
Analyze a query and prepare performance tuning suggestions on a temporary branch
Execute SQL query against a Neon database
Execute multiple SQL statements as a single transaction
Search documentation and resources
Complete_database_migration and complete_query_tuning have complex multi-parameter interfaces with interdependent fields (e.g., temporary_branch_id, parent_branch_id, apply_changes). Dependencies are documented in descriptions but not formally declared as mutually exclusive or sequential constraints.
Output schemas are not documented in the tool definitions. While the code shows handlers return structured results (e.g., query results, connection strings), the tool definitions lack explicit output schema declarations that LLMs can parse.
Error handling patterns are not evident in the tool definitions. No visible recovery guidance, error classification, or actionable error messages in the schema or descriptions.