MCP server for querying Supabase database tables
Single tool with adequate naming and schema, but minimal description and no error handling guidance. fetch_reservations follows verb_noun convention and has a proper JSON Schema with typed parameter. However, the description (58 chars) lacks context on when to use it, what it returns structurally, or how to handle errors. No pagination support despite returning lists. No output schema documented. Missing error recovery guidance per pattern:recovery-guide.
Return the first `limit` rows from the Reservations table.
Description too brief (58 chars) and lacks context. Does not explain what structure is returned, when to call this vs alternatives, or how to handle Supabase errors. LLM cannot determine if this is the right tool without guessing.
No output schema documented. LLM does not know what fields each reservation object contains, forcing it to guess at downstream field names. Baseline: 100% of A+ tools document return types.
No pagination support. Tool accepts limit but no offset/cursor or total_count. Returning all rows up to limit risks context window exhaustion. Baseline: tools returning lists should support pagination.
Error handling does not guide recovery. RuntimeError on Supabase failure gives no actionable next step. Per pattern:recovery-guide, errors must tell LLM what to do: retry, check credentials, or ask user.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Parameter 'limit' lacks range constraints in description. Unbounded integers let LLM pass absurd values (e.g. limit=999999). Should specify min/max (e.g. 1 - 1000).