Read-only MCP server for exploring USAspending.gov federal spending data.
Strong foundation with 12 well-named tools, complete input schemas, and consistent descriptions. All tools follow verb_noun naming (usaspending_list_*, usaspending_search_*, usaspending_get_*). Schemas are properly typed with enums, min/max constraints, and defaults. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (formatApiError exists but recovery guidance is absent). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Missing parameter descriptions for complex objects like 'filters' (AdvancedFilterObject is referenced but not explained inline).
Search agency names and codes for use in USAspending filters.
Search recipient names, UEIs, and DUNS values for use in USAspending filters.
Call any USAspending v2 API endpoint directly. Useful for exploring undocumented endpoints or custom queries. Download and bulk_download endpoints are blocked.
Count federal award transactions by category (obligations, outlays, etc.).
Get detailed information about a specific federal award by ID.
List federal toptier agencies with current USAspending budgetary, obligation, and outlay summary fields. No authentication required.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Tools return data via structuredContent but no schema is published for downstream tool chaining.
Complex 'filters' parameter (AdvancedFilterObject) lacks inline documentation. Description says 'Common keys include...' but does not explain structure, required vs. optional fields, or valid value formats. LLMs will guess at filter syntax.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Count new federal awards over time (by fiscal year, quarter, or month).
Search federal awards (contracts, grants, loans, direct payments, etc.) with filtering and field selection.
Search federal award transactions (modifications, obligations, outlays) with filtering and field selection.
Aggregate federal spending by category (awarding agency, funding agency, recipient, award type, etc.).
Aggregate federal spending by geographic location (state, county, congressional district, etc.).
Aggregate federal spending over time (by fiscal year, quarter, or month).
Tool descriptions are generic and lack LLM-optimized guidance. No explanation of WHEN to use search_awards vs. spending_by_category vs. search_transactions. No dependency hints (e.g., 'Call autocomplete_agency first if you only have a partial agency name').
No tool annotations despite all tools being read-only. Missing readOnlyHint=true on all 12 tools. This prevents agents from understanding which tools are safe to call without side effects.
Error handling lacks recovery guidance. formatApiError() exists but no tool description explains what to do on failure (e.g., 'If filters are invalid, try calling autocomplete_agency to discover valid agency codes').