US Federal Procurement MCP
Enables searching and filtering federal contract opportunities by keyword, agency, set-aside, NAICS, and more from any MCP client. Analyzes solicitations for small-business fit and risk, and provides reference lookups for NAICS codes, set-asides, and federal thresholds.
README
US Federal Procurement MCP
Federal contracting intelligence for small businesses — as an MCP server. Search contract opportunities, understand set-asides and NAICS codes, and analyze solicitations for small-business fit and risk — from inside Claude, Cursor, or any MCP client.
This fills the biggest gap in US small-business (SBA) contracting: an LLM trained on the public internet cannot know current contract opportunities or reliably recall the set-aside rules, FAR thresholds, and NAICS structure that determine whether a bid is even worth pursuing. This server makes that real and queryable.
Tools (9)
| Tool | What it does |
|---|---|
search_opportunities |
Search federal opportunities by keyword / agency / set-aside / NAICS / state / value / deadline |
market_snapshot_tool |
Set-aside, sector, agency & value overview + urgent deadlines |
analyze_solicitation |
Evidence-backed small-business fit assessment (insufficient / mismatch / review / potential) + red-flag scan (bonds, turnover, past-performance) |
solicitation_review |
Phase-3 deep review: fetches full notice + attachments, combines a bidder capability profile with source-linked extraction (instructions, evaluation factors, clauses, amendments) |
look_up_naics |
Translate a description into NAICS sectors |
look_up_set_aside |
Explain a set-aside (Small Business, 8(a), HUBZone, WOSB, SDVOSBC…) |
federal_thresholds |
Micro-purchase, SAT, Miller Act bond, subcontracting-plan thresholds |
opportunity_details |
Full record (incl. POC, links, award) + state name for one opportunity — live or sample |
opportunity_type |
What a SAM.gov type code means (sources sought, solicitation, J&A…) |
Everything is deterministic, typed, and honest about its data source.
Install & run
python3 -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/pytest tests/ -q # 84 tests incl. real MCP stdio integration
.venv/bin/us-gov-mcp # or: .venv/bin/python -m usgovmcp.server
Connect a client
Claude Desktop / Claude Code / Cursor → see configs/mcp-config.json
(canonical example: same JSON works for Claude Desktop and Cursor; for Claude Code,
use claude mcp add). Set PYTHONPATH to this repo; optionally add a SAM_GOV_API_KEY.
Data
- Default: a bundled set of clearly-labeled sample opportunities so it works and is tested with no key.
- Live (SAM.gov): get a free public API key from your SAM.gov account →
Account Details → request a public API key. SetSAM_GOV_API_KEY. The provider (SAMGovProvider) already talks toapi.sam.gov/opportunities/v2/searchand is unit-tested against the real response shape. Live data is never faked — until a key is set, labeled samples are returned.
Layout
us-gov-mcp/
├── usgovmcp/
│ ├── server.py ← FastMCP server wiring all tools
│ ├── knowledge.py ← NAICS, set-asides, FAR thresholds, red-flag rules
│ ├── analyzer.py ← evidence-backed fit assessment + red-flag scan
│ ├── solicit.py ← bidder capability profile + source-linked extraction (Phase 3)
│ ├── providers.py ← bundled + SAM.gov live providers
│ ├── models.py ← typed Opportunity / search params / ProviderResult
│ ├── intel.py ← market-snapshot aggregation
│ └── sample_data.py ← labeled demo opportunities
├── configs/
├── scripts/smoke.py ← CI startup check (fails pipeline on broken server)
├── scripts/secret_scan.sh ← CI gate: blocks committed credentials
├── cache.py ← bounded TTL cache (protects SAM.gov quota)
├── tests/ ← 84 tests incl. real stdio protocol integration
├── constraints.txt ← tested/locked dependency set for releases
├── CONTRIBUTING.md SECURITY.md LICENSE CHANGELOG.md
├── pyproject.toml ← also ruff + mypy config
└── README.md
CI runs two jobs: test (Python 3.10/3.11/3.12) and quality (ruff
lint + format check, mypy, package build, secret scan).
MIT licensed. Not legal advice — always read the full solicitation before bidding.
Trust & evidence rules
analyze_solicitationnever produces a confident fit from missing evidence: unknown notices and empty text returninsufficient_information.- Provider results are typed (
ProviderResult):ok,no_matches,authentication_error,rate_limited,upstream_error,parse_error,no_key. Asking forsam_govwithout a key returnsno_key— never a silent, misleading empty list. - All data is honestly labeled by source (
bundled_samplevssam_gov).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.