MCP server that exposes My DB Mate's context + safety layer to Claude/Cursor via stdio. Provides database query execution, schema exploration, verified query retrieval, and governed metrics through a unified safety choke point with glossary/context, risk tiers, and audit.
My DB Mate defines 6 tools with clear, action-oriented names (ask_database, run_sql, get_schema_context, search_verified_queries, list_governed_metrics, run_governed_metric). All tools have descriptions (avg ~120 chars, within baseline 34 - 392). Input schemas are present with type declarations. However, parameter descriptions are sparse or missing entirely, most tools have only 1 - 2 parameters with minimal context. Output schemas are not documented in the visible code. Error handling is basic (errorReporting=true but no recovery guidance visible). The tools follow a sensible composition pattern (schema exploration → query execution → metric retrieval), but lack the depth of parameter documentation and output schema clarity expected for production use.
Answer a natural-language question about the connected database using its curated glossary and verified queries.
Get the schema summary plus curated annotations and glossary relevant to a topic.
List this connection's governed metrics (the authoritative, pre-validated definitions). Returns id/name/description/time grain/dimensions — reuse these instead of writing your own aggregation. Run one with run_governed_metric.
Run a governed metric by id and return its time series + latest/previous/delta. The metric SQL was validated (and sensitive-column-checked) when it was created and runs read-only through the safety layer; BigQuery goes through the daily byte budget.
Run one read-only SELECT (goes through the full safety layer: validation, risk tier, audit).
Output schemas not documented. Tools return results but LLMs cannot infer field names, types, or structure. ask_database, run_sql, search_verified_queries, and run_governed_metric all lack documented return types.
Parameter descriptions are minimal or absent. 'topic' in get_schema_context lacks guidance on valid values or filtering behavior. 'metric_id' in run_governed_metric has no format or discovery hint. LLMs cannot determine how to populate these without trial-and-error.
No error recovery guidance. Tools declare errorReporting=true but visible code does not show actionable error messages (e.g., 'metric_id not found; call list_governed_metrics() first'). Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Find verified example NL→SQL pairs similar to a question.
list_governed_metrics returns empty input schema ({}). No pagination, limit, or filtering parameters. If the metric catalog is large, LLMs receive unbounded results, risking context window exhaustion.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are READ_ONLY but this is not signaled in the schema. Agents cannot infer safety properties without explicit annotations.