MCP (Model Context Protocol) server for Bureau of Labor Statistics data
Server has 4 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools are READ_ONLY and use mock data. Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Input schemas visible for 3 tools; plot_series has empty input schema. Parameters lack detailed constraints (enums, ranges, formats). No output schema documentation. Error handling is minimal, generic 'Tool execution failed' messages provide no recovery guidance. Tool names follow verb_noun convention (get_, list_) but descriptions don't explain WHEN to use each tool or dependencies between them.
Fetch BLS data series by ID with optional date range filtering. Returns time series data points with values, periods, and metadata.
Get detailed metadata information about a specific BLS series. Returns series title, description, category, and data availability.
List available BLS data series with optional category filtering. Returns series metadata including titles, IDs, and categories.
Generate plot data for BLS time series visualization with statistics and formatting instructions for client-side rendering.
plot_series has empty input schema ({}). Cannot validate or guide LLM on required parameters.
No output schema documentation for any tool. LLMs cannot plan downstream calls or extract structured data. Violates pattern:tool and pattern:response-shaper.
Descriptions lack WHEN/WHY context. 'Fetch BLS data series by ID' doesn't explain when to call get_series vs list_series vs get_series_info. LLMs cannot disambiguate.
Parameters lack constraints. 'start_year' and 'end_year' have no min/max bounds; 'limit' has no range. LLMs can pass absurd values (year 9999, limit 1000000).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Error handling is generic. 'Tool execution failed: <str(e)>' provides no recovery guidance. LLM cannot self-correct or retry intelligently.