Skip to main content
Glama
US Federal Procurement MCP

US Federal Procurement MCP

by omardaaboul

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.


Related MCP server: GovCon

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. Set SAM_GOV_API_KEY. The provider (SAMGovProvider) already talks to api.sam.gov/opportunities/v2/search and 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_solicitation never produces a confident fit from missing evidence: unknown notices and empty text return insufficient_information.

  • Provider results are typed (ProviderResult): ok, no_matches, authentication_error, rate_limited, upstream_error, parse_error, no_key. Asking for sam_gov without a key returns no_key — never a silent, misleading empty list.

  • All data is honestly labeled by source (bundled_sample vs sam_gov).

Available Tools

9 tools
analyze_solicitationA

Evidence-backed small-business fit assessment + red-flag scan.

Provide either a notice_id (looked up from live SAM.gov or the sample pool) or pasted text of a solicitation. Returns one of: insufficient_information / likely_mismatch / requires_capability_review / potential_fit, with the evidence reviewed, gates, and what's missing.

Effortless proof rule: missing evidence can NEVER produce a confident fit.

Inputs: text, source, notice_id, set_aside, +3 more.

federal_thresholdsA

Return federal procurement thresholds (USD) with source provenance (citation, effective date, superseded value). Names: micro_purchase_general, simplified_acquisition_threshold, miller_act_bond, subcontracting_plan_services, subcontracting_plan_construction.

Inputs: name.

look_up_naicsA

Map a goods/services description to NAICS sectors (note: curated 2-digit sectors).

Inputs: query.

look_up_set_asideB

Explain a SAM.gov set-aside (official codes: SBA, SBP, 8A, 8AN, HZC, HZS, WOSB, WOSBSS, EDWOSB, EDWOSBSS, SDVOSBC, SDVOSBS, VSA ...).

Inputs: code_or_label (required).

market_snapshot_toolC

Overview of available federal opportunities: set-asides, NAICS sectors, agencies, typical values, and urgent deadlines.

Inputs: state, set_aside, max_results.

opportunity_detailsA

Full structured record for one opportunity by notice id (live SAM.gov if available, else sample pool). Sensitive/noisy fields are behind detail=true.

Inputs: notice_id (required), source.

opportunity_typeA

Explain a SAM.gov opportunity type (ptype) code. Official: o=Solicitation, k=Combined Synopsis/Solicitation, r=Sources Sought, p=Presolicitation, u=J&A, a=Award, s=Special Notice, g=Surplus, i=Intent to Bundle.

Inputs: code (required).

search_opportunitiesA

Search federal contract opportunities (beta.SAM.gov).

Filters: free-text query, agency, set-aside (small/8a/hubzone/wosb/sdvosb), NAICS (sector or 2-6 digit code), performance state (2-letter), opportunity type code, value range (USD), and response-deadline window. Returns typed results distinguishing no-match from an upstream failure.

Inputs: limit, naics, query, state, +7 more. Returns: Structured, typed provider result (audit P0-5).

solicitation_reviewA

Phase-3 evidence-backed solicitation review.

Looks up the notice (live SAM.gov by notice id, else sample), fetches the full description and attachment metadata (bounded, content-type checked), then combines BIDDER CAPABILITY facts with source-linked extraction of submission instructions, evaluation factors, mandatory clauses, period/place, and amendment history.

Missing bidder facts or missing documents surface as findings — a gap can never inflate the result toward 'potential_fit'.

Inputs: notice_id (required), source, capabilities, certifications, +7 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 9 tools

    Disambiguation4/5

    Most tools have distinct purposes: search vs details vs analysis vs reference lookups are clearly separated. However, analyze_solicitation and solicitation_review overlap in solicitation-focused assessment, and market_snapshot_tool could be confused with search_opportunities by agents looking for an overview.

    Naming Consistency3/5

    Most tools use verb_noun patterns like search_opportunities, look_up_naics, analyze_solicitation, and federal_thresholds. This is inconsistent with market_snapshot_tool and opportunity_details, which use noun_phrase naming, and the mix of 'look_up' vs 'lookup' style is not fully predictable.

    Tool Count5/5

    Nine tools is a well-scoped size for a federal procurement domain, covering search, reference, and analysis workflows without bloat. Each tool serves a distinct functional area, and the count feels neither thin nor overwhelming.

    Completeness4/5

    The server covers core workflows: searching opportunities, viewing details, understanding codes/classifications, and analyzing solicitation fit. Minor gaps exist, such as no direct tool for listing agencies or saving/tracking opportunities, but the main user journey is supported end-to-end.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables research of federal contract awards and competitive landscape analysis using the USASpending.gov API. Supports searching for contracts, analyzing recipients, tracking spending trends, and identifying market opportunities in government contracting.
      2
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Federal procurement intelligence toolkit that searches SAM.gov contract opportunities, analyzes agency spending patterns, tracks competitor wins, and monitors small business set-aside programs (8a, HUBZone, SDVOSB, WOSB). 4 tools using SAM.gov and USASpending.gov data.
      3
      -
    • A
      license
      A
      quality
      B
      maintenance
      Search and analyze U.S. federal government contracts and opportunities from SAM.gov. Tools for keyword search, contract details, competitive analysis, and capability statement drafting — built for AI agents via x402 USDC micropayments.
      3
      2
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to search federal contracts, analyze agency spending, track competitor wins, and monitor small business set-aside opportunities using SAM.gov, USASpending.gov, and FPDS data.
      1
      -