
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@cliwant/mcp-sam-gov
Advanced tools
Most comprehensive keyless MCP server for US federal + state/local (SLED) contracting + spending + regulation: SAM.gov, USAspending, Federal Register, eCFR, Grants.gov, plus SLED procurement bids (OpenGov, Bonfire, ArcGIS, Socrata 53 hosts). 150 tools, no
npm install away.The most comprehensive keyless-first MCP server for US federal and state/local (SLED) contracting + spending + regulation + partner vetting. 150 tools across 52 data sources — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 48 need none. Works today, in any AI agent.
👤 user Find active SAM.gov solicitations under NAICS 541512 closing this month
🤖 Claude → sam_search_opportunities { ncode: "541512", limit: 5 }
✓ 47,478 active opportunities indexed
• 5ef3db5d… VA Bulk Oxygen Tank Rental closes 2026-05-15 ($1.05M)
• a000339c… Articulating Boom Lifts closes 2026-05-30 ($310K)
• be9c24ef… CMOP Hazardous Waste Removal closes 2026-06-12 ($2.7M)
👤 user Pull the SOW + contracting officer for the first one
🤖 Claude → sam_get_opportunity { noticeId: "5ef3db5d…" }
✓ Department of Veterans Affairs · Combined Synopsis/Solicitation
POC: Rebecca Gobble <rebecca.gobble@va.gov> +1-410-642-2411
Set-aside: Total Small Business
Attachments: 1 ↓ 36C24526Q0460_1.docx (172 KB)
SOW preview: "RFQ# 36C24526Q0460 — Bulk Oxygen Tank Rental, Fill, Telemetry…"
Zero API key. Zero registration. Zero signup. Just plug it in and ask.
| Status quo | With this MCP |
|---|---|
| GovWin: $30K-$100K/yr per seat | Free, MIT license |
| API key registration → wait 24h → quota tier shopping | npm install → working in 60s |
| 5+ separate vendor APIs / scrapers | 1 unified surface, 150 tools across 52 sources |
| LLMs hallucinate NAICS codes / agency names | Anti-hallucination autocomplete guards built-in |
| Brittle scraping breaks weekly | Daily live smoke test (badge above) |
| Procurement officer → IT ticket → 3-week wait | Claude Desktop double-click install |
The federal data this wraps is public domain. There is no good reason it should cost a five-figure subscription to query.
| Domain | What you can ask | Sources |
|---|---|---|
| 🔍 Opportunities & solicitations | "Find SAM.gov solicitations under NAICS 541512 closing this month" — read the SOW, POCs, attachments | SAM.gov, Grants.gov |
| 💰 Spending, awards & competition | "Show me Booz Allen wins at VA last fiscal year; top 10 PSC categories at DoD" | USAspending, FPDS, GAO |
| 🕵️ Entity & partner vetting | "Screen this firm: OFAC sanctions, SAM exclusions, single-audit findings, bank health, EPA compliance + toxics-release" | OFAC, SAM, FAC, FDIC, EPA ECHO, EPA Envirofacts |
| 🛒 Product safety & recalls | "Any FDA/NHTSA/CPSC recalls or enforcement against this supplier's products?" | openFDA, NHTSA, CPSC |
| ⚖️ Litigation & courts | "Any Court of Federal Claims bid protests or Federal Circuit opinions involving this contractor?" | CourtListener (Free Law Project) |
| 🏢 Nonprofit vendors | "Pull this nonprofit's IRS-990 financials before we subcontract to it" | IRS 990 (via ProPublica) |
| 🏥 Healthcare providers & facilities | "Medicare utilization & payments for this provider; hospital quality ratings; is this provider on the revocation list?" | CMS (data.cms.gov) |
| 📈 Financial disclosure (SEC) | "Pull this public company's revenue trend and latest 10-K filings" | SEC EDGAR |
| ⚖️ Regulatory & legislative | "What VA cybersecurity rules were published this quarter? Any open Regulations.gov dockets?" | Federal Register, Regulations.gov, eCFR, FAR/DFARS, Congress.gov, GovInfo |
| 💲 Pricing, labor & fiscal | "GSA CALC labor-rate band for a systems analyst; SCA wage determination for this county; CPI escalation; per-diem cap for a trip; regional GDP by industry; DOL wage-hour enforcement history" | GSA CALC, SAM WDs, BLS, US Census CBP, FRED, BEA, US Treasury, GSA per-diem, US DOL |
| 🏛 Lobbying & influence | "Who lobbies the VA on cybersecurity, and how much do they spend?" | US Senate LDA |
| 🏥 Health & research funding | "NIH/NSF grants on this topic; recruiting clinical trials; industry payments to this physician" | NIH RePORTER, NSF, ClinicalTrials.gov, CMS Open Payments, NPPES |
| 🛡 Cyber compliance | "Is this CVE on the CISA KEV must-patch list?" | NVD, CISA KEV |
| 🌐 Trade, geo & disaster | "HTS tariff for this product; Census tract for this address; FEMA declarations in this state" | USITC HTS, US Census, FEMA, Socrata, CKAN |
| 🏙 State/local procurement bids (SLED) | "What's open on this city's/county's procurement portal right now? Their checkbook, awarded contracts, vendor payments; state DOT bid/award registers" | OpenGov Procurement (525+ govs), Bonfire, ArcGIS (feature + Hub), Socrata (53 hosts) |
| 🎓 Grants & datasets | "Cybersecurity grants posted in the last 30 days; discover federal open datasets" | Grants.gov, data.gov |
150 tools across 52 data sources — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 48 need none. (An earlier 52-tool build measured roughly p50 ~0.25s / p95 ~0.8s against production federal APIs; latency varies by source and upstream load — treat it as fast, not a benchmarked guarantee.)
Best for non-developers. Just download a file and double-click.
mcp-sam-gov.mcpb from the latest release.That's it. No PowerShell, no npm, nothing.
Requires Claude Desktop ≥ 1.0 (which ships its own Node.js runtime).
If you already use Claude Code (the CLI):
/plugin install cliwant/mcp-sam-gov
This installs the MCP server plus a SKILL.md workflow guide that teaches Claude when + how to use each of the 150 tools.
For Codex CLI / Cursor / Continue / Gemini CLI / anything that speaks MCP:
gh repo clone cliwant/mcp-sam-gov
cd mcp-sam-gov
npm install --omit=dev
npm install -g .
After install, the binary mcp-sam-gov is on your PATH. Add this to your host config:
{
"mcpServers": {
"sam-gov": {
"command": "mcp-sam-gov"
}
}
}
Specific config locations per host: see Host configurations below.
Skip installation entirely:
gh repo clone cliwant/mcp-sam-gov
cd mcp-sam-gov
npm install --omit=dev # only runtime deps; dist/ is pre-built
Then point your host config at the absolute path:
{
"mcpServers": {
"sam-gov": {
"command": "node",
"args": ["C:\\Users\\you\\mcp-sam-gov\\dist\\server.js"]
}
}
}
%APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"sam-gov": { "command": "mcp-sam-gov" }
}
}
(Or skip this entirely — use Path 1's .mcpb and it auto-configures.)
Restart Claude Desktop fully (system tray quit on Windows / Quit menu on macOS), then look for the 🔨 icon. You should see "sam-gov (150 tools)".
Per-project .mcp.json:
{ "mcpServers": { "sam-gov": { "command": "mcp-sam-gov" } } }
Or globally:
claude mcp add sam-gov mcp-sam-gov
~/.codex/config.toml:
[mcp_servers.sam-gov]
command = "mcp-sam-gov"
args = []
Settings → MCP → Add new MCP server:
{ "mcpServers": { "sam-gov": { "command": "mcp-sam-gov" } } }
~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServer": {
"transport": { "type": "stdio", "command": "mcp-sam-gov" }
}
}
}
~/.gemini/settings.json:
{ "mcpServers": { "sam-gov": { "command": "mcp-sam-gov" } } }
If your host speaks MCP over stdio, point it at mcp-sam-gov. No host-specific code.
Once installed, you can ask in natural language. The agent picks the right tool sequence automatically.
The MCP server runs keyless by default. For higher SAM.gov rate limits + the full archive (notices older than ~12 months), set SAM_GOV_API_KEY in your host's env block:
{
"mcpServers": {
"sam-gov": {
"command": "mcp-sam-gov",
"env": { "SAM_GOV_API_KEY": "your-key-here" }
}
}
}
Get a free key at sam.gov/SAM/pages/public/searchKeyData.jsf. The agent doesn't need to know — the key path is transparent.
DATA_GOV_API_KEY — the api.data.gov / api.gsa.gov familyA handful of sources ride the shared api.data.gov gateway — Congress.gov, GovInfo, Regulations.gov, FAC, NPPES, and the data.gov v4 dataset catalog. They work keyless out of the box via the public DEMO_KEY (a low shared hourly quota). Set DATA_GOV_API_KEY to raise those limits substantially:
{
"mcpServers": {
"sam-gov": {
"command": "mcp-sam-gov",
"env": { "DATA_GOV_API_KEY": "your-key-here" }
}
}
}
Get one free (instant, no wait) at api.data.gov/signup. The same key is accepted across all api.data.gov / api.gsa.gov sources. Like the SAM key, it is sent only on the wire (never logged); unset simply means DEMO_KEY. BLS sources similarly accept an optional free BLS_API_KEY to lift their daily quota.
Most tools are keyless. Four sources require a free key — Census (census_business_patterns), FRED (fred_search_series, fred_series_observations), BEA (bea_regional_data), and DOL's data endpoint (dol_get_dataset) — those sources have no keyless tier, so the tool throws without one. (DOL's catalog dol_list_datasets is keyless.) The other keys are optional: they only raise a rate limit or unlock a single filter. Every key below is free.
| Env var | Required? | What it unlocks | Free signup |
|---|---|---|---|
CENSUS_API_KEY | Required | census_business_patterns (no keyless tier — throws without it) | api.census.gov/data/key_signup.html |
FRED_API_KEY | Required | the 2 FRED tools (no keyless tier — throw without it) | fred.stlouisfed.org/docs/api/api_key.html |
BEA_API_KEY | Required | bea_regional_data (BEA Regional; no keyless tier — throws without it) | apps.bea.gov/API/signup |
DOL_API_KEY | Required for data | dol_get_dataset (DOL enforcement records via X-API-KEY; the dol_list_datasets catalog is keyless) | dol.gov/developer |
DATA_GOV_API_KEY | Optional | higher limits on all api.data.gov sources (Regulations.gov, FAC, NPPES, CMS, data.gov catalog, GSA per-diem) — lifts the shared DEMO_KEY cap | api.data.gov/signup |
SAM_GOV_API_KEY | Optional | authenticated SAM.gov v2 search + the organization-name filter | open.gsa.gov/api/get-opportunities-public-api |
LDA_API_KEY | Optional | higher rate limit on lda_search_filings (Senate LDA lobbying; keyless by default) | lda.senate.gov/api/register |
BLS_API_KEY | Optional | the BLS v2 tier (~500 queries/day vs keyless ~25/day) | data.bls.gov/registrationEngine |
NVD_API_KEY | Optional | a higher NVD rate limit (cve_lookup) | nvd.nist.gov/developers/request-an-api-key |
OPENFDA_API_KEY | Optional | higher openFDA rate limit (openfda_enforcement, openfda_device_clearances; both work keyless) | open.fda.gov/apis/authentication |
COURTLISTENER_API_TOKEN | Optional | higher CourtListener rate limit (courtlistener_search_opinions; works keyless) | courtlistener.com/help/api/rest |
SOCRATA_APP_TOKEN | Optional | higher Socrata throttling limits | evergreen.data.socrata.com/signup |
Two ways to set any key — pick one:
"env": { … } object shown in the examples above..env file in the server's working directory — configure your keys once:
CENSUS_API_KEY=your-key-here
FRED_API_KEY=your-key-here
# optional — raise limits / unlock filters
SAM_GOV_API_KEY=your-key-here
The server auto-loads .env at startup. A real environment variable always wins over .env (standard precedence), and .env is git-ignored so your keys never get committed.Ask the server which keys it needs. The keyless api_key_status tool lists every key, whether it's required or optional, the free signup URL + what it unlocks, and whether each is currently configured (a boolean — the key value is never shown). Creating the account at the signup URL is your one manual step; the server automates discovery (api_key_status) and configuration (.env). To confirm a key actually works, call that source's own tool.
npm doesn't notify installed users of new versions, so the server does — minimally. On startup it makes one anonymous request to the public npm registry for its own latest version and, only if a newer one exists, prints a single line to stderr (e.g. a newer version is available: 1.7.0 → 1.8.0). It sends no usage data (a version check, not telemetry), never touches the protocol's stdout, is non-blocking, and stays silent when you're current.
npm i -g @cliwant/mcp-sam-gov@latest — or just restart if your config uses npx @cliwant/mcp-sam-gov@latest.MCP_SAM_GOV_NO_UPDATE_CHECK=1 (or NO_UPDATE_NOTIFIER=1).This server is built to improve from real usage. Because an AI agent (not a human) calls the tools, the feedback path runs through the agent:
schema_drift (a federal API changed shape) and upstream_unavailable (an outage) — the error envelope carries a report field: a prefilled GitHub issue link your agent can offer you.feedback tool, which returns a prefilled issue link for you to open and submit.Nothing is ever posted automatically. The server has no token and no account — it only builds the link; you open and submit it. Prefilled links carry only the tool name, error kind, and server version — never your query values. The repo is public, so redact anything sensitive first.
You can also open one directly: New issue — bug / feature / wrong-output templates.
Grouped by workflow. Keyless-first — most tools need no key; Census business-patterns, FRED, BEA, and DOL's data endpoint require a free key, and a handful of others gain higher limits from an optional free key (noted above). Descriptions are condensed — each tool's own inputSchema carries the full contract and honesty caveats.
sam_search_opportunities — keyless HAL search of active SAM.gov contracting opportunitiessam_search_shaping — pre-solicitation radar (Sources Sought / Presol / Special Notices before the RFP exists)sam_get_opportunity — full detail by 32-char hex noticeId (POCs + attachments + body)sam_fetch_description — full RFP body as plain textsam_fetch_attachment_text — extract attachment text (RFP / SOW / Q&A / wage tables) from PDF + DOCX + text/HTMLsam_attachment_url — build the public download URL for an attachment resourceIdsam_lookup_organization — federal-organization id → canonical fullParentPathNamesam_lookup_notice_fields — batch-fill nulled naics/set-aside/PoP/deadline for 1–100 noticeIds from the opt-in GSA daily CSVgrants_search — Grants.gov federal grant opportunities (financial assistance, distinct from SAM contracts)grants_get_opportunity — full detail for a single grant opportunity by idusas_search_awards — aggregate share-of-wallet at agency × NAICSusas_search_individual_awards — line-item federal contracts (returns generatedInternalId)usas_get_award_detail — full award detail: period of performance, options, set-aside, competitionusas_search_awards_by_recipient — every contract a recipient won in an agency × NAICS sliceusas_search_subawards — enumerate subcontracts on prime awards (supply chain / teaming)usas_search_recompetes — recompete radar (PoP ending in a window, soonest-first, no silent drops)usas_search_expiring_contracts — deprecated alias of usas_search_recompetes (legacy shape)usas_analyze_incumbent — per-award incumbent + public recompete-pressure hints (labels, not a score)usas_search_teaming_partners — small-business teaming discovery by cert × NAICS × agency, exclusion-screenedusas_spending_over_time — contract-spending time series (fiscal_year / quarter / month)usas_search_agency_spending — spending broken down by awarding agencyusas_search_subagency_spending — break a parent agency down by sub-agency / officeusas_search_psc_spending — spending by Product Service Code (PSC)usas_search_cfda_spending — spending by CFDA grant-program codeusas_search_state_spending — spending by state / territoryusas_search_federal_account_spending — spending by federal account / Treasury Account Symbol (TAS)usas_search_recipients — recipient list with parent/child hierarchyusas_get_recipient_profile — full recipient detail (UEI, alternate names, totals)usas_get_agency_profile — agency profile by toptier code (mission, abbreviation, website)usas_get_agency_awards_summary — award activity for a fiscal year (transaction count + obligations)usas_get_agency_budget_function — budget-function breakdown for an agency × fiscal yearusas_list_toptier_agencies — all toptier agencies + current-FY obligationsusas_lookup_agency — resolve 'VA' / 'DHS' → canonical toptier name + 4-digit codeusas_autocomplete_naics — anti-hallucination NAICS guardusas_autocomplete_recipient — anti-hallucination recipient guardusas_naics_hierarchy — navigate the NAICS tree (2→4→6) + active-contract count per codeusas_glossary — 151 federal-spending termsusas_list_disaster_codes — list Disaster Emergency Fund Codes (DEFC): COVID-19, IIJA/infrastructure, and other emergency-appropriation tagsusas_disaster_spending — disaster/emergency-fund spending BY GEOGRAPHY for given DEFCs (which state/county/district captured COVID/IIJA relief money)fpds_search_awards — FPDS-NG federal contract award actions (the authoritative award-action feed)gao_protest_lookup — recent GAO bid-protest decisions from the public Legal-Products RSS feed (recent window only)ofac_screen_entity — keyless OFAC denied-party / sanctions screeningsam_check_exclusions — keyless SAM debarment/exclusion screening by name and/or UEI/CAGEsam_integrity_lookup — one-call integrity screen (exclusion verdict + honest FAPIIS pointer)fac_search_audits — Single Audit summaries from the Federal Audit Clearinghousefac_get_findings — drill into the audit-RISK findings for an entityfdic_search_institutions — search the FDIC-insured-institution directoryfdic_institution_financials — quarterly financial time-series for one institution (by cert #)fdic_risk_ratios — counterparty risk ratios for one institutionfdic_institution_history — structural-change event log (mergers, charter changes)fdic_branch_deposits — branch-deposit footprintfdic_bank_failures — historical bank failures & assistance transactionsfdic_industry_summary — industry & state banking-sector annual aggregatesecho_search_facilities — search EPA-regulated facilities by state with compliance/enforcement screeningecho_facility_report — EPA ECHO Detailed Facility Report for one facility (by FRS RegistryID)epa_tri_facilities — EPA Envirofacts TRI (Toxics Release Inventory) facilities by state/industry (environmental / ESG vetting)openfda_enforcement — FDA drug / device / food recalls & enforcement actions (product-safety supplier vetting)openfda_device_clearances — FDA 510(k) medical-device clearances (device-maker capability check)openfda_drug_approvals — openFDA Drugs@FDA drug-approval applications (sponsor, approved products, submission/approval history)nhtsa_recalls — NHTSA vehicle recalls by make / model / yearnhtsa_complaints — NHTSA vehicle safety complaints by make / model / yearcpsc_recalls — CPSC consumer-product recalls (product supplier vetting)courtlistener_search_opinions — US federal court opinions (COFC contract claims / bid protests, Federal Circuit) — data via CourtListener / Free Law Project (disclosed)nonprofit_search — IRS-990 nonprofit search by name / state / NTEE — via ProPublica Nonprofit Explorer (disclosed)nonprofit_financials — IRS-990 nonprofit financials by EIN — via ProPublica Nonprofit Explorer (disclosed)edgar_lookup_cik — resolve a company ticker or name to its 10-digit SEC CIKedgar_company_filings — a company's SEC filingsedgar_company_facts — curated XBRL financial facts for a fileredgar_company_concept — one filer × one XBRL concept × the complete reported time-seriesedgar_xbrl_frames — cross-filer XBRL cross-section (one concept across all filers for a period)edgar_full_text_search — full-text search across EDGAR filings, 2001–presentedgar_filing_index — bulk cross-filer filing index for a quarteredgar_daily_filing_index — per-day cross-filer filing indexfed_register_search_documents — search Federal Register documents by query / agency / type / datefed_register_get_document — full detail for a document by number (citation, body URL, CFR refs)fed_register_public_inspection — the Federal Register public-inspection desk (pre-publication)fed_register_list_agencies — Federal Register agency slugs referenceregulations_search_dockets — search Regulations.gov rulemaking docketsregulations_search_documents — search Regulations.gov rulemaking documents (rules, proposed rules, notices)regulations_search_comments — search public comments on rulemakingsregulations_get_docket — fetch one Regulations.gov docket by idecfr_search — full-text search across the entire CFR (titleNumber=48 for FAR); returns ranked snippets + ecfrUrlecfr_get_section — the FULL text of one CFR section by citation (any title; for FAR/DFARS prefer far_clause_lookup)ecfr_list_titles — all 50 CFR titles + last-amended datesfar_clause_lookup — authoritative FAR/DFARS clause text + its prescription (exact clause number)far_search — FAR/DFARS-scoped search (excludes GSAM, collapses to current in-force version)far_compliance_matrix — cited-clause list → proposal-ready Section L/M compliance matrix (eligibility gates flagged)congress_search_bills — search Congress.gov bills / legislationcongress_get_bill — one bill by congress / type / numbergovinfo_search_packages — search GovInfo (GPO-authoritative) packages in a collectiongovinfo_get_package — one GovInfo package summary + download links (txt/xml/pdf/mods)govinfo_list_collections — the GovInfo collection cataloggsa_benchmark_labor_rates — GSA CALC awarded ceiling-rate market band for a labor category (a distribution, not one price)sam_search_wage_determinations — find SCA / Davis-Bacon wage determinations for a localitysam_get_wage_rates — prevailing-wage + fringe / H&W rate table parsed from a WD, plus the EO minimum-wage floorbls_timeseries — BLS time series (CPI-U / ECI escalation, PPI, employment) — the pricing/escalation layerbls_oews_wages — benchmark occupational wages & employment (BLS OEWS) by area × occupationbls_qcew — county × NAICS market size / wages / location quotient (competition density)treasury_debt_to_penny — daily total US public debt outstanding (Treasury Fiscal Data)treasury_avg_interest_rates — average interest rate the Treasury pays by security typetreasury_monthly_statement — Monthly Treasury Statement: receipts, outlays, deficit/surplus by monthtreasury_query_dataset — escape-hatch query over 7 confirmed Treasury Fiscal Data datasetsbea_regional_data — GDP / personal income by industry × geography (BEA Regional; requires free BEA_API_KEY)census_business_patterns — establishments / employment / annual payroll by NAICS × geography (Census CBP; requires free CENSUS_API_KEY)fred_search_series — search the FRED macroeconomic series catalog (GDP/CPI/rates/unemployment; requires free FRED_API_KEY)fred_series_observations — time-series observations for a FRED series (missing values → null; requires free FRED_API_KEY)gsa_perdiem_rates — federal travel per-diem: monthly lodging + M&IE meals caps by city+state or zip (keyless via DEMO_KEY)nih_reporter_search_projects — awarded NIH RePORTER research-grant projectsnsf_search_awards — awarded NSF research-grant awardsnsf_get_award — one NSF award by its numeric award idclinicaltrials_search_studies — federally-registered clinical studies with sponsor/funder enrichmentclinicaltrials_get_study — one clinical study by NCT id (incl. brief summary)clinicaltrials_facet_counts — exact per-value study-count distribution over the whole registrycms_search_datasets — discover CMS Open Payments (Sunshine Act) datasetscms_query_dataset — query a CMS Open Payments datastore distribution (industry→physician payments)nppes_lookup_provider — CMS/HHS NPPES NPI Registry provider lookupcms_medicare_provider_services — Medicare provider utilization & payments (healthcare market sizing)cms_hospital_compare — CMS Hospital Compare quality ratingscms_facility_directory — CMS nursing-home / home-health / hospice / dialysis facility directoriescms_dmepos_suppliers — CMS DMEPOS (durable medical equipment) supplier directory + Medicare spendcms_revoked_providers — CMS Medicare revocation / exclusion list (provider compliance vetting)cve_lookup — look up NIST NVD CVE recordscisa_kev_lookup — filter the CISA Known Exploited Vulnerabilities catalog (binding BOD 22-01 remediation due-dates)nist_800_53_controls — NIST SP 800-53 Rev 5 security & privacy controls lookup (FedRAMP/CMMC/RMF requirement text by controlId/family/keyword)hts_lookup — US import-tariff classification + duty rates from the USITC Harmonized Tariff Schedulecbp_border_wait_times — live CBP land-border commercial-vehicle wait times (Canadian + Mexican ports; freight/logistics)census_geocode_address — resolve a one-line US address → matched address + Census geographies (tract, CD, place)census_geographies_by_coordinates — resolve a longitude/latitude point → Census geographiesfema_disaster_declarations — FEMA disaster / emergency declarations by state, type, incident, yearfema_search_public_assistance — FEMA Public Assistance funded projectsfema_search_hazard_mitigation — FEMA Hazard Mitigation Assistance projects (HMGP/FMA/PDM/BRIC mitigation grants to state/local/tribal subrecipients; disaster-resilience, distinct from Public Assistance recovery)nws_active_alerts — currently-active NWS weather alerts (watches/warnings/advisories; disaster/climate readiness, pairs with the FEMA tools)socrata_discover_datasets — find Socrata dataset 4x4 ids by keywordsocrata_query — query rows from an allowlisted Socrata/SODA open-data portal (53 curated state/county/city + federal hosts — checkbook, contracts, vendor payments, live solicitations across the SLED tier)ckan_discover_datasets — find CKAN datastore resource ids by keywordckan_query — query rows from an allowlisted CKAN datastore resource (state/city spend/checkbook)opengov_list_governments — directory of 525+ US state/local governments on OpenGov Procurement (filter by state/query)opengov_search_solicitations — a government's live public solicitations (title, status [open = accepting], deadline, portal link) — keyless anonymous endpointsbonfire_list_organizations — curated live-verified 186-org US seed directory of governments on Bonfire (Euna)bonfire_search_opportunities — an org's currently-open opportunities via keyless RSS (referenceNumber, name, closeDate, link); the RSS is the complete open set (exact total)arcgis_hub_discover_datasets — discover ArcGIS Hub datasets by keyword (the SLED GIS/infrastructure/permits/procurement layer Socrata & CKAN don't cover; a discovery aid with publisher surfaced for vetting)arcgis_feature_query — query rows from a curated allowlist of 23 US-gov ArcGIS REST feature layers: DC OCP PASS live solicitations; local-gov checkbooks/contracts; state DOT bid/award registers (TX / AK / IA / OK)datagov_search_datasets — search the data.gov v4 catalog for federal open datasets across all publishing agenciessearch_gov_domains — CISA get.gov authoritative .gov domain registry (resolve which org owns a .gov domain; enumerate federal agencies + map SLED entities)sba_size_standard — SBA small-business size standard for a 6-digit NAICS (set-aside eligibility gate)dol_list_datasets — browse DOL enforcement/compliance datasets (WHD, OFCCP, …) — keyless catalogdol_get_dataset — fetch DOL enforcement records (WHD wage-hour / OFCCP; requires free DOL_API_KEY)lda_search_filings — Senate lobbying filings: who lobbies which agency, on what issue, for how much (keyless)api_key_status — list which API keys the server can use, required vs optional, signup URLs, and whether each is currently set (value never shown)This server is built around one rule: honest failure over confident fabrication. Everything below is about availability of public data — none of it bypasses access controls.
Keyless-first, and a down source throws. Every source works with no API key. When a source is rate-limited, blocked, or down, the tool returns a typed error (rate_limited / upstream_unavailable / schema_drift / …) — it never invents rows and never reports a DOWN service as "0 results" or "not found". A genuine empty result and an outage are always distinguishable.
Offline snapshots (on by default). Some reference data changes slowly — the toptier-agency list, the top-level NAICS tree, the USAspending glossary, SBA size standards, the latest Treasury "Debt to the Penny." By default, when a live federal source is briefly unreachable from your egress, the server falls back to a public, weekly-refreshed snapshot of that slow-changing reference data, hosted at raw.githubusercontent.com/cliwant/mcp-sam-gov/snapshots. It only fetches on a live hard-failure (an outage / IP-reputation block), never during normal operation — public data, no telemetry. A served snapshot is never presented as live — the response carries _meta.dataPath: "snapshot" plus an asOf timestamp, and complete is forced off, so an AI agent (and you) always see the staleness. A rate limit (429) is always honored, never routed around onto the mirror.
Disable it (pure live-only): set SAMGOV_SNAPSHOT_BASE_URL=off. Then no snapshot path is ever added and behavior is byte-for-byte identical to a live-only client.
Point at your own mirror: set SAMGOV_SNAPSHOT_BASE_URL to your base URL to host the snapshots yourself instead of using the public default.
{ "mcpServers": { "sam-gov": { "command": "mcp-sam-gov",
"env": { "SAMGOV_SNAPSHOT_BASE_URL": "off" } } } }
Build the snapshots: run node scripts/build-snapshots.mjs from any clean, non-blocked egress (a laptop / home / clean CI runner). It self-diagnoses per-source reachability, prints a reachability table, and writes a manifest.json. On partial coverage it refreshes only the sources it can reach and leaves the last-good file in place for the rest (stale-but-honest, never blanked). It exits non-zero only when zero sources were reachable (a fully blocked egress — the signal to re-run from a cleaner one).
The honest boundary. This covers public-data availability only. The snapshot builder ingests only public, redistributable (public-domain / CC0) data, and the reader refuses to serve any envelope not marked accessLevel: "public". It honors rate limits (a 429 is never routed around), uses no proxies, no IP rotation, no auth/paywall/CAPTCHA bypass, and refuses off-host redirects. If a source is blocked, the honest remedy is to build from a cleaner egress — not to evade the block.
| Symptom | Fix |
|---|---|
Claude Desktop 🔨 menu doesn't show sam-gov | Fully quit Claude Desktop (system tray on Windows / Quit menu on macOS) and reopen. Check %APPDATA%\Claude\logs\mcp*.log |
command not found: mcp-sam-gov | Confirm npm install -g . succeeded; check that npm's global bin is on PATH (npm config get prefix) |
MODULE_NOT_FOUND ...dist/server.js after npm install -g github:... | npm bug with git-dep symlinks on Windows. Use the clone + npm install -g . recipe (Path 3) instead. |
EPERM: operation not permitted, rmdir during install | Previous failed install left dangling files. Run rmdir /s /q "%APPDATA%\npm\node_modules\@cliwant" (or @govicon if you installed an early version) then retry. |
npm install fails with "private repo" / 404 | The repo is now public — should not happen. If it does, try git clone https://github.com/cliwant/mcp-sam-gov.git directly. |
| Tools return empty results | SAM.gov rate-limits aggressive callers. Wait 1 minute. Or set SAM_GOV_API_KEY for the higher-rate authenticated path. |
| "Tool error: USAspending POST returned 400" | Usually means a field has a wrong type (e.g. fiscal year as string). Check the tool input schema in your host's tool browser. |
Beyond the MCP server, this package also exports the underlying federal-data clients as importable modules. Useful if you're building your own SaaS, AI agent, or CLI and want programmatic access without spawning an MCP server.
npm install @cliwant/mcp-sam-gov
// SAM.gov client
import { SamGovClient } from "@cliwant/mcp-sam-gov/sam-gov";
const sam = new SamGovClient(); // keyless
const result = await sam.searchOpportunities({ ncode: "541512", limit: 5 });
const opp = await sam.getOpportunity("5ef3db5daeb54099a96d487783a38bd0");
// USAspending wrappers
import * as usas from "@cliwant/mcp-sam-gov/usaspending";
const recompete = await usas.searchExpiringContracts({
agency: "Department of Veterans Affairs",
naics: "541512",
monthsUntilExpiry: 12,
});
const recipient = await usas.getRecipientProfile("ed02855e-60d7-2540-...-P");
// Federal Register / eCFR / Grants.gov
import * as fedreg from "@cliwant/mcp-sam-gov/federal-register";
import * as ecfr from "@cliwant/mcp-sam-gov/ecfr";
import * as grants from "@cliwant/mcp-sam-gov/grants";
const farResults = await ecfr.search({ query: "SDVOSB", titleNumber: 48 });
This is the canonical home for the Cliwant federal-data libraries — there
is no separate library package. Two earlier repos (govicon-sam-gov and
govicon-mcp-sam-gov) have been archived and consolidated here. All
client code lives in src/sam-gov/, src/usaspending.ts,
src/federal-register.ts, src/ecfr.ts, src/grants.ts.
This server runs locally and collects nothing — no telemetry, no analytics, no accounts. Your prompts and results are processed in memory on your machine and are never sent to Cliwant. Each tool calls the relevant official government API directly over HTTPS; optional API keys stay in your local environment and are sent only to that source. See the full Privacy Policy (contact: seungdo.keum@cliwant.com).
MIT — see LICENSE.
This server uses publicly available federal API endpoints. It is not affiliated with the General Services Administration, SAM.gov, USAspending.gov, the Office of the Federal Register, the National Archives, Grants.gov, or any federal agency. Federal procurement, spending, and regulation data is in the public domain.
FAQs
Most comprehensive keyless MCP server for US federal + state/local (SLED) contracting + spending + regulation: SAM.gov, USAspending, Federal Register, eCFR, Grants.gov, plus SLED procurement bids (OpenGov, Bonfire, ArcGIS, Socrata 53 hosts). 150 tools, no
We found that @cliwant/mcp-sam-gov demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.