An MCP server that provides tools for interacting with PostgREST APIs, converting SQL to REST requests, and making authenticated PostgREST API calls
This server has 3 tools with moderate definition issues. postgrestRequest has a reasonable schema with typed parameters (method enum, path string, body union), but descriptions are generic and lack guidance on when to use each tool. sqlToRest has minimal description (23 chars) and a trivial single-parameter schema. echo is a debug/demo tool with bare-bones definition. None of the tools provide output schemas or error guidance. Parameter descriptions are present but lack actionable constraints. The server does not follow verb-noun naming conventions consistently (postgrestRequest is camelCase, not verb_noun). No tool describes side effects, idempotency, or recovery paths. Overall, definitions are functional but well below production quality.
Echoes back the provided message and displays authentication info
Performs an HTTP request against the PostgREST API
Converts SQL query to a PostgREST API request (method, path)
Tool names do not follow verb-noun convention. 'postgrestRequest' should be 'make_postgrest_request' or 'execute_postgrest_query'. LLMs infer intent from the verb, camelCase obscures the action.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing the response structure. postgrestRequest should document what HTTP response shape it returns; sqlToRest should document the method/path object structure.
sqlToRest description is only 23 characters, below the 50-char minimum. 'Converts SQL query to a PostgREST API request (method, path)' provides minimal context. When should the LLM use this instead of writing SQL directly? What SQL dialects are supported?
postgrestRequest method parameter lacks guidance on which HTTP verb to use for which operation. Should POST always be used for inserts? Can PUT be used for bulk updates? No description provided for the method enum.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Body parameter in postgrestRequest is labeled 'Request body for POST/PUT/PATCH requests' but provides no schema for what that body should contain. Is it a row object? An array of rows? Required fields?
No error handling or recovery guidance. postgrestRequest will fail if the PostgREST API is unreachable or returns 401/403. LLMs have no actionable error messages, should they retry? Check auth? Try a different path?
No documentation of destructive operations. postgrestRequest accepts DELETE but does not warn that this is irreversible or require confirmation. Agents may accidentally drop tables.