Reported issues for usaspending-mcp-server
Pod holds 19 of 19 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to usaspending-mcp-server.
Most discussed
bug(service): api_timeout and api_unavailable never reach the wire with reason or recovery
Server version
0.4.2
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
All 18 tools declare api_timeout and api_unavailable (thrownBy: 'service'), but USASpendingService.request() attaches no reason, retryable, or recovery, so neither structuredContent.error nor content[] carries the declared hint.
usaspending_disaster_spending's hint (fewer DEF codes or a smaller limit) would…
Read the thread · 2026-09-12 · closed · 3 comments
bug(usaspending_disaster_spending): recipient id is comma-joined when upstream sends several
Server version
0.4.3
mcp-ts-core version
0.13.6
Runtime
Bun
Transport
HTTP (Streamable HTTP)
Description
disaster/recipient/spending/ returns each row's id as an array of recipient hash IDs. The tool maps it with String(r.id), so a recipient that has both a child-level and a recipient-level ID comes back as one comma-joined string. That string is not a valid recipient_id for usaspending_get_recipient.
Related: #63.
Steps to reproduce
- Call…
Read the thread · 2026-09-25 · closed · 1 comment
bug(date-filters): an inverted date range is sent upstream and surfaces as api_unavailable
Server version
0.4.3
mcp-ts-core version
0.13.6
Runtime
Bun
Transport
HTTP (Streamable HTTP)
Description
No date input checks that the start precedes the end. An inverted range (start after end) goes upstream as-is:
search/spending_over_time/,spending_by_category/, andspending_by_geography/answer HTML 500. The service classifies that asapi_unavailable, retries it, and tells the caller the API may be down. Retrying can never help. -…
Read the thread · 2026-09-25 · closed · 1 comment
feat(usaspending_disaster_spending): surface breakdown totals and budgetary resources
Use case
usaspending_disaster_spending's breakdown dimensions are the working route to disaster totals while the upstream /disaster/overview/ endpoint times out, but the tool drops the totals the breakdown response already carries, so a caller has to sum rows for obligations and outlays and cannot get budgetary resources at all.
Related: #57
Proposed behavior
Surface the breakdown response's totals object (obligation, outlay, total_budgetary_resources) and the per-row…
Read the thread · 2026-09-25 · closed · 1 comment
bug(date-filters): a lone start or end date is dropped but echoed as applied
Server version
0.4.3
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
The optional date-range inputs send a time_period upstream only when both ends are present (buildFilters in filters.ts, and the filters.time_period_* branch of usaspending_search_awards). A lone start or end date is dropped without notice, but the response still echoes it as applied_time_period_start /…
Read the thread · 2026-09-25 · closed · 1 comment
feat(usaspending_search_awards): filter awards by assistance listing (CFDA) number
Use case
Agents researching a grant program need "who has won awards under Assistance Listing 93.866, and for how much." usaspending_autocomplete_filters type=cfda returns the listing number with a note to use it in filter parameters, but usaspending_search_awards has no filter that accepts it, so the lookup dead-ends.
Proposed behavior
Add an assistance_listings input (array of listing numbers) to usaspending_search_awards, mapped to the USAspending API's program_numbers…
Read the thread · 2026-09-22 · closed · 1 comment
bug(usaspending_search_awards): sort is not award-type-aware — loans fail by default, IDVs reject End Date
Server version
0.4.3
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
OS
Linux (Docker)
Description
sort on usaspending_search_awards defaults to Award Amount for every award type, but /api/v2/search/spending_by_award/ checks the sort against a per-group field mapping and answers 400 outside it. Loans (07/08) have no Award Amount, Total Outlays, Start Date, or End Date, so a loan search…
Read the thread · 2026-09-22 · closed · 1 comment
bug(date-filters): date format is prose-only, and the upstream 4xx detail never reaches the error text
Server version
0.4.2
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Not recorded
Transport
HTTP (Streamable HTTP)
Description
The ten date inputs — usaspending_search_awards time_period.start_date / end_date and filters.time_period_start / time_period_end, plus filters.time_period_start / time_period_end on the three usaspending_spending_* tools — are bare z.string() fields with YYYY-MM-DD only in .describe(), so the advertised…
Read the thread · 2026-09-18 · closed · 1 comment
Most recent
feat(spending-filters): expose program, PSC, and emergency funding filters
Use case
A water-program analyst can discover Assistance Listing 15.507, PSC Y1NE, and DEF code Z through the current tools, but cannot reuse those codes to ask where or when the corresponding funding was spent. usaspending_search_awards supports Assistance Listings only; the three general analytics tools support none of these filters.
Proposed behavior
Extend the existing award-search and shared analytics filters with the relevant assistance_listings, psc_codes, and…
Read the thread · 2026-09-30 · open · 0 comments
bug(pagination): exact-cap results are falsely labeled truncated
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
Exact-cap results are reported as definitely truncated even when the complete set was returned. Related: #30 and #54. Conservative continuation can be useful, but it is different from known truncation.
Steps to reproduce
Call usaspending_autocomplete_filters with {"type":"naics","search_text":"Water","limit":10}; repeat at…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_get_agency): conflicting identifiers silently ignore agency_slug
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_get_agency says to provide either toptier_code or agency_slug, never both, but accepts conflicting identifiers and silently ignores the slug.
Steps to reproduce
Call with {"toptier_code":"014","agency_slug":"department-of-defense"}.
Actual behavior
Successful Department of the Interior profile with no…
Read the thread · 2026-09-30 · open · 0 comments
bug(filters): unsupported nested keys become unfiltered successful queries
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
Unsupported nested filter keys are silently stripped by the definitions' non-strict Zod objects. The tools then succeed with a broader query; top-level strict validation does not protect these objects.
Steps to reproduce
Call usaspending_search_awards with…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_disaster_spending): geography ignores limits and returns unbounded rows
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_disaster_spending ignores limit and page on its geography branch and returns an unbounded county table. Unlike #19, this branch requires client-side adaptation because the provider geography endpoint is not paginated.
Steps to reproduce
Call with…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_spending_by_geography): capped counties have no complete retrieval route
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_spending_by_geography discloses its cap but cannot retrieve the omitted counties for the same query. The cap introduced in #48 works; its filter-down guidance cannot select an omitted geographic area.
Steps to reproduce
Call with scope: "place_of_performance", geo_layer: "county", limit: 500, and filters for…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_autocomplete_filters): replaces matched sub-agency with parent
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_autocomplete_filters replaces matched sub-agencies with their top-tier parent's name and discards the tier and chainable code. This differs from #2's empty-result-field fix.
Steps to reproduce
Call with {"type":"awarding_agency","search_text":"Geological","limit":5}; compare [the provider…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_search_awards): county guidance contradicts provider location format
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_search_awards.location_filter.county recommends a five-digit FIPS code, but USAspending location filters require the three-digit county component with a state and country. The…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_get_agency): suppresses failed budget and sub-agency requests
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP); fault injection into built handler
Description
usaspending_get_agency converts budgetary-resource and sub-agency request failures into empty successful data without a partial-result notice. A missing breakdown is reported as has_more_sub_agencies: false.
Steps to reproduce
Keep getAgency successful; inject ServiceUnavailable into…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_get_award): drops assistance listings and recipient identity fields
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_get_award drops populated Assistance Listing, recipient UEI, business-category, and country fields from USAspending award detail. These are different mappings from the financial/PSC fields fixed in #36.
Steps to reproduce
Call with…
Read the thread · 2026-09-30 · open · 0 comments
bug(usaspending_get_recipient): fiscal-year and award-type filters are ignored
Server version
0.4.4
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
1.4.2
Transport
HTTP (Streamable HTTP)
Description
usaspending_get_recipient advertises fiscal-year and award-type scoping, but sends unsupported fiscal_year and award_type query parameters. USAspending accepts year, defaults to the…
Read the thread · 2026-09-30 · open · 0 comments
The remaining reports are on the project's issue tracker.