# SAM.gov & US Government Contracting MCP server

> Search US federal and state/local contracting data, awards, grants, regulations and vendor-vetting records from public government sources.

- Listing: https://mcp.tc/i/sam-gov-us-government-contracting
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: API key
- Category: [Search & Web Data](https://mcp.tc/c/search-web)
- Vendor: Cliwant
- Homepage: <https://cliwant.github.io/mcp-sam-gov/>
- Docs: <https://github.com/cliwant/mcp-sam-gov>
- Repository: <https://github.com/cliwant/mcp-sam-gov>
- Package: npm `@cliwant/mcp-sam-gov`

## About

Wraps public US government data sources for contracting work: SAM.gov solicitations, Grants.gov, OpenGov and Bonfire bids, USAspending and FPDS awards, plus regulation sources such as the Federal Register, eCFR and FAR/DFARS. It also covers partner vetting through OFAC sanctions, SAM exclusions, FAC audits, FDIC financials, EPA ECHO, product recalls and CourtListener litigation. The registry lists 153 tools; 26 are shown here.

Runs locally over stdio with npx (@cliwant/mcp-sam-gov) or as a Claude Desktop extension bundle. Most tools need no API key. A few optional or required keys (SAM.gov, Census, FRED, BEA, DOL) are set as environment variables. Independent project, not affiliated with SAM.gov or the GSA.

## What it can do

- Search SAM.gov solicitations and read notice details, contacts and attachments
- Find federal grants and state/local bids on OpenGov and Bonfire
- Analyze federal awards, subawards, expiring contracts and spending over time
- Screen entities against OFAC sanctions and SAM exclusions
- Check FDIC, single-audit, EPA and recall records for vendor vetting
- Search court opinions and dockets on bid protests and False Claims Act matters
- Look up FAR clauses, Federal Register documents, eCFR and NIST 800-53 controls

## Tools (26)

- `sam_search_opportunities`: Search SAM.gov federal solicitations without an API key.
- `sam_get_opportunity`: Full detail for a SAM.gov notice: SOW, contacts, attachments.
- `grants_search`: Search Grants.gov federal grant opportunities.
- `opengov_search_solicitations`: Search state and local bids on OpenGov Procurement.
- `bonfire_search_opportunities`: Search state and local open bids on Bonfire.
- `usas_search_individual_awards`: Line-item federal contract awards by recipient, amount and state.
- `usas_search_awards_by_recipient`: A recipient's win history for an agency and NAICS slice.
- `usas_search_expiring_contracts`: Find contracts expiring soon for recompete tracking.
- `usas_spending_over_time`: Federal spending time series by year, quarter or month.
- `usas_search_subawards`: Subcontracts on prime awards to map the supply chain.
- `fpds_search_awards`: Search FPDS federal procurement award records.
- `ofac_screen_entity`: Screen an entity against OFAC SDN and consolidated sanctions lists.
- `sam_check_exclusions`: Screen against SAM.gov exclusions (debarment).
- `fdic_institution_financials`: FDIC bank financials and health for partner vetting.
- `fac_search_audits`: Search federal single-audit findings from the FAC.
- `echo_search_facilities`: EPA ECHO environmental compliance and enforcement records.
- `openfda_enforcement`: FDA recalls and enforcement actions against a supplier's products.
- `nhtsa_recalls`: NHTSA vehicle and equipment recalls.
- `cpsc_recalls`: CPSC consumer-product recalls.
- `courtlistener_search_opinions`: Search federal court opinions and bid protests on CourtListener.
- `courtlistener_search_dockets`: Search RECAP dockets for False Claims Act and qui tam matters.
- `fed_register_search_documents`: Search Federal Register rules and notices.
- `ecfr_search`: Full-text search of the CFR, including Title 48 (FAR).
- `far_clause_lookup`: Look up FAR and DFARS clause text.
- `nist_800_53_controls`: NIST SP 800-53 security and privacy controls for FedRAMP and CMMC.
- `usas_autocomplete_naics`: Autocomplete NAICS codes to avoid invented codes.

## Example prompts

- "Find active SAM.gov solicitations under NAICS 541512 closing this month"
- "Show contracts expiring soon at the VA in NAICS 541512"
- "Screen this company for OFAC sanctions and SAM exclusions"
- "Look up the FAR clause for subcontracting plans"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio sam-gov-us-government-contracting --env "SAM_GOV_API_KEY=<YOUR_SAM_GOV_API_KEY>" --env "CENSUS_API_KEY=<YOUR_CENSUS_API_KEY>" --env "FRED_API_KEY=<YOUR_FRED_API_KEY>" --env "BEA_API_KEY=<YOUR_BEA_API_KEY>" --env "BLS_API_KEY=<YOUR_BLS_API_KEY>" --env "DOL_API_KEY=<YOUR_DOL_API_KEY>" --env "DATA_GOV_API_KEY=<YOUR_DATA_GOV_API_KEY>" --env "NVD_API_KEY=<YOUR_NVD_API_KEY>" -- npx -y @cliwant/mcp-sam-gov
```

2. Start Claude Code and type `/mcp`. **sam-gov-us-government-contracting** should show as connected.

Add `--scope user` to make it available in every project. Replace the placeholders with your own values.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "sam-gov-us-government-contracting": {
      "command": "npx",
      "args": [
        "-y",
        "@cliwant/mcp-sam-gov"
      ],
      "env": {
        "SAM_GOV_API_KEY": "<YOUR_SAM_GOV_API_KEY>",
        "CENSUS_API_KEY": "<YOUR_CENSUS_API_KEY>",
        "FRED_API_KEY": "<YOUR_FRED_API_KEY>",
        "BEA_API_KEY": "<YOUR_BEA_API_KEY>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>",
        "DOL_API_KEY": "<YOUR_DOL_API_KEY>",
        "DATA_GOV_API_KEY": "<YOUR_DATA_GOV_API_KEY>",
        "NVD_API_KEY": "<YOUR_NVD_API_KEY>"
      }
    }
  }
}
```

2. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=sam-gov-us-government-contracting&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjbGl3YW50L21jcC1zYW0tZ292Il0sImVudiI6eyJTQU1fR09WX0FQSV9LRVkiOiI8WU9VUl9TQU1fR09WX0FQSV9LRVk%2BIiwiQ0VOU1VTX0FQSV9LRVkiOiI8WU9VUl9DRU5TVVNfQVBJX0tFWT4iLCJGUkVEX0FQSV9LRVkiOiI8WU9VUl9GUkVEX0FQSV9LRVk%2BIiwiQkVBX0FQSV9LRVkiOiI8WU9VUl9CRUFfQVBJX0tFWT4iLCJCTFNfQVBJX0tFWSI6IjxZT1VSX0JMU19BUElfS0VZPiIsIkRPTF9BUElfS0VZIjoiPFlPVVJfRE9MX0FQSV9LRVk%2BIiwiREFUQV9HT1ZfQVBJX0tFWSI6IjxZT1VSX0RBVEFfR09WX0FQSV9LRVk%2BIiwiTlZEX0FQSV9LRVkiOiI8WU9VUl9OVkRfQVBJX0tFWT4ifX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "sam-gov-us-government-contracting": {
      "command": "npx",
      "args": [
        "-y",
        "@cliwant/mcp-sam-gov"
      ],
      "env": {
        "SAM_GOV_API_KEY": "<YOUR_SAM_GOV_API_KEY>",
        "CENSUS_API_KEY": "<YOUR_CENSUS_API_KEY>",
        "FRED_API_KEY": "<YOUR_FRED_API_KEY>",
        "BEA_API_KEY": "<YOUR_BEA_API_KEY>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>",
        "DOL_API_KEY": "<YOUR_DOL_API_KEY>",
        "DATA_GOV_API_KEY": "<YOUR_DATA_GOV_API_KEY>",
        "NVD_API_KEY": "<YOUR_NVD_API_KEY>"
      }
    }
  }
}
```

Needs Node.js on your computer. Replace the placeholders with your own values.

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the secret the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "sam-gov-us-government-contracting": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cliwant/mcp-sam-gov"
      ],
      "env": {
        "SAM_GOV_API_KEY": "${input:sam-gov-api-key}",
        "CENSUS_API_KEY": "${input:census-api-key}",
        "FRED_API_KEY": "${input:fred-api-key}",
        "BEA_API_KEY": "${input:bea-api-key}",
        "BLS_API_KEY": "${input:bls-api-key}",
        "DOL_API_KEY": "${input:dol-api-key}",
        "DATA_GOV_API_KEY": "${input:data-gov-api-key}",
        "NVD_API_KEY": "${input:nvd-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "sam-gov-api-key",
      "description": "SAM_GOV_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "census-api-key",
      "description": "CENSUS_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "fred-api-key",
      "description": "FRED_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "bea-api-key",
      "description": "BEA_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "bls-api-key",
      "description": "BLS_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dol-api-key",
      "description": "DOL_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "data-gov-api-key",
      "description": "DATA_GOV_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "nvd-api-key",
      "description": "NVD_API_KEY",
      "password": true
    }
  ]
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "sam-gov-us-government-contracting": {
      "command": "npx",
      "args": [
        "-y",
        "@cliwant/mcp-sam-gov"
      ],
      "env": {
        "SAM_GOV_API_KEY": "<YOUR_SAM_GOV_API_KEY>",
        "CENSUS_API_KEY": "<YOUR_CENSUS_API_KEY>",
        "FRED_API_KEY": "<YOUR_FRED_API_KEY>",
        "BEA_API_KEY": "<YOUR_BEA_API_KEY>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>",
        "DOL_API_KEY": "<YOUR_DOL_API_KEY>",
        "DATA_GOV_API_KEY": "<YOUR_DATA_GOV_API_KEY>",
        "NVD_API_KEY": "<YOUR_NVD_API_KEY>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add sam-gov-us-government-contracting --env "SAM_GOV_API_KEY=<YOUR_SAM_GOV_API_KEY>" --env "CENSUS_API_KEY=<YOUR_CENSUS_API_KEY>" --env "FRED_API_KEY=<YOUR_FRED_API_KEY>" --env "BEA_API_KEY=<YOUR_BEA_API_KEY>" --env "BLS_API_KEY=<YOUR_BLS_API_KEY>" --env "DOL_API_KEY=<YOUR_DOL_API_KEY>" --env "DATA_GOV_API_KEY=<YOUR_DATA_GOV_API_KEY>" --env "NVD_API_KEY=<YOUR_NVD_API_KEY>" -- npx -y @cliwant/mcp-sam-gov
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.sam-gov-us-government-contracting]
command = "npx"
args = ["-y", "@cliwant/mcp-sam-gov"]
env = { SAM_GOV_API_KEY = "<YOUR_SAM_GOV_API_KEY>", CENSUS_API_KEY = "<YOUR_CENSUS_API_KEY>", FRED_API_KEY = "<YOUR_FRED_API_KEY>", BEA_API_KEY = "<YOUR_BEA_API_KEY>", BLS_API_KEY = "<YOUR_BLS_API_KEY>", DOL_API_KEY = "<YOUR_DOL_API_KEY>", DATA_GOV_API_KEY = "<YOUR_DATA_GOV_API_KEY>", NVD_API_KEY = "<YOUR_NVD_API_KEY>" }
```

