About mcp-public-award-monitor
An Apify-backed MCP server for finding companies awarded US or UK public contracts, grants, and SBIR funding within a chosen time window. It returns one row per winning company, with award totals and a resolved domain when requested.
Key features
- 01US and UK award registers
- 02Time-window and value filters
- 03Award counts and total values
- 04Optional recipient domain lookup
- 05Cap on returned companies
Use cases
- 01Find recent public-sector award winners
- 02Identify grant recipients above a value threshold
- 03Add award history and domains to company records
MCP support
Exposes `monitor_public_awards` to MCP clients as a thin wrapper around the Apify actor, returning its output unchanged. It requires an Apify token.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-public-award-monitorAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| register | enum | Yes | Which award register to read. US federal contracts and grants come from USASpending, NIH SBIR and STTR from NIH RePORTER, and the two UK registers from Contracts Finder and Find a Tender. Default: "us_federal_contracts".us_federal_contracts | us_federal_grants | us_nih_sbir | uk_contracts_finder | uk_find_a_tender |
| window_days | string | No | How many days back from today to read awards for. 1 to 90. US federal data lags about two days, so do not use a one day window on the US registers. Sent as a string so it works from Clay. Default: "7". |
| max_entities | string | No | Hard cap on billed rows. 1 to 1000. Winners are sorted by total award value, and the run log says how many were dropped. Sent as a string so it works from Clay. Default: "100". |
| min_award_value | string | No | Drops awards below this amount in the register's own currency. Set to 0 to keep everything. Sent as a string so it works from Clay. Default: "100000". |
| resolve_domains | boolean | No | Looks up each winner's website. Turning it off makes the run roughly 20x faster and returns recipient_domain as null with domain_status not_attempted. Default: true. |
| domain_confidence_floor | enum | No | How sure the actor has to be before it gives you a domain. Strict returns fewer domains and almost no wrong ones. Loose returns the most domains and about a third of them are wrong. Default: "standard".strict | standard | loose |
| exclude_government_recipients | boolean | No | Drops winners that are themselves government, universities, or public authorities. Leave this on for the grant registers or you get state departments of education instead of companies. Default: true. |
Details
From the project READMEGovernment Contract Award Monitor MCP Server
MCP server for the Mamba Labs Government Contract Award Monitor actor on Apify.
Pick a register and a time window. It returns the companies that won public work in that window, one flat row per winning company, with award count, total value, awarding body, award date, and a resolved company domain.
Install
npx -y @mambalabsdev/mcp-public-award-monitor
Claude Desktop
{
"mcpServers": {
"mamba-public-award-monitor": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-public-award-monitor"],
"env": { "APIFY_TOKEN": "your-apify-token" }
}
}
}
Get an Apify token at console.apify.com/account/integrations.
Tool
monitor_public_awards
Register and window in, the companies that won public work out.
| Input | Type | Required | Notes |
|---|---|---|---|
register | enum | yes | Which award register to read. us_federal_contracts and us_federal_grants from USASpending, us_nih_sbir from NIH RePORTER, uk_contracts_finder and uk_find_a_tender from the UK registers. Default us_federal_contracts. |
window_days | string | no | How many days back from today to read awards for, 1 to 90. US federal data lags about two days, so do not use a one day window on the US registers. Default 7. |
min_award_value | string | no | Drops awards below this amount in the register's own currency. Set to 0 to keep everything. Default 100000. |
max_entities | string | no | Hard cap on billed rows, 1 to 1000. Winners are sorted by total award value, and the run log says how many were dropped. Default 100. |
exclude_government_recipients | boolean | no | Drops winners that are themselves government, universities, or public authorities. Leave this on for the grant registers or you get state departments of education instead of companies. Default true. |
resolve_domains | boolean | no | Looks up each winner's website. Turning it off makes the run roughly 20x faster and returns recipient_domain as null with domain_status not_attempted. Default true. |
domain_confidence_floor | enum | no | strict, standard or loose. Strict returns fewer domains and almost no wrong ones. Loose returns the most domains and about a third of them are wrong. Default standard. |
max_charge_usd | number | no | Optional spending cap for this call, in USD. The actor stops before any charge that would take the run past this amount and keeps every row already charged. |
Reading the output
One row per winning company, not one per award. total_award_value, largest_award_value and award_count_in_window size the opportunity. recipient_register_id is the UEI in the US and the Companies House number in the UK, which is what you match against a CRM. latest_award_url is the deep link to the source record.
Billing
You are charged per winning company returned, plus a small actor start fee. max_entities is therefore a hard cost cap.
Prices from the live pricing record, read 2026-10-16:
| Event | Price per event (USD) | Fires when |
|---|---|---|
apify-actor-start | $0.00005 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
award-winner-found | $0.005 on the Free plan, down to $0.00425 on higher Apify plans | Charged once per company returned that won a public contract or grant in your window. Summary rows carry no company and are never charged. |
The current price is on the actor's Apify page. Running this server consumes Apify credits.
What this server does and does not do
It is a thin client for the Apify actor. It passes your input through and returns the actor's output unchanged. Every behavior described above lives in the actor, not here.
This is not a tender feed and not a procurement pipeline tool. It does not tell you what is open to bid on. It reports awards that have already been made and names the company that won.
Errors are surfaced, never swallowed. An invalid input, an invalid token, an exhausted balance, a timeout, or a run that returns anything other than a dataset all come back as an explicit tool error rather than as an empty result.
Source
The actor is on the Apify Store. This wrapper is MIT licensed.
Built by Mamba Labs
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.