Data Commons MCP server providing tools for searching indicators, retrieving variable metadata, and fetching statistical observations.
The Data Commons MCP server presents well-structured tool definitions with clear naming conventions (all tools start with action verbs: search_, get_) and comprehensive parameter descriptions. All 6 tools have documented input schemas with typed parameters. However, there are critical gaps in output schema documentation, which prevents LLMs from understanding what fields to expect in responses. Tool descriptions are adequate but somewhat generic, lacking context about when to use each tool versus alternatives. The server handles read-only operations exclusively (all marked READ_ONLY), which simplifies error handling but limits utility. Parameter descriptions are generally good (e.g., 'DCID of the statistical variable') but lack format constraints, enums, or validation guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present in the visible code, though the risk designation mitigates this partially.
Fetches time-series observations for a statistical variable across child places.
Fetches observations for multi-entity relationship statistical variables.
Fetches time-series observations for a statistical variable at a specific place.
Retrieves definitions, coverage, and provenances for a list of variables.
Searches for statistical indicators available at the child-place level.
Searches for statistical indicators matching a natural language query.
No documented output schemas for any tool. LLMs cannot plan downstream tool calls or know what fields to extract from responses. This violates pattern:tool and pattern:response-shaper requirements.
Parameter descriptions lack format constraints and validation guidance. For example, 'date' parameter accepts 'latest' or date ranges, but the description does not specify accepted formats (ISO 8601? epoch?), allowed ranges, or mutually exclusive date parameters.
Tool descriptions are generic and do not explain WHEN to use each tool or how it differs from similar tools. E.g., search_indicators vs search_child_indicators distinction is not clearly motivated in descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 73 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
No pagination or result-limit documentation. Tools like search_indicators return results but do not document max result count, pagination mechanism, or result ordering. LLMs cannot plan for large result sets.
Date parameter handling is ambiguous. Parameters 'date', 'date_range_start', 'date_range_end' lack clear rules about mutually exclusive usage, format (ISO 8601?), and what happens if conflicting parameters are provided.