SpendQuery MCP
SpendQuery MCP provides a free, read-only interface to US federal spending data, including contracts, grants, SAM.gov notices, and FAR clauses. It enables agents to search for companies, awards, agencies, and regulations, and to retrieve plain-English summaries of government contracting information sourced from USAspending.gov and SAM.gov.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.spendquery.com/mcpWhat you can do with it
- Look up a company's federal obligations and SAM.gov registration
- Search for open contract opportunities and awards by agency or industry
- Retrieve plain-English summaries of FAR and DFARS clauses
- Find suppliers and vendors for specific government products or services
Source and maintenance
Protocol and capabilities
- Server
- SpendQuery 0.3.0
- MCP protocol
- 2025-06-18
- Tools
- 13 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
13 advertised
get_catalog — What SpendQuery can answer
What SpendQuery can answer: data coverage, metrics, dimensions (with examples and whether they apply to contracts or assistance), analyses, the QueryPlan JSON schema, planning rules and example question -> plan pairs. Call this first (no arguments): the federal catalog. section: "states" (state, county and city checkbooks in brief: each jurisdiction, their dimensions, rules and examples), "state:<CODE>" (one jurisdiction in full, e.g. "state:MA"), "rules" (every planning rule), "examples" (every worked example) or "full" (everything).
{
"type": "object",
"title": "get_catalogArguments",
"properties": {
"section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Section",
"default": null,
"description": "Omit for the federal catalog. \"states\" (state, county and city checkbooks in brief), \"state:<CODE>\" for one jurisdiction in full (e.g. \"state:MA\"), \"rules\", \"examples\" or \"full\"."
}
}
}{
"title": "What SpendQuery can answer",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}run_plan — Run a spending query
Run a QueryPlan (see get_catalog.plan_schema). Returns status (ok | clarify | unsupported | error), a one-paragraph answer, columns, rows (max 100), the SQL that ran, caveats and how names were resolved to codes.
{
"type": "object",
"title": "run_planArguments",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "object",
"title": "Plan",
"description": "A QueryPlan object in business terms, following get_catalog's plan_schema, e.g. {\"intent\": \"aggregate\", \"metric\": \"obligations\", \"group_by\": [\"agency\"], \"fiscal_years\": [2025], \"filters\": [{\"dimension\": \"award_category\", \"values\": [\"contract\"]}]}.",
"additionalProperties": true
}
}
}{
"title": "Run a spending query",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_codes — Search agencies, industries and product codes
Look up codes and official names. kind: agency | bureau | state | county | naics | psc | program. Matches names (substring, case-insensitive) or code prefixes. Plans can use either the names or the codes.
{
"type": "object",
"title": "search_codesArguments",
"required": [
"kind",
"query"
],
"properties": {
"kind": {
"enum": [
"agency",
"bureau",
"state",
"county",
"naics",
"psc",
"program"
],
"type": "string",
"title": "Kind",
"description": "What to look up: agency, bureau (sub-agency), state, county, naics (industry), psc (product or service code) or program (Assistance Listing)."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20,
"description": "Most rows to return, 1-50."
},
"query": {
"type": "string",
"title": "Query",
"description": "Words in the name, or the code itself, e.g. \"veterans affairs\", \"541511\", \"D302\"."
}
}
}{
"title": "Search agencies, industries and product codes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_recipients — Search companies and recipients
Find award recipients (companies, universities, governments) by name or UEI. Returns each registration's UEI, parent, listed-company ticker (if matched) and its OWN obligations across loaded years, largest first. A parent's money sits on its units, so a parent UEI's own obligations can be small or negative: for a company's total use run_plan with a company filter (name or ticker). A UEI that is a parent also returns parent_rollup (its units).
{
"type": "object",
"title": "search_recipientsArguments",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10,
"description": "Most rows to return, 1-50."
},
"query": {
"type": "string",
"title": "Query",
"description": "A company or recipient name, or a 12-character UEI, e.g. \"booz allen\" or \"ZFN2JJXBLZT3\"."
}
}
}{
"title": "Search companies and recipients",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}browse_codes — Browse industry and product codes
Browse what the government buys, with contract spend. kind: psc (products and services) | naics (industries). No group and no query -> the groups (PSC: services by letter, e.g. D = IT services, R = professional support; products by 2 digits, e.g. 84 = clothing and individual equipment; NAICS: 2-digit sectors), largest first. group -> the codes in it. query -> codes whose name contains the words. Default year: last complete fiscal year. Use a code or its name in a plan's psc / naics filter.
{
"type": "object",
"title": "browse_codesArguments",
"properties": {
"kind": {
"enum": [
"psc",
"naics"
],
"type": "string",
"title": "Kind",
"default": "psc",
"description": "psc (products and services) or naics (industries)."
},
"group": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Group",
"default": null,
"description": "A group to list the codes in: a PSC letter or 2-character group (e.g. \"D\", \"84\") or a 2-digit NAICS sector (e.g. \"54\")."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 50,
"description": "Most rows to return, 1-200."
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Query",
"default": null,
"description": "Words in a code's name, e.g. \"body armor\", \"janitorial\"."
},
"fiscal_year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Fiscal Year",
"default": null,
"description": "Federal fiscal year (October-September), e.g. 2025; default the last complete one."
}
}
}{
"title": "Browse industry and product codes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_notice — Look up a contract notice
One SAM.gov contract notice as SpendQuery's brief sees it, no AI: the decision card (what the buyer needs, blockers, unknowns, a next step; each line labelled record / files / unknown), the timeline of the buy (planned buy, the contract it follows, earlier and newer notices, the award and the contract it became, each link confirmed / likely / possible) and what changed between versions of its public files. notice_id: from run_plan lists of contract_opportunities, or the id in a SAM.gov notice URL.
{
"type": "object",
"title": "get_noticeArguments",
"required": [
"notice_id"
],
"properties": {
"notice_id": {
"type": "string",
"title": "Notice Id",
"description": "A SAM.gov notice id: the 32-character hex id in a SAM.gov notice URL (sam.gov/opp/<id>/view) or from run_plan's contract_opportunities rows, e.g. \"0a1b2c3d4e5f60718293a4b5c6d7e8f9\"."
}
}
}{
"title": "Look up a contract notice",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}size_standard — Check an SBA size standard
SBA small business size standards (13 CFR 121.201, the eCFR table): a NAICS code, a code prefix (5415) or industry words -> receipts ($ millions) or employees, exceptions and footnotes, and the programs that use them.
{
"type": "object",
"title": "size_standardArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query",
"description": "A 6-digit NAICS code (e.g. \"541511\"), a code prefix (e.g. \"5415\") or industry words (e.g. \"custom software\")."
}
}
}{
"title": "Check an SBA size standard",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}naics_finder — Find NAICS codes for a business
Describe the work in plain words -> the NAICS codes buyers actually use for it (codes on SAM.gov notices whose titles have the words and on federal contracts described with them), each with its SBA size standard.
{
"type": "object",
"title": "naics_finderArguments",
"required": [
"description"
],
"properties": {
"description": {
"type": "string",
"title": "Description",
"description": "The work in plain words, e.g. \"commercial janitorial and floor care\" or \"drone mapping surveys\"."
}
}
}{
"title": "Find NAICS codes for a business",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}vehicle_match — Find contract vehicles for an industry
For 6-digit NAICS codes (and an optional agency): the shared contract vehicles (GWACs, multiple-award IDIQs, GSA Schedule, BPAs) carrying last complete year's contract money in those codes, the share through each and who each is reserved for (read from its name).
{
"type": "object",
"title": "vehicle_matchArguments",
"required": [
"naics"
],
"properties": {
"naics": {
"type": "array",
"items": {
"type": "string"
},
"title": "Naics",
"description": "One or more 6-digit NAICS codes, e.g. [\"541511\", \"541512\"]."
},
"agency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Agency",
"default": null,
"description": "An agency to limit to, by name or code, e.g. \"Department of Veterans Affairs\" or \"036\"."
}
}
}{
"title": "Find contract vehicles for an industry",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_far — Search the FAR and DFARS
Search the FAR and the DFARS (48 CFR chapters 1 and 2, as codified in the eCFR): sections whose title or text has every word, or a section number (e.g. 52.219-14) straight to it. reg: FAR | DFARS to limit. Returns section numbers, titles and a snippet; read one with get_far_section. The codified text lags the Revolutionary FAR Overhaul's class deviations.
{
"type": "object",
"title": "search_farArguments",
"required": [
"query"
],
"properties": {
"reg": {
"enum": [
"FAR",
"DFARS",
null
],
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reg",
"default": null,
"description": "Limit to one regulation: FAR or DFARS; omit for both."
},
"query": {
"type": "string",
"title": "Query",
"description": "Words that must all appear in the section's title or text (e.g. \"limitations on subcontracting\"), or a section number (e.g. \"52.219-14\")."
}
}
}{
"title": "Search the FAR and DFARS",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_far_section — Read a FAR or DFARS section
One FAR or DFARS section's full text (paragraphs), its part and subpart, the sections it refers to and the ones referring to it, and Federal Register rules changing its part. Cite it as FAR <section> (or DFARS) with the as-of date in source.
{
"type": "object",
"title": "get_far_sectionArguments",
"required": [
"section"
],
"properties": {
"section": {
"type": "string",
"title": "Section",
"description": "A FAR or DFARS section number, e.g. \"52.204-21\", \"19.502-2\" or \"252.204-7012\"."
}
}
}{
"title": "Read a FAR or DFARS section",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_local_bids — Search state and local bids and contracts
State, county and city government bids and contracts (not federal awards), from the governments that publish them as open data: Los Angeles (the City, LA County, LADWP, LAUSD, airports, port, Metro), New York City, San Francisco, Washington DC, Chicago, Cook County, Austin, Detroit, Richmond, Sacramento, Baton Rouge, Montgomery County MD, Delaware, Texas DOT, California state departments (Cal eProcure), SUNY construction, E-Rate and others. kind: "open" (taking responses, soonest due first), "planned" (forecasts: TxDOT's planned lettings, Illinois CDB, San Diego County), "awarded" (contracts first awarded in the last year: who won, net amounts) or "current" (in force today, soonest ending first: the re-bids). q: words in the title or description; state: two-letter code (open and planned bids); source: one source key from the reply's sources. Coverage is partial: no tool has every state, county and city; say so when the place asked about isn't covered. Each row links to the government's own record (source_url).
{
"type": "object",
"title": "search_local_bidsArguments",
"properties": {
"q": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q",
"default": null,
"description": "Words in the title or description, e.g. \"roofing\" or \"janitorial\"."
},
"kind": {
"enum": [
"open",
"planned",
"awarded",
"current"
],
"type": "string",
"title": "Kind",
"default": "open",
"description": "open (taking responses, soonest due first), planned (forecasts), awarded (contracts first awarded in the last year) or current (in force today, soonest ending first)."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 25,
"description": "Most rows to return, 1-50."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Two-letter state code, e.g. \"TX\" (open and planned bids)."
},
"source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source",
"default": null,
"description": "One source key from the reply's sources, e.g. \"txdot\", \"nyc\", \"lacity\"."
}
}
}{
"title": "Search state and local bids and contracts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}sbir_awards — Search SBIR and STTR awards
SBIR and STTR awards since 1983 from SBA's SBIR.gov records, and who received them: totals, awards by year (Phase I / II), by agency, the companies with the most, and the latest awards (company, title, agency, phase, amount, year). Filters: agency (as SBIR.gov names it, e.g. "Department of Defense"), phase ("Phase I" or "Phase II"), program ("SBIR" or "STTR"), state (the winner's), q (words in the award title), company_uei, since (first award year). open_topics: also the SBIR/STTR solicitations open now (SAM.gov and Grants.gov). SBIR.gov counts awards by award year; USAspending (run_plan) counts money by fiscal year, so the two differ.
{
"type": "object",
"title": "sbir_awardsArguments",
"properties": {
"q": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q",
"default": null,
"description": "Words in the award title, e.g. \"hypersonic\" or \"battery\"."
},
"phase": {
"enum": [
"Phase I",
"Phase II",
null
],
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Phase",
"default": null,
"description": "The award phase: Phase I or Phase II."
},
"since": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Since",
"default": null,
"description": "First award year to count, e.g. 2020."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "The winner's two-letter state code, e.g. \"VA\"."
},
"agency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Agency",
"default": null,
"description": "The awarding agency as SBIR.gov names it, e.g. \"Department of Defense\", \"National Science Foundation\"."
},
"program": {
"enum": [
"SBIR",
"STTR",
null
],
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Program",
"default": null,
"description": "The program: SBIR or STTR."
},
"company_uei": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Company Uei",
"default": null,
"description": "A winner's 12-character UEI, e.g. \"ZFN2JJXBLZT3\"."
},
"open_topics": {
"type": "boolean",
"title": "Open Topics",
"default": false,
"description": "Also list the SBIR/STTR solicitations open now (SAM.gov and Grants.gov)."
}
}
}{
"title": "Search SBIR and STTR awards",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
0 advertised
Resources
1 advertised
SpendQuery planner & MCP reference
Everything a planner can use: tools, QueryPlan fields, metrics, dimensions, analyses, topics, recipient types, validation, rules, examples, prompt anatomy.
spendquery://reference30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1249 ms
- 95th percentile latency
- 1249 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1249 ms · metadata changed · 13 tool(s), 1 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http spendquery-mcp https://api.spendquery.com/mcpCodex
codex mcp add spendquery-mcp --url https://api.spendquery.com/mcpCursor
{
"mcpServers": {
"spendquery-mcp": {
"url": "https://api.spendquery.com/mcp"
}
}
}Cline
{
"mcpServers": {
"spendquery-mcp": {
"type": "streamableHttp",
"url": "https://api.spendquery.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"spendquery-mcp": {
"type": "http",
"url": "https://api.spendquery.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http spendquery-mcp https://api.spendquery.com/mcpClaude Desktop
{
"mcpServers": {
"spendquery-mcp": {
"url": "https://api.spendquery.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"spendquery-mcp": {
"serverUrl": "https://api.spendquery.com/mcp"
}
}
}Let your agent find its tools
Find servers like SpendQuery MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run SpendQuery MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.