Atlas / MCP servers / cliwant / mcp-sam-gov

mcp-sam-govBLOCK

mcp/cliwant/mcp-sam-gov

Keyless-first MCP server — 150 tools for US federal + state/local (SLED) government contracting, spending, regulation & partner vetting. SAM.gov, USAspending, Grants.gov, OFAC, FDIC, EPA, CourtListener + 45 more. No API key. Honesty-hardened.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
114 111r · 2w · 1d
Transport
stdio
License
MIT
Stars
10
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

$4 trillion of public federal data, one `npm install` away.

The most comprehensive keyless-first MCP server for US federal and state/local (SLED) contracting + spending + regulation + partner vetting. 153 tools across 54 data sources — keyless-first: only 4 sources (Census business-patterns, FRED, BEA, and DOL's data endpoint) need a free key; the other 50 need none. Works today, in any AI agent.

Independent project — not affiliated with, endorsed by, or sponsored by SAM.gov, the U.S. General Services Administration (GSA), or any government agency.

[](https://www.npmjs.com/package/@cliwant/mcp-sam-gov) [](https://registry.modelcontextprotocol.io/v0/servers?search=cliwant) [](https://glama.ai/mcp/servers/cliwant/mcp-sam-gov) [](./LICENSE) [](https://github.com/cliwant/mcp-sam-gov/actions/workflows/daily-smoke.yml) [](https://insiders.vscode.dev/redirect/mcp/install?name=sam-gov&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cliwant%2Fmcp-sam-gov%22%5D%7D) [](https://kiro.dev/launch/mcp/add?name=sam-gov&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cliwant%2Fmcp-sam-gov%22%5D%7D)

English · 한국어 · 日本語

See it in action

👤  user        Find active SAM.gov solicitations under NAICS
Read from source at commit da30bd343e34OBSERVED · 2026-10-10
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add mcp-sam-gov --env SAM_GOV_API_KEY=${SAM_GOV_API_KEY} --env CENSUS_API_KEY=${CENSUS_API_KEY} --env FRED_API_KEY=${FRED_API_KEY} --env BEA_API_KEY=${BEA_API_KEY} -- npx -y @cliwant/[email protected]
03

Exposed tools (114)

111 read · 2 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
arcgis_feature_queryreadQuery rows from a curated US-government ArcGIS REST feature layer (keyless) — the QUERY companion to arcgis_hub_discover_datasets (which discovers Hub datasets). A large amount of SLED procurement/GIS data lives on ArcGIS. First payload: the **DC Office of Contracting & Procurement
arcgis_hub_discover_datasetsreadDiscover ArcGIS Hub datasets by keyword — the SLED/GIS open-data layer that Socrata and CKAN do NOT cover (keyless; hub.arcgis.com/api/v3/datasets). Input
bea_regional_datareadRegional (county / state / MSA) GDP by industry and personal income from the BEA Regional Economic Accounts (apps.bea.gov/api/data, dataset
bls_oews_wagesreadBLS OEWS occupational wage/employment benchmarking by area × occupation × datatype (keyless; api.bls.gov). Builds validated 25-char series IDs from structured inputs and batches them into one POST — NO year input (OEWS serves only the latest annual release). Inputs:
bls_qcewreadBLS QCEW (Quarterly Census of Employment & Wages) — county×NAICS market-size / wages / location-quotient (keyless; data.bls.gov/cew Open Data Access CSV, un-rate-limited). Inputs:
bls_timeseriesreadFetch one or more BLS time-series over a year range (keyless v1 default; optional free BLS_API_KEY lifts to v2; api.bls.gov POST). At least one of
bonfire_list_organizationsreadList US governments on the Bonfire (Euna) eProcurement platform — the directory for bonfire_search_opportunities (keyless). Bonfire hosts thousands of US state/local governments
bonfire_search_opportunitiesreadList a government
census_geocode_addressreadResolve a one-line US address → matched address(es) + the Census GEOGRAPHIES for set-aside / place-of-performance analysis (US Census Geocoder, keyless; geocoding.geo.census.gov/geocoder/geographies/onelineaddress). Input:
census_geographies_by_coordinatesreadResolve a longitude/latitude point → the Census GEOGRAPHIES at that point, no address parsing (US Census Geocoder, keyless; geocoding.geo.census.gov/geocoder/geographies/coordinates). For a caller that already holds coordinates. Input
ckan_discover_datasetsreadFind CKAN datastore resource ids by keyword via package_search (keyless). Input
ckan_queryreadQuery rows from an allowlisted CKAN datastore resource (keyless; state/city spend/checkbook/procurement/vendor tables on the CKAN Action API). VA eVA PO lines: host=data.virginia.gov resourceId=3c7f1bde-35b0-4fbf-b89c-978a19124d53. Full map: read resource samgov://data-map/state-local. Input
clinicaltrials_facet_countsreadAggregate EXACT per-value study counts over the WHOLE ClinicalTrials.gov registry for 1..11 whitelisted ENUM fields (keyless; clinicaltrials.gov/api/v2/stats/field/values). Input
clinicaltrials_get_studyreadFetch ONE clinical study by its NCT id (keyless; clinicaltrials.gov/api/v2/studies/{nctId}). Input
cms_dmepos_suppliersreadLook up Medicare DMEPOS (Durable Medical Equipment) SUPPLIERS — supplier identity plus aggregate Medicare figures: HCPCS codes billed, beneficiaries served, claims, services, submitted / Medicare-allowed / Medicare-paid amounts (CMS
cms_facility_directoryreadMedicare/Medicaid-certified healthcare facilities by type — nursing homes, home health agencies, hospices, or dialysis facilities — with name, address, city, state, zip, and ownership (CMS provider-data, keyless; data.cms.gov datastore-query API, four datasets). Input:
cms_hospital_comparereadLook up Medicare-certified hospitals by state and/or facility-name fragment — location, type, ownership, emergency-services flag, and CMS star rating (CMS Hospital Compare
cms_medicare_provider_servicesreadMedicare Part-B provider utilization — HCPCS services rendered, beneficiaries served, and submitted / Medicare-allowed / Medicare-paid amounts (CMS
cms_query_datasetreadQuery a CMS Open Payments DKAN datastore distribution by datasetId + index (keyless; openpaymentsdata.cms.gov). Returns { datasetId, index, results (mode), fields:[{name,type,mysqlType,description}], rows:[...verbatim...] } + honest _meta. ★HONESTY:
cms_revoked_providersreadSearch CMS
congress_get_billreadFetch ONE Congress.gov bill by id via /v3/bill/{congress}/{billType}/{billNumber} (api.data.gov keyed; DATA_GOV_API_KEY or DEMO_KEY). Input
congress_search_billsreadSearch Congress.gov BILLS/legislation (api.data.gov keyed; DATA_GOV_API_KEY or DEMO_KEY). Input optional
cve_lookupreadLook up NIST NVD CVE records (keyless; services.nvd.nist.gov CVE API 2.0) — exact by
datagov_search_datasetswriteSearch the data.gov DATASET CATALOG for federal open datasets across all publishing agencies (api.gsa.gov v4 Catalog API, keyed — DATA_GOV_API_KEY or the shared DEMO_KEY) — the replacement for the CKAN package_search endpoint data.gov RETIRED in 2025, restoring federal dataset DISCOVERY. Input
ecfr_get_sectiondestructiveGet the FULL in-force text of ONE CFR section by citation (the companion to ecfr_search, which returns only snippets). Input titleNumber (1–50) + section (e.g.
ecfr_list_titlesreadList all 50 CFR titles with name + last_amended_on date. Use to discover what
echo_facility_reportreadFetch the EPA ECHO Detailed Facility Report (DFR) for ONE facility by its FRS RegistryID (keyless) — the per-facility compliance / enforcement / inspection / permit deep-dive for competitor or acquisition-target due diligence. Input
edgar_company_conceptreadOne filer × one XBRL concept × complete reported time-series (keyless; data.sec.gov companyconcept), including amendment/restatement history. Sits between edgar_company_facts (many concepts, one filer) and edgar_xbrl_frames (one concept, all filers). start=null for INSTANT concepts. Input:
edgar_company_factsreadCurated XBRL financial facts for a filer (keyless, from data.sec.gov companyfacts). Input
edgar_company_filingsreadA company
edgar_daily_filing_indexreadPer-day sibling of edgar_filing_index. Per-day cross-filer SEC filing index (keyless; www.sec.gov EDGAR daily-index master.YYYYMMDD.idx) — reads ONE calendar day
edgar_filing_indexreadBulk sweep — per-filer edgar tools need a CIK. Bulk cross-filer SEC filing index for a quarter (keyless; www.sec.gov EDGAR full-index master.idx). Reads the WHOLE quarter
edgar_full_text_searchreadFull-text search across EDGAR filings, 2001-present (keyless, efts.sec.gov). Input
edgar_lookup_cikreadResolve a company ticker or name to its 10-digit SEC CIK (keyless, via SEC company_tickers.json). Input
edgar_xbrl_framesreadKeyless cross-filer XBRL cross-section (SEC EDGAR frames, data.sec.gov). In ONE call, return EVERY filer
epa_tri_facilitiesreadLook up EPA Toxics Release Inventory (TRI) reporting facilities by state / facility-name / county — an environmental-footprint / place-of-performance screen (EPA Envirofacts, keyless; data.epa.gov/efservice/tri_facility). Input:
fac_get_findingsreadDrill into audit-RISK findings for an entity from the Federal Audit Clearinghouse (keyless via api.data.gov DEMO_KEY; api.fac.gov PostgREST
fac_search_auditsreadSearch entity Single Audit summaries from the Federal Audit Clearinghouse (keyless via api.data.gov DEMO_KEY; api.fac.gov PostgREST
far_clause_lookupreadAuthoritative FAR/DFARS clause text + its PRESCRIPTION (the
far_compliance_matrixreadTurn a solicitation
far_searchreadFAR/DFARS-scoped semantic search — the
fdic_bank_failuresreadHistorical FDIC-insured bank failures & assistance transactions (keyless; api.fdic.gov/banks/failures). CERT links a failure back to fdic_search_institutions / fdic_institution_financials. Filters:
fdic_branch_depositsreadFDIC branch-deposit footprint — the Summary of Deposits (keyless FDIC BankFind, api.fdic.gov/banks/sod): the annual June-30 branch-office deposit distribution (
fdic_industry_summaryreadFDIC banking-sector ANNUAL AGGREGATES — total assets, deposits, net income, equity & net interest income + institution/office/branch/employee counts for the whole US OR one state, split by charter class (keyless; api.fdic.gov/banks/summary). Filters (all optional):
fdic_institution_financialsreadQuarterly financial time-series for ONE FDIC-insured institution by certificate number (keyless FDIC BankFind, api.fdic.gov/banks/financials). Input
fdic_search_institutionsreadSearch the FDIC-insured-institution directory (keyless FDIC BankFind, api.fdic.gov/banks/institutions) — a regulated-entity directory for B2G counterparty / bank due-diligence. Structured filters:
fed_register_get_documentreadFetch full detail for a Federal Register document by number. Returns title, abstract, citation, publication_date, effective_on, raw_text_url (for the full body), CFR references — everything needed to ground a regulation citation.
fed_register_list_agenciesreadList all Federal Register agencies with slugs (needed for fed_register_search_documents). Use to resolve
fed_register_public_inspectionreadFederal Register PUBLIC INSPECTION desk — documents FILED with the Office of the Federal Register but NOT YET published (a pre-publication LEADING INDICATOR, ~1-to-several days ahead of the official publication_date). mode:
fed_register_search_documentsreadSearch Federal Register documents (proposed rules, final rules, notices, presidential documents) by query / agency / type / date range. Use for regulatory-context queries (
fema_disaster_declarationsreadLook up FEMA disaster / emergency declarations by state, type, incident, year, or date (keyless OpenFEMA, dataset DisasterDeclarationsSummaries v2, ~70k rows). Structured filters (module-built into an OData $filter; each LIVE-VERIFIED to narrow):
fema_search_public_assistancereadSearch FEMA Public Assistance funded projects — federal emergency-assistance spend to state/local/tribal applicants (keyless OpenFEMA, dataset PublicAssistanceFundedProjectsDetails v2, ~800k rows). Structured filters (module-built into an OData $filter; each LIVE-VERIFIED to narrow):
fpds_search_awardsreadSearch FPDS-NG federal contract AWARD ACTIONS (keyless ATOM) — the AUTHORITATIVE system-of-record for contract actions (each modification is its own transaction), the source USAspending.gov derives from (and lags 1-2 days). Structured filters ONLY, AND-combined (NO raw query — a typo
fred_series_observationsreadFetch a FRED series
govinfo_get_packagereadFetch ONE GovInfo package
govinfo_search_packagesreadSearch GovInfo packages in a collection modified since a date (GPO-authoritative bulk publications; api.data.gov keyed). Input
grants_get_opportunityreadFetch full detail for a single grant opportunity by id. Returns found:true with description, agency, posting/response/archive dates, award_ceiling, award_floor, estimated_funding, expected_number_of_awards, applicant_types, funding_instruments, CFDA programs.
gsa_perdiem_ratesreadLook up GSA Federal Travel PER-DIEM rates — the max lodging + Meals & Incidental Expenses (M&IE) reimbursement ceilings for official U.S. government travel (api.gsa.gov /travel/perdiem/v2, keyed — DATA_GOV_API_KEY or the shared DEMO_KEY). Input: EITHER
hts_lookupwriteLook up US import-tariff classification + duty rates from the USITC Harmonized Tariff Schedule (keyless; hts.usitc.gov/reststop/search). A single
lda_search_filingsreadSearch US Senate LDA (Lobbying Disclosure Act) filings — who is paid how much to lobby which federal agency on which issue (lda.senate.gov/api/v1/filings, KEYLESS — anonymous access works; optional free LDA_API_KEY only raises the rate limit). Filters (all optional):
nhtsa_complaintsreadLook up NHTSA consumer COMPLAINTS for a specific vehicle — owner-filed safety complaints with the affected component, crash/fire flags, injury/death counts, and incident/filing dates (NHTSA /complaints/complaintsByVehicle; api.nhtsa.gov). KEYLESS — no API key is required or accepted. Input:
nhtsa_recallsreadLook up NHTSA vehicle safety RECALLS for a specific vehicle — the manufacturer
nist_800_53_controlsreadLook up NIST SP 800-53 Rev 5 security & privacy CONTROLS (keyless) — the requirement backbone for FedRAMP / CMMC / RMF compliance work. Complements cve_lookup + cisa_kev_lookup. Retrieve by
nonprofit_financialsreadFetch ONE US tax-exempt nonprofit
nppes_lookup_providerreadKeyless CMS/HHS NPPES NPI Registry — every US healthcare provider (NPI-1 individual + NPI-2 organization). EXACT-NPI mode (when
nsf_get_awardreadFetch ONE NSF award by its numeric award id (keyless; api.nsf.gov/services/v1/awards.json). Input
nsf_search_awardsreadSearch awarded NSF research-grant awards (keyless; api.nsf.gov/services/v1/awards.json), joinable to SAM/USAspending via ueiNumber/parentUeiNumber. Filters: keyword (MULTI-WORD is OR-tokenized —
ofac_screen_entityreadKeyless OFAC denied-party sanctions screening — the legally-required leg that SAM exclusions does NOT cover (31 CFR ch. V, strict-liability). Screens a
open_checkbook_searchreadRow-level vendor-payment search over a curated US-government **Socrata Open Expenditures** checkbook portal (keyless) — a SLED spending source. Some govs run Socrata
opengov_search_solicitationsreadList a government
regulations_get_docketreadFetch ONE Regulations.gov docket by id via /v4/dockets/{docketId} (api.data.gov keyed; DATA_GOV_API_KEY or DEMO_KEY) — the detail view where
regulations_search_docketsreadSearch Regulations.gov DOCKETS — the rulemaking/nonrulemaking CONTAINER that groups every document + comment under one regulatory action (api.data.gov keyed; DATA_GOV_API_KEY or the shared DEMO_KEY). Input
regulations_search_documentsreadSearch Regulations.gov rulemaking DOCUMENTS (rules, proposed rules, notices) — the flagship of the api.data.gov keyed source (JSON:API; DATA_GOV_API_KEY or the shared DEMO_KEY). Input
sam_attachment_urlreadBuild the public download URL for an attachment resourceId. The URL returns a 303 redirect to a signed S3 URL — fetch with redirect:
sam_fetch_descriptionreadReturn the full description / RFP body text for a notice as plain text. Useful when sam_get_opportunity returned a description URL instead of inline body, or for an LLM-friendly text dump.
sam_get_opportunityreadFetch full detail for a single SAM.gov notice by 32-char hex noticeId. Returns title, agency, solicitation #, POCs, response deadline, attachments (with download URLs), inline description body. Call BEFORE drafting bid/no-bid or compliance work.
sam_integrity_lookupreadKeyless ONE-CALL integrity screen —
sam_lookup_notice_fieldsreadBATCH-complete a sam_search_opportunities page in ONE call from the GSA daily bulk CSV (keyless). The keyless HAL list endpoint NULLS each result
sam_lookup_organizationreadResolve a SAM.gov federal-organization id to its canonical fullParentPathName (e.g.
sam_search_opportunitiesreadSearch SAM.gov federal contracting opportunities (keyless HAL). Returns up to 50 active notices with title, agency, NAICS, noticeId. Use for discovery — narrow with NAICS / agency / set-aside / state.
sam_search_shapingreadPRE-SOLICITATION shaping radar (keyless HAL). Surfaces Sources Sought / Presolicitation / Special Notices BEFORE the RFP exists — the free, real-time analogue of paid agency-forecast feeds. Closes the pre-solicitation lifecycle gap: catch a requirement while it
sam_search_wage_determinationsreadFind the Service Contract Act (SCA) or Davis-Bacon Act (DBA) wage determination(s) for a locality (keyless SAM SGS). For a Davis-Bacon lookup pass state + county + constructionType (e.g.
sba_size_standardreadSBA small-business size standard for a 6-digit NAICS (keyless sba.gov naics.json). Answers
search_gov_domainsreadSearch the authoritative US .gov domain registry (CISA get.gov) — resolve which ORGANIZATION owns a .gov domain, enumerate federal agencies, and MAP SLED entities (state/county/city/school-district/special-district/tribal) for market targeting. Keyless. scope
socrata_discover_datasetsreadFind Socrata dataset 4x4 ids by keyword via the Socrata catalog (keyless, api.us.socrata.com). Input
tableau_view_csvreadFetch a curated US-government **Tableau Server Guest** view
treasury_avg_interest_ratesreadAverage interest rate the US Treasury pays by security type/description (keyless Treasury Fiscal Data). Returns record_date, securityType, securityDescription, avgInterestRatePercent (percent, number|null).
treasury_debt_to_pennyreadDaily total US public debt outstanding (
treasury_monthly_statementreadMonthly Treasury Statement (MTS table 1, keyless): federal receipts, outlays, and deficit/surplus by month. Returns record_date, classification, grossReceipts, grossOutlays, deficitSurplus (USD, number|null).
usas_autocomplete_naicsreadAutocomplete NAICS codes by free-text. ANTI-HALLUCINATION GUARD — call this when the user mentions a NAICS theme but no specific code (e.g.
usas_autocomplete_recipientreadAutocomplete recipient names. ANTI-HALLUCINATION — confirm a recipient
usas_disaster_spendingreadDisaster / emergency-fund spending BY GEOGRAPHY — obligations or outlays tagged to one or more Disaster Emergency Fund Codes (DEFC: COVID-19, IIJA, etc.), broken out per state / county / congressional district (keyless USAspending disaster/spending_by_geography). Answers
usas_get_agency_budget_functionreadBudget function breakdown for an agency × fiscal year. Returns the agency
usas_get_agency_profilereadGet full agency profile by toptier code (3-4 digits, from usas_lookup_agency). Returns mission, abbreviation, website, subtier_agency_count, congressional_justification_url.
usas_get_award_detailreadFetch full detail for a single award by generatedInternalId (from usas_search_individual_awards). Returns period_of_performance (start/end/potential_end), base_and_all_options, set-aside type, competition extent, number_of_offers — the per-award fields the search endpoint omits.
usas_get_recipient_profilereadFull recipient detail by recipient_id (from usas_search_recipients). Returns alternate_names (M&A history), DUNS, UEI, parent linkage, business_types, location, total_amount, total_transactions.
usas_glossaryreadUSAspending glossary of 151 federal-spending terms. Use to confirm terminology (
usas_list_disaster_codesreadList the Disaster Emergency Fund Codes (DEFC) — the supplemental-appropriation tags (COVID-19 relief, IIJA/infrastructure, and other emergency laws) that usas_disaster_spending filters on. Keyless USAspending references/def_codes. Returns the COMPLETE code set (no pagination): each
usas_list_toptier_agenciesreadList all toptier federal agencies with toptier_code, abbreviation, slug, current-FY obligations. Use for
usas_lookup_agencyreadResolve a user-friendly agency reference (
usas_naics_hierarchyreadNavigate the NAICS hierarchy (2→4→6 digit) + active-contract count per code. No naicsFilter ⇒ the top-level 2-digit sectors. With naicsFilter=<code> ⇒ that node is in
usas_search_agency_spendingreadSpending broken down by awarding agency. Use for
usas_search_awardsreadAggregate share-of-wallet on USAspending. Given an agency × NAICS × fiscal year, returns top recipients by total obligated $ ONLY — per-recipient award COUNTS are NOT returned by this endpoint (
usas_search_awards_by_recipientreadPull every contract a specific recipient has won within an agency × NAICS slice. Use when the user asks
usas_search_cfda_spendingreadSpending broken down by CFDA grant program code. Use for grant analysis —
usas_search_federal_account_spendingreadSpending broken down by federal account / Treasury Account Symbol (TAS). Use to map money to the actual budget line item (e.g.
usas_search_individual_awardsreadLine-item federal contracts on USAspending. Returns specific awards (recipient + $ + sub-agency + state + description). Use AFTER usas_search_awards when the user wants
usas_search_psc_spendingreadSpending broken down by Product Service Code (PSC). Use for
usas_search_recipientsreadSearch USAspending recipient list with parent/child/recipient hierarchy. Returns recipients with id, duns, uei, level (P=parent, C=child, R=recipient), total_amount. Use for
usas_search_recompetesreadRecompete radar — federal contracts whose CURRENT period of performance ends inside a window around today (default -90d .. +18mo), sorted soonest-first. Use for
usas_search_state_spendingreadSpending broken down by state / territory. Use for
usas_search_subagency_spendingreadBreak down a parent agency
usas_search_subawardsreadEnumerate federal subawards (subcontracts), optionally filtered by SUBAWARDEE name. Use for
usas_spending_over_timereadTime-series aggregation of federal CONTRACT spending (award types A/B/C/D — grants, IDVs, loans, and other obligation types are EXCLUDED, matching the other usas_search_*_spending tools; disclosed in _meta). Group by fiscal_year / quarter / month, filter by agency / NAICS / set-aside. Use for
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (8 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (14)

CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
skills/sam-gov/SKILL.md:445
**Never post anything yourself** — the server only builds the link; the human opens and submits it. The repo is public, so never put secrets, personal data, or sensitive query values in `summary` (and
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
lint-invariants.mjs:241
console.log(`✓ disclosure-tokenizer lint: 0 whitespace-only multi-token disclosure splits across ${files.length} src files (the only sanctioned tokenizer is tokenizeForDisclosure; ${optOuts.length} al
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
dist/tableau.js:88
const text = body.replace(/^/, ""); // strip a leading UTF-8 BOM if present
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/tableau.ts:105
const text = body.replace(/^/, ""); // strip a leading UTF-8 BOM if present
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
ecfr_get_section
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.c8rc.json
.c8rc.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
docs/.nojekyll
.nojekyll
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWNetwork egress · net.metadata_ip · CWE-200, CWE-319
SECURITY.md:38
of AWS S3; an unverifiable/hidden redirect target is rejected). Internal IPs, cloud-metadata endpoints (`169.254.169.254`),
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, unpdf, zod, @anthropic-ai/mcpb, @types/node, c8, tsx, typescript
Why it matters. 8 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:250
- **`feedback` tool** (143rd tool, keyless): returns a PREFILLED GitHub new-issue link (`kind` = bug / feature / wrong_output) for the human to open and submit. The server never posts — no token, no a
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:548
**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 serv
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
fault-injection-test.mjs
fault-injection-test.mjs
Why it matters. 2079101 bytes not read
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
PRIVACY.md:15
- **Optional API keys** (for sources such as Census, FRED, BEA, DOL, and a few others that offer higher limits with a free key) are read from your local environment variables and are sent **only** to
Why it matters. asks the agent to read credentials

Gates applied: critical_finding, no_behavioural_pass, undeclared_transfer.

Audited 2026-10-10 · audit v0.4.1 · source sha da30bd343e34full audit observations/trust-audit/mcp-server/cliwant__mcp-sam-gov.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-10da30bd343e34BLOCKD69first audit
06

Questions

What is the mcp-sam-gov MCP server?

Keyless-first MCP server — 150 tools for US federal + state/local (SLED) government contracting, spending, regulation & partner vetting. SAM.gov, USAspending, Grants.gov, OFAC, FDIC, EPA, CourtListener + 45 more. No API key. Honesty-hardened.

What tools does mcp-sam-gov expose?

114 in total: 111 read-only, 2 that write, and 1 that can delete or overwrite (ecfr_get_section). Every one is listed on this page with its risk.

Is mcp-sam-gov safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does mcp-sam-gov need?

It reads BEA_API_KEY, BLS_API_KEY, CENSUS_API_KEY, COURTLISTENER_API_TOKEN, DATA_GOV_API_KEY, DOL_API_KEY, FRED_API_KEY, LDA_API_KEY, NVD_API_KEY, OPENFDA_API_KEY, SAM_GOV_API_KEY and SOCRATA_APP_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does mcp-sam-gov run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @cliwant/mcp-sam-gov at 1.17.0.

How current is this page?

The grade is for one exact copy of the source (da30bd343e34), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement