MCP server for the Banco Central de Reserva del Peru (BCRP) statistics API — access macroeconomic data, exchange rates, interest rates, monetary indicators, and more
Server has 7 well-named tools with consistent verb_noun patterns (bcrp_get_*, bcrp_search_*, bcrp_list_*, bcrp_describe_*). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are present with type declarations and parameter descriptions. However, output schemas are not documented in the visible code, LLMs cannot predict response structure. Parameter descriptions are adequate but lack explicit constraints (e.g., 'codes' array accepts 1-10 items but no min/max validation shown). Error handling is minimal, no recovery guidance or categorization visible. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Composition is sound: tools chain logically (search → describe → get). No security issues detected (all read-only, no secrets in params).
Get series metadata (name, frequency, date range) without all data
Get the most recent N data points for 1–10 series
Real-time snapshot of key Peruvian economic indicators
Fetch time series data for 1–10 BCRP series with optional date range
Fetch up to 50 series (mixed frequencies) as one tidy long-format table
List all catalog categories with series counts
Search the built-in catalog of important series by keyword
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Visible code shows tool registration but no return type documentation.
Parameter constraints not enforced or validated in visible code. 'codes' array documented as '1-10 items' but no min/max schema constraint shown. 'n' parameter in bcrp_get_latest lacks explicit bounds (1-50 stated in description but not in schema).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all 7 tools being read-only. Annotations enable LLM safety reasoning and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Error handling not visible in tool definitions. No recovery guidance (e.g., 'If series not found, try bcrp_search_catalog'). No error categorization (retryable vs user-fixable).
Pagination not visible for list/search tools. bcrp_search_catalog and bcrp_list_catalog_categories lack limit/offset/page parameters. Large result sets could exhaust context.