Model Context Protocol server for Supabase database operations
The server provides 8 tools with mostly complete schemas and reasonable descriptions. However, there are significant gaps in error handling, parameter documentation quality, and response schema documentation. Tools are properly registered with Zod schemas and names follow verb_noun convention (creatorInfo is weak here, but CRUD tools are clear). Tool descriptions range 40-120 chars, generally adequate but some lack actionable guidance for LLM selection. No documentation of output schemas or error recovery paths. No tool annotations (readOnlyHint, destructiveHint) present despite having clear risk classifications. Parameter descriptions are present for all params but often minimal (10-20 chars), below the 72-char baseline for A+ tools.
Delete all documents from a Supabase table (use with caution!)
Create a new document in the Supabase database
Get detailed information about Piyush Dhoka - AI/ML Engineer and Developer
Delete a document from the Supabase database
Get a document by its unique ID from the Supabase database
List all documents from a Supabase table
Update an existing document in the Supabase database
No tool annotations (destructiveHint, readOnlyHint) despite clear risk classifications. deleteDocument and clearCollection are DESTRUCTIVE but lack annotations to signal this to clients.
Output schemas are not documented. LLMs cannot predict what fields to expect from responses, limiting composition and downstream tool selection.
Error handling lacks recovery guidance. No indication of what LLM should do if a document is not found, if a query fails, or if database constraints are violated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Create or update a document in the Supabase database (upsert operation)
Parameter descriptions are minimal (10-20 chars). 'Company description', 'Company website URL' lack guidance on format constraints, length limits, or what constitutes valid input.
listDocuments returns unbounded results. Description says 'defaults to 25' but no indication of max limit, response size bounds, or what happens if result exceeds context window.
creatorInfo tool name is weak. 'creatorInfo' is a noun (status, metadata) rather than an action verb (get_creator_info, describe_creator). Violates verb_noun convention.
clearCollection requires 'confirm' boolean but no warning text shown to user before confirmation. Destructive tools should have explicit confirmation guidance, not silent boolean flags.
No indication in tool descriptions whether tableName parameter is validated against allowed tables, or what happens if an invalid table is specified.