Passthrough MCP server that materializes tool results into a DuckDB scratch database
Single tool 'query' has a clear verb-noun name and proper JSON Schema with typed parameters. Description is adequate (58 chars) but minimal, lacks context on when to use it, prerequisites, or output structure. Schema includes required fields and type constraints, but output schema is undocumented. No parameter descriptions visible in the schema definition. Tool annotations are present (read_only_hint=True) but not declared in the tool definition code shown. Error handling is basic, no recovery guidance or actionable error messages documented.
Query materialized results
Parameter descriptions missing: 'sql' and 'max_rows' have no descriptions in the schema, violating pattern:tool-description. LLMs cannot infer that 'sql' expects DuckDB SQL syntax or what 'max_rows' defaults to.
Output schema undocumented. Tool description does not specify what fields are returned (e.g., rows, columns, error details). LLMs cannot plan downstream operations without knowing the response structure.
Tool description lacks context on when to use it. 'Query materialized results' is vague, does not explain that this tool queries a DuckDB scratch database populated by upstream tool results, or that it requires prior tool calls to materialize data.
No error handling guidance. If a SQL query fails (syntax error, table not found, timeout), the tool should return actionable recovery hints, not raw error messages. Current code does not show error classification or recovery suggestions.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. This is a hard architectural limitation, not a definition quality issue, but it severely limits production deployment.