Two tools with clear names and reasonable descriptions, but significant schema and parameter documentation gaps. query_table has a well-structured input schema with type validation, but generate_types lacks output schema documentation. Both tools accept optional parameters with defaults, reducing required parameters. Error handling is present but generic. Schema definitions are visible and properly structured in the ListToolsRequestSchema handler, but parameter descriptions are brief and lack constraint details. The server validates input types at runtime (isValidQueryTableArgs, isValidTypeGenArgs) but does not expose these constraints or error guidance in the schema itself.
Generate TypeScript types for your Supabase database schema
Query a specific table with schema selection and where clause support
generate_types lacks output schema documentation. LLMs cannot determine what fields or structure are returned, forcing them to guess the next action or make incorrect assumptions about result format.
Parameter descriptions are too brief (avg ~40 chars) and lack constraint information. 'Database schema (optional, defaults to public)' omits valid format, length, or naming rules. Descriptions should follow the 72-char baseline and include 'must match schema name format' or similar.
query_table 'value' parameter in where clauses uses 'type: any' instead of being properly constrained. LLMs cannot reason about what types are valid for comparison (string, number, date, boolean, null). Add type validation and document allowed types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
No output schema or return type documentation for either tool. query_table presumably returns database rows, but the structure is undocumented. generate_types returns TypeScript types, but format (plain string, structured code object, file path) is unclear. LLMs must infer from trial-and-error.
Error messages in code (e.g., 'Invalid query table arguments', 'Unsupported operator') are generic and do not guide recovery. Example: 'Invalid operator "nq", must be one of: eq, neq, gt, gte, lt, lte, like, ilike, is'.
query_table 'select' parameter accepts free-form comma-separated strings with no validation. LLMs could pass invalid column names, malformed syntax, or SQL injection patterns. Validate and reject early with clear errors.
generate_types calls external 'supabase' CLI via execAsync without timeout, error recovery, or fallback. If the CLI hangs or is not installed, the entire tool request blocks. Add explicit timeout, graceful failure, and suggest installation if missing.