
USASpending.gov
io.github.1102toolsPublished by GitHub account 1102toolsv0.3.2Updated Oct 24, 2026
USASpending.gov federal contracts, subawards, recipients, agencies. 55 tools.
Overview
Lets an assistant query USAspending.gov federal spending data: contracts, grants, loans, subawards, recipients, agencies, and federal accounts.
- What you can do
- Exposes the public USAspending.gov REST API as 55 MCP tools. Search and aggregation tools cover awards, award counts, spending over time, spending by category, transaction-level search, and geographic breakdowns. Detail tools return single-award records, modification histories, funding data, IDV child orders, subawards, recipient profiles and subsidiaries, agency budget and program breakdowns, and Treasury federal accounts. Autocomplete and reference tools help resolve NAICS, PSC, CFDA, agency, and recipient names.
- When to use it
- Useful for federal contracting and grant research: award histories, fiscal-year spending totals, vendor and agency breakdowns, subcontract reports, and budget account lookups. Worth adding when an assistant needs structured public procurement data rather than general web search.
- Requirements
- Runs locally as a Python package (pypi usaspending-gov-mcp) over stdio, typically via uvx or pip; the console script is usaspending-mcp. No API key or authentication is required, and no environment variables or headers are declared. Network access to the USAspending.gov API is needed. Desktop only.
Installation
In SourceWeft
- Open USASpending.gov in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
usaspending-gov-mcp
[price: free] [license: MIT] [tools: 55] [regression tests]
Free, open-source MCP server for the USAspending.gov API: contracts, grants, loans, subawards, recipients, agencies, and federal accounts.
Overview, demo video and hosted setup: https://1102tools.com/mcp/usaspending
No API key required, locally or hosted. See Local or hosted.
Regression tests, including live checks against the USAspending API. The October 2026 releases were also checked with realistic contracting questions across all 55 tools (award histories, fiscal-year totals, subcontract reports, federal accounts). See testing.md.
Local or hosted
- Local runs it on your computer, inside the Claude or ChatGPT desktop app or another AI app. You get your own full rate limits, and it relies only on the government service. It doesn't update itself, so ask your AI to update it. You don't have to set it up by hand: give your AI this page's link and ask it to set it up or walk you through it.
- Hosted is always up to date, needs no setup or keys, and works in Claude or ChatGPT anywhere.
Compare local and hosted · Matching prompts
What it does
Exposes the USAspending.gov REST API as 55 MCP tools covering:
Search and aggregation
search_awards- Primary search for contracts, IDVs, grants, loans, direct paymentsprogram_numbersfilter - Narrow grants, loans, and other assistance to an assistance listing (CFDA) number, such as93.778for Medicaid. Works onsearch_awards,get_award_count,spending_over_time,spending_by_category,spending_by_subaward_grouped,spending_by_transaction, andspending_by_geography. Find numbers by program name withautocomplete_cfda.get_award_count- Dimensional counts across award categoriesspending_over_time- Time series aggregation (fiscal year, quarter, month)spending_by_category- Top N breakdowns by agency, vendor, NAICS, PSC, state, etc.spending_by_transaction- Modification-level transaction searchspending_by_geography- State, county, or congressional district breakdownnew_awards_over_time- Pipeline trend for a recipient
Award detail
get_award_detail- Full record for a single awardget_transactions- Full modification history for an awardget_award_funding- File C funding data (Treasury account, object class, program activity)get_award_funding_rollup- Single-line funding summaryget_award_subaward_count,get_award_federal_account_count,get_award_transaction_countget_idv_children- Task/delivery orders under an IDVawards_last_updated- Data freshness check
Subawards (FFATA)
search_subawards- Subawards under a single primespending_by_subaward_grouped- Matching prime awards with cumulative reported subaward totals
Recipients
search_recipients- Search recipients by keywordget_recipient_profile- Full recipient recordget_recipient_children- Subsidiaries of a parent recipientautocomplete_recipient- Find recipient names by partial namelist_states- All states with FIPS codes
For a recipient workflow, take a name from autocomplete_recipient to
search_recipients. Use the returned id hash for profiles and new-award
trends. To retrieve subsidiaries, pass the parent (-P) row’s uei (or
legacy duns) to get_recipient_children; that tool accepts UEI/DUNS.
Agency depth
list_toptier_agencies,get_agency_overview,get_agency_awardsget_agency_budgetary_resources- Budget resources by FYget_agency_sub_agencies- Subordinate orgs with obligationsget_agency_federal_accounts- Funding sources (TAS)get_agency_object_classes- Spending categories (OMB)get_agency_program_activities- Program-level breakdownget_agency_obligations_by_award_category- Contract vs grant mix
IDV depth
get_idv_amounts- Top-line IDV rollupget_idv_funding,get_idv_funding_rollup- File C for IDVget_idv_activity- Child orders under an IDV
Federal accounts (Treasury)
list_federal_accounts- Search TASget_federal_account_detail,get_federal_account_object_classes,get_federal_account_program_activities,get_federal_account_fy_snapshot
Autocomplete
autocomplete_psc,autocomplete_naicsautocomplete_awarding_agency,autocomplete_funding_agencyautocomplete_cfda(grants),autocomplete_glossary,autocomplete_recipient
Reference data
get_naics_details,get_psc_filter_treeget_award_types_reference- All award type codes (A=BPA Call etc.)get_def_codes_reference- Disaster Emergency Fund codes (COVID, IIJA, IRA)get_glossary- Acquisition/spending vocabularyget_submission_periods- Agency reporting period coverageget_state_profile- State-level spending profile
Workflow convenience
lookup_piid- Auto-detects contract vs IDV and returns the matching award
Installation
Via pip
Via uvx (recommended, no venv needed)
The --from is required for this server and only this server. The PyPI package
is usaspending-gov-mcp but the console script it installs is usaspending-mcp,
so a bare uvx usaspending-gov-mcp fails with "An executable named
usaspending-gov-mcp is not provided by package usaspending-gov-mcp".
Do not run uvx usaspending-mcp either. usaspending-mcp is an unrelated
third-party package on PyPI, not this project.
From source
Configuration
Use the configuration below as the server definition and adapt its placement to your compatible MCP client. For practical requests using this source, see the prompt library.
The --refresh-package flag tells uv to check PyPI for a newer release each time your client launches the server, so fixes arrive automatically; without it, uv keeps serving whatever version it first cached. It adds a moment of network time at startup, so raise your platform's MCP startup timeout if it enforces a short one.
If you installed via pip install -e . or a regular pip install:
Restart the client and the tools appear.
Tool profiles
Standalone use defaults to USASPENDING_TOOL_PROFILE=full, which exposes all
55 tools. Packaged acquisition agents set
USASPENDING_TOOL_PROFILE=acquisition-agent to expose a stable 20-tool subset
covering core award search, spending, agency, recipient, NAICS, PSC,
transaction, and subaward operations. An unknown profile stops startup with a
clear error instead of silently changing the catalog.
Example prompts
Once configured, try:
- "Show me the top 10 NAVSEA contracts awarded in FY2025 by dollar value."
- "Find all software development contracts at NASA with sole-source justifications in the last year."
- "How much has Leidos received in federal awards since 2020? Group by fiscal year."
- "What are the top 15 recipients of HUBZone set-aside contracts at DoD?"
- "Pull the full modification history for PIID N00024-24-C-0085."
- "Compare FFP vs T&M award counts for IT services at Air Force in FY2024."
Design notes
- No authentication required. USAspending.gov is a free, public API.
- Fiscal time groups. Fiscal years run October through September; quarter 1 is October–December and month 1 is October.
new_awards_over_timecombines the source’s fiscal-quarter counts for annual fiscal-year results. A date window that covers only part of a fiscal year returns counts for that requested portion, not the entire year. Quarter and month results retain the source counts. - FFATA period scope.
spending_by_subaward_groupedranks cumulative reported subaward totals for matching primes. Its date filters do not trim those totals to subaward actions inside the requested period. For period-specific reports, pass a returnedaward_generated_internal_idtosearch_subawards, read every page and filter the records byaction_date. Reported amounts can repeat cumulative values; their sum is not net new subcontract spending. - Award date windows. By default, a date window matches any award active during it (first signing through latest action), so a match does not prove an action happened inside the window. For actual activity, use
spending_by_transaction, read every page and deduplicate award identifiers;get_transactionsgives a single award's action dates. Explicitdate_type="action_date"bounds the latest action. - Federal-account programs. Program lists contain codes and names across all reported years, without dollar amounts or a fiscal-year filter. The tool retrieves source pages internally (up to 2,000 records) and reports completeness and any requested FY that was not applied. Use the numeric account ID with the fiscal-year snapshot for single-year account resources. Agency program totals apply to the whole agency.
- Available fiscal years. Account listings default to the source's latest available FY; check
fy, especially after October rollover. If you ask for a year the source does not have yet, the answer explains which years are available. Agency budgetary resources do not provide a mandatory/discretionary split. - Award type groups cannot be mixed. The
award_typeparameter takes one of:contracts,idvs,grants,loans,direct_payments,other. Use separate calls for separate categories. program_numbersis for assistance only. Use it withaward_typeset togrants,loans,direct_payments, orother. Contracts and IDVs have no assistance listing, so the server returns a message instead of zero results.- Actionable error messages. Common API errors (422 mixed award types, 400 sort field missing, 400 empty keywords) are translated into guidance for the calling LLM.
- Sort field auto-handling. The USAspending API requires the sort field to appear in the fields array; this server adds it automatically.
- Sensible defaults. Search limits default to 25 (API max 100). Default fields cover the most common columns for each award category.
- Flat filter parameters. Most common filters are surfaced as named parameters (
keywords,awarding_agency,naics_codes, etc.) rather than a nested filter dict, for better LLM tool discovery.
Data source
All data is sourced from USAspending.gov, which aggregates FPDS-NG contract data, FAADC assistance data, and agency DATA Act submissions. Data freshness varies by agency: non-DoD contract data is typically available within 5 business days, DoD and USACE procurement data has a 90-day reporting delay in FPDS, and financial assistance data is available within 2 days of submission.
License
MIT
Regression tests
Run PYTHONPATH=src uv run --python 3.12 python -m pytest -q from this
package directory. Set USASPENDING_LIVE_TESTS=1 to add the live checks
against the public API (no key needed). See testing.md for details.
Source: servers/usaspending-gov-mcp/readme.md at commit 7ff19f1
Tools
0Version history
1- v0.3.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts