MCP server for PostgreSQL database access via freebase.cloud
Three tools with minimal documentation. All have descriptions (10-50 chars, below the 50-200 char LLM-optimized baseline), and input schemas are present but sparse. bikes_query and bikes_store lack parameter descriptions beyond the parameter name itself. bikes_annotate_table has slightly better coverage. No output schemas documented. No error handling guidance. Tool names follow verb_noun pattern (positive), but descriptions are too terse to guide LLM selection. No evidence of idempotency, pagination, or composition patterns.
Add or update a description annotation for a table
Execute a SQL query against the PostgreSQL database
Insert or update rows in a PostgreSQL table
Parameter descriptions missing or trivial. 'query' param in bikes_query has only 'SQL query to execute', no guidance on query limits, timeout, or result size caps. LLMs cannot infer constraints.
Tool descriptions are 10 - 50 characters, well below the 50 - 200 char LLM-optimized baseline. 'Execute a SQL query against the PostgreSQL database' lacks WHEN to use, prerequisites, or result structure. LLMs cannot distinguish this from other query tools.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. bikes_query returns query results, but structure is unknown. bikes_store returns success/failure, but format is undocumented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
No error handling guidance. If bikes_query hits a timeout or syntax error, the LLM receives a raw error with no recovery hint. No distinction between retryable and fatal errors.
bikes_store accepts 'rows' as an array but provides no schema for row objects. What fields are required? What are valid types? LLMs must guess the structure.