Metadata-Version: 2.4
Name: govconapi-mcp
Version: 0.1.0
Summary: MCP server for GovCon API – federal contract opportunities, awards, and exclusions in Claude/ChatGPT/any MCP client
Project-URL: Homepage, https://govconapi.com
Project-URL: Documentation, https://govconapi.com/api-guide
Project-URL: Repository, https://github.com/rozetyp/sam-api
Author-email: GovCon API <support@govconapi.com>
License: MIT
Keywords: claude,federal-contracts,govcon,mcp,model-context-protocol,sam-gov
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Requires-Dist: mcp>=1.0.0
Description-Content-Type: text/markdown

# GovCon API — MCP Server

Federal contract opportunities, awards, and exclusions inside Claude Desktop, ChatGPT, or any MCP-compatible client.

Ask in natural language:

> "Find DoD cybersecurity solicitations posted this month over $1M."

> "What's the canonical SAM.gov agency name for FEMA?"

> "Has Acme Corp ever been excluded from federal contracts?"

> "Show me everything that changed since yesterday."

Powered by [GovCon API](https://govconapi.com) — a clean SAM.gov data layer.

---

## Install

```bash
pip install govconapi-mcp
```

You'll need:

- Python 3.10+
- A GovCon API key — [free 14-day trial](https://govconapi.com), no credit card

---

## Configure Claude Desktop

Add to your Claude Desktop config file:

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "govconapi": {
      "command": "govconapi-mcp",
      "env": {
        "GOVCONAPI_KEY": "gca_your_key_here"
      }
    }
  }
}
```

Restart Claude Desktop. You'll see the GovCon tools appear in the tool picker.

---

## Tools

| Tool | What it does |
|------|--------------|
| `search_opportunities` | Search SAM.gov opportunities by NAICS, PSC, agency, state, keywords, set-aside, dates, value range |
| `get_opportunity` | Fetch one opportunity by notice_id (50+ fields) |
| `recent_changes` | Incremental sync — what's new since a timestamp |
| `lookup_agency` | Resolve "FEMA" / "DoD" / "VA" to canonical SAM.gov agency strings |
| `check_exclusion` | Debarment screening by name, UEI, or CAGE code |
| `search_awards` | Find who won contracts (company, amount, date) |

---

## Example Claude prompts

- *"Search for HUBZone-set-aside opportunities in NAICS 541330 posted after April 1."*
- *"What agency string should I use to filter for all FEMA contracts?"*
- *"Find Award Notice records over $5M in California from the last 30 days."*
- *"Has [vendor name] ever appeared on the exclusions list?"*
- *"What's changed in the federal contracts dataset since 2026-04-12?"*

---

## Plan limits

- **Free Trial:** 25 requests/day for 14 days
- **Developer ($19/mo):** 1,000 requests/hour, all filters, CSV export
- **Pro Bundle ($39/mo):** Everything in Developer + unlimited GovCon Contacts directory

See [govconapi.com/pricing](https://govconapi.com/pricing).

---

## Troubleshooting

**"GOVCONAPI_KEY environment variable is not set"**
Add the env var to your Claude Desktop MCP config (see above) and restart Claude.

**"Invalid API key"**
Get a new one at [govconapi.com](https://govconapi.com) — keys start with `gca_`.

**"At least one filter required"**
The `search_opportunities` tool requires at least one filter (naics, keywords, state, etc.). If you want a bulk dump, use `recent_changes` instead.

**Rate limited (429)**
Free trial: 25 calls/day. Developer: 1,000/hour. Wait or upgrade.

---

## License

MIT

## Support

[support@govconapi.com](mailto:support@govconapi.com)
