An MCP server that answers questions about Google Trends data using BigQuery through a multi-agent SQL generation and validation loop, with optional Dataplex semantic enrichment.
This server demonstrates moderate definition quality with significant gaps. All 6 tools have descriptions (10-200 chars range), but parameter documentation is inconsistent. Tools like `execute_sql` and `lookup_entry` have well-defined input schemas with type and description fields. However, `list_tables` and `report_validation_result` lack visible input schemas in the provided code. Output schemas are not documented for any tool, forcing LLMs to infer response structure. Error handling guidance is absent, tools do not indicate what failures mean or how to recover. The server follows basic naming conventions (verb_noun pattern) but lacks the depth of parameter constraints (enums, ranges, format specs) expected in production tools. No tool declares permissions, audit requirements, or idempotency guarantees.
Executes a BigQuery SQL query with optional dry run mode for validation
Retrieves detailed schema information for a BigQuery table including columns, data types, and nested ARRAY or STRUCT definitions
Lists all tables in the google_trends dataset
Retrieves full metadata for a specific Dataplex entry including all attached aspects
Reports SQL validation results and controls the SQL generation loop by signaling success or providing guidance for fixes
Searches for data assets in Dataplex that are semantically related to provided search terms using Dataplex Catalog search syntax
Missing output schemas for all tools. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
`list_tables` has no visible input schema. Tool appears to take no parameters but this is not explicitly documented.
No error handling guidance. Tools do not indicate what failures mean, whether they are retryable, or what the LLM should do next. E.g., `execute_sql` may fail with syntax errors, permission errors, or timeout, each requires different recovery.
`report_validation_result` name is ambiguous. Does it report results, or does it control flow? Verb is unclear. Consider `validate_sql_and_continue` or split into separate tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Parameter descriptions lack format constraints. E.g., `table_name` in `get_table_info` should specify format (fully qualified BigQuery name: `project.dataset.table`). `query` in `search_entries` should document Dataplex syntax rules.