A governed, read-only text-to-SQL MCP server: sqlglot AST validation, column-level PII masking, LIMIT and row caps, and a tamper-evident audit log.
Single tool 'run_query' has a clear, concise description (72 chars) and explicit input schema with type and description. However, the output schema is undocumented, the tool returns a formatted string via _format() but LLMs cannot see the structure (columns, rows, masked_columns fields). Parameter descriptions are minimal. No error handling guidance, no enum constraints, no pagination support despite the tool capping results at 50 rows. The server implements strong governance (PII masking, read-only enforcement, audit logging) but does not expose these capabilities through tool metadata or error messages that guide LLM recovery.
Run a governed, read-only SQL query. PII is masked unless your role permits it.
Output schema undocumented. Tool returns formatted string via _format() but LLMs cannot parse columns, rows, masked_columns, or blocked reasons. Agents cannot extract structured data for downstream use.
No error handling guidance. Blocked queries return 'blocked: <reasons>' but LLMs receive no recovery hints (e.g., 'Try a SELECT-only query' or 'PII columns masked for your role'). Agents cannot self-correct.
Parameter 'sql' lacks format/constraint description. No mention of allowed statement types (SELECT only), implicit LIMIT enforcement, or injection protections. LLMs may attempt writes or multi-statement queries.
Result capping (50 rows) not documented in tool description. Agents unaware that large result sets are truncated; no pagination or next_cursor offered.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. Limits deployment to local/embedded scenarios.