Official economic statistics for AI agents, every number with a full citation. Remote MCP server + REST API.
StatCite demonstrates solid tool design with clear action verbs, comprehensive input schemas, and structured output documentation. All 10 tools follow a consistent naming pattern (verb_noun: get_, verify_, search_, list_, resolve_, parse_). Input schemas are well-typed with required/optional field distinctions and enum constraints where appropriate (transform parameter uses ['none', 'yoy', 'pct_change', 'index']). Tool descriptions are generally adequate (10-200 chars), though some lack strategic context about when to use them over similar tools. Descriptions for get_indicator vs get_series could better explain the distinction. Output schema (SERIES_OUTPUT_SCHEMA) is explicitly documented for the most commonly-returned data shape. Error handling is present (ToolError class with ErrorCode enum), but error messages in code appear terse. Parameter validation is implemented (MAX_STR_LEN enforcement, type coercion with num() and str() helpers), demonstrating defensive input handling. Security is well-handled: no secrets exposed as parameters, input bounds enforced. Composition is sound, tools have single responsibilities and chain well (search_indicators → get_indicator; resolve_country → country_snapshot). Main gaps: (1) some tool descriptions lack dependency hints (e.g., verify_claims doesn't hint at search_indicators for discovery); (2) no explicit recovery guidance in error paths visible in source; (3) batch tool (verify_claims) could benefit from clearer per-claim error semantics in description.
Get a snapshot of key economic indicators for a country. Returns a summary with multiple indicators and citations.
Convert a monetary amount between currencies using official exchange rates.
Fetch one official indicator time series (e.g. inflation_cpi for a country). Returns observations with full citations.
Fetch a specific data series by ID. Returns observations with full citations. Alternative to get_indicator when you have an exact series_id.
Adjust a monetary amount for inflation from one year to another using official CPI data.
List all available indicators in the registry. Returns complete indicator definitions with codes and descriptions.
Parse and validate a data transformation type (none, yoy, pct_change, index).
parse_transform tool lacks clear use-case documentation. Description does not explain when/why an LLM should call this utility vs. passing a transform string directly to get_indicator or get_series.
get_indicator and get_series have nearly identical schemas and functionality. Description for get_series mentions 'Alternative to get_indicator' but does not explicitly guide when to choose one over the other (e.g., 'Use get_series only if you have the exact series_id from a prior call; otherwise use get_indicator with an indicator code').
Output schemas are not formally documented for most tools. SERIES_OUTPUT_SCHEMA is defined for get_indicator/get_series, but search_indicators, list_registry, country_snapshot, resolve_country, and inflation_adjust lack visible output schema definitions in source code. This forces LLMs to infer response structure, risking mis-chaining of tool outputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 80 | 2025-06-18+ | v2 |
Resolve a country name or code to a standardized ISO3 code and full name.
Search for indicators by keyword. Returns matching indicator definitions with names and descriptions.
Batch verification of macro claims against official series with full diagnostics. Extract every checkable macro claim from the draft. Indicator + country + period + claimed value, and submit them together.
Error handling is present (ToolError class), but visible error messages in parameter validation (e.g., 'Missing required parameter', 'Parameter too long') are generic. Recovery guidance is not evident for errors like 'country not found' or 'indicator not found', no hints like 'Try search_indicators or resolve_country first.'
Tool descriptions lack strategic context and dependency hints. For example, verify_claims does not hint that search_indicators should be called first to discover valid indicator codes; country_snapshot does not explain whether resolve_country is needed or called internally.
verify_claims batch limit (MAX_CLAIMS = 15) is enforced in code but not documented in the tool description or input schema. LLMs will not know the limit and may attempt to submit 50 claims, triggering a runtime error.