MCP server
Federal contract data, inside your AI assistant
FedTally speaks the Model Context Protocol, so Claude, ChatGPT, and any other MCP client can query federal contract awards directly instead of guessing at them. The same USAspending.gov and SAM.gov data behind this site. Free, no API key, no account.
Server URL
https://fedtally.com/api/mcp
Streamable HTTP. No authentication. One endpoint, no session setup.
Tools
- search_awards_by_company(query, page)
The largest federal prime contract awards won by a company, sorted by amount. Returns award ID, recipient, awarding agency, amount, period of performance, NAICS, and description — 25 per page.
- get_agency_spend(agency, fiscalYear)
Where a toptier agency’s contract dollars went in one fiscal year: its top 25 vendors and top 25 NAICS industries by obligated amount. Takes a full agency name or its abbreviation; fiscalYear defaults to the current one.
- get_expiring_contracts(naics, days)
Contracts in one NAICS industry whose period of performance ends inside the window — the recompete pipeline. Returns the 25 soonest expiries with the incumbent vendor and UEI, contract value, set-aside code, and the small-business determination. days defaults to 180; rows come from SAM.gov, not USAspending.
How to connect
Claude.ai
- Settings → Connectors → Add custom connector.
- Paste https://fedtally.com/api/mcp as the remote MCP server URL.
- Leave authentication empty, then start a chat and ask about a contractor.
Claude Desktop / Claude Code
- Add FedTally to your MCP config as a remote server with the URL above.
- In Claude Code: claude mcp add --transport http fedtally https://fedtally.com/api/mcp
- Restart the client; the three tools appear under the fedtally server.
ChatGPT
- Settings → Connectors → Create, choosing an MCP server connector.
- Paste https://fedtally.com/api/mcp and set authentication to none.
- Enable the connector in a chat to let it call the tools.
Coverage
search_awards_by_company and get_agency_spend read USAspending.gov prime contract awards, in obligated US dollars. Civilian agency awards are about 4 days fresh; Department of Defense awards are withheld about 90 days, so recent defense activity looks sparser than it is.
get_expiring_contracts reads SAM.gov Contract Awards from nightly snapshots rather than live calls. Snapshots cover all 20 seeded industries. The sync refreshes the 8 stalest each night at 06:17 UTC, so every industry is re-read within 3 nights. Each snapshot covers the next 180 days, and every response carries the syncedAt timestamp of the sync behind its rows.