Needs Node.js on your computer. Replace the placeholders with your own values.

### Gemini CLI

```bash
gemini mcp add -e "SAM_GOV_API_KEY=<YOUR_SAM_GOV_API_KEY>" -e "CENSUS_API_KEY=<YOUR_CENSUS_API_KEY>" -e "FRED_API_KEY=<YOUR_FRED_API_KEY>" -e "BEA_API_KEY=<YOUR_BEA_API_KEY>" -e "BLS_API_KEY=<YOUR_BLS_API_KEY>" -e "DOL_API_KEY=<YOUR_DOL_API_KEY>" -e "DATA_GOV_API_KEY=<YOUR_DATA_GOV_API_KEY>" -e "NVD_API_KEY=<YOUR_NVD_API_KEY>" sam-gov-us-government-contracting npx -- -y @cliwant/mcp-sam-gov
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "sam-gov-us-government-contracting": {
      "command": "npx",
      "args": [
        "-y",
        "@cliwant/mcp-sam-gov"
      ],
      "env": {
        "SAM_GOV_API_KEY": "<YOUR_SAM_GOV_API_KEY>",
        "CENSUS_API_KEY": "<YOUR_CENSUS_API_KEY>",
        "FRED_API_KEY": "<YOUR_FRED_API_KEY>",
        "BEA_API_KEY": "<YOUR_BEA_API_KEY>",
        "BLS_API_KEY": "<YOUR_BLS_API_KEY>",
        "DOL_API_KEY": "<YOUR_DOL_API_KEY>",
        "DATA_GOV_API_KEY": "<YOUR_DATA_GOV_API_KEY>",
        "NVD_API_KEY": "<YOUR_NVD_API_KEY>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer. Replace the placeholders with your own values.

## Details

- Server version: 1.17.0
- Last checked: 2026-10-04
- Listed: 2026-10-04
- Updated: 2026-10-04

---
Source: https://mcp.tc/i/sam-gov-us-government-contracting (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
