MCP server exposing the GovContractScout US government contracts API to AI agents.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y govcontractscout-mcp
MCP client config
{
"mcpServers": {
"govcontractscout": {
"command": "npx",
"args": [
"-y",
"govcontractscout-mcp"
]
}
}
}Model Context Protocol (MCP) server exposing the GovContractScout US state & local government contracts API to AI agents. Search live contracts, pull details, look up NAICS codes, list states, and score contract fit — without raw HTTP.
AI agent (Claude, Cursor, etc.) ⇄ MCP ⇄ GovContractScout /v1 API ⇄ 50-state procurement data
| Tool | Description |
|---|---|
search_contracts | Search active government contracts by state, NAICS, keyword (returns title, agency, due date, match signals) |
get_contract | Fetch one contract's full record by ID (includes the original solicitation link + documents) |
search_naics | Look up NAICS codes by keyword |
get_states | List the states we index + live contract counts |
score_contract | Score a contract's fit for a business profile (uses /v1/match) |
win_likelihood | Estimate win probability vs the historical award archetype — derived data, paid |
archetypes | List winning-business archetypes — who wins what — derived data, paid |
All tools hit the same /v1 API as the public REST endpoint — same data, same auth, same rate limits. Live data from state procurement portals, updated daily.
gcs_live_...) — free tier works (100 calls/month); paid tiers for production. Get one at scout.govbidportals.com/api-keys — instant, no card.claude mcp add govcontractscout \
--env GCS_API_KEY=gcs_live_YOUR_KEY \
-- npx -y govcontractscout-mcp
{
"mcpServers": {
"govcontractscout": {
"command": "npx",
"args": ["-y", "govcontractscout-mcp"],
"env": {
"GCS_API_KEY": "gcs_live_YOUR_KEY"
}
}
}
}
npm install && npm run build
GCS_API_KEY=gcs_live_YOUR_KEY node dist/index.js
| Variable | Required | Default | Description |
|---|---|---|---|
GCS_API_KEY | ✅ | — | Your API key from the dashboard |
GOVCONTRACTSCOUT_API_BASE | ❌ | https://scout.govbidportals.com | API base URL override (self-hosting) |
Ask your agent:
"Find open IT services contracts in California due this month, then score the top one for a 10-person consulting firm with T&M experience."
The agent calls search_contracts (state=CA, naics=IT services), then score_contract — no HTTP knowledge required from the agent.
score_contract sends a deterministic Idempotency-Key, so retries never double-burn quota.source_portal fields (that's the aggregation moat); get_contract detail includes the original solicitation link, exactly as the API does. The MCP exposes what the API exposes.data_quality field (level + which fields are populated). Some states have richer data than others; the API tells you exactly what you're getting.win_likelihood and archetypes are paid-tier (Starter+) — the derived-data layernpm run dev # tsx watch
npm run build # tsc -> dist/
npm start # run built server
The server is a thin wrapper over the public REST API (/v1/contracts, /v1/contracts/:id, /v1/naics, /v1/states, /v1/match) — see the API docs for schemas.
MIT