53 tools for AI agents, with the source public
The MCP server spans the full contracting lifecycle: market research, opportunity discovery, capture and teaming, bid and pricing, award and compliance. It reaches the attachment full-text index, so an agent searches inside solicitation documents rather than only the notice fields. MIT source on GitHub, package on PyPI, listed in the official MCP registry. Works with Claude Desktop, Claude Code, Cursor, Zed, and any MCP client. The 53 tools →
Which awards are being challenged, and when the freeze lifts
/api/v1/protests returns GAO bid protests, pending as well as decided: protester, solicitation, agency, outcome, and the date GAO must decide by. 13,778 decided since October 2019, plus 219 still pending (25 August 2026). A pending protest obliges the agency to suspend performance, so ?status=Open&sort=due ranks contested awards by which unfreeze first. Every plan; the per-solicitation lookup is Pro. Federal bid protests, explained →
Which certifications actually win a NAICS market, not just which work is set aside
/api/v1/naics/{code}/competition now carries a socioeconomic block: the share of a market's obligations that went to firms holding each set-aside certification (8(a), SDVOSB, VOSB, WOSB, EDWOSB, HUBZone, small-disadvantaged), plus the small-business share overall. It is winner-based, so it counts a certified firm that won full-and-open work, not only work formally set aside, which is a different question from how a market's contracts were competed. Janitorial services (561720) sends about 36% of its dollars to small business, led by 8(a) at 16% and veteran-owned at 13%. It answers whether your certification actually wins share in a market before you invest in it. Facts only, no score. Included in every plan. NAICS competition reference →
Which contracting offices buy your NAICS, and how each one buys
/api/v1/offices?naics= returns the specific contracting offices that buy a NAICS, ranked, each with its own obligations, average number of offers, single-bidder share, and set-aside share; /api/v1/offices/{office_code} profiles one office, how it buys overall and the NAICS it actually buys. It resolves the buyer below the department, to the office you actually target, and reports competition per office rather than market-wide, because the market-wide average hides it: janitorial services (561720) reads 35% single-bidder market-wide, but by office it runs from 0% (effectively locked) to 100% set-aside and eleven bidders per award (wide open). Facts only, no score. Included in every plan. Contracting Office Intelligence guide →
Is the incumbent beatable? A vulnerability read on any recompeting contract
/api/v1/recompetes/{piid} returns one recompeting contract plus a vulnerability block on the incumbent, composed from their SBA-registered certifications and full FPDS obligation history. Three named, self-evidencing signals, no score: a certification lapse (the incumbent's set-aside certification expires before the contract even ends, so they may be ineligible to recompete under the same set-aside), thin past performance (few distinct federal prime contracts on record), and single-buyer dependence (obligations concentrated in one department, read as entrenchment when that department runs the recompete and as thin roots when it does not). Each reason carries its own evidence text; the conclusion is yours. Pro. How these signals are built, and what we tried first →
Teaming partner search screens every recommended firm for active debarment
/api/v1/partners/search carries an excluded flag on every firm it returns, checked against the active federal exclusion (debarment) list. A firm currently barred from federal awards comes back excluded: true with the details (exclusion type, excluding agency, activation date, FASCSA), so a debarred contractor is flagged rather than surfaced as a clean teaming candidate; excluded: false is a positive clearance, not an absence of data. The check counts only exclusions in force today, so a debarment since lifted or terminated does not flag. Vetting a shortlist against the exclusion list used to be a separate lookup per firm. Pro. Teaming Partner Finder →
SBA small-business status and verified certifications, on any company lookup
/api/v1/dsbs/{uei} and an sba_profile block on entity and company lookups add the SBA layer SAM's self-reported flags don't carry: which NAICS a firm is actually small for (SBA's authoritative determination, exposed as the naics_small filter on entity search) and verified SBA-registered certifications (8(a), HUBZone, WOSB, EDWOSB, VOSB, SDVOSB) with entry and exit dates, so you can tell a current certification from a lapsed one. SAM carries only self-attested business types; confirming actual SBA certification used to mean integrating DSBS as a second source. Across the base, 79,290 firms carry an SBA-registered certification. Pro. SBA profile reference →
The prevailing-wage floor for one occupation, in a single call
/api/v1/wage-determinations/rate-summary returns the labor-cost floor for one occupation as a distribution: the base hourly wage at the 25th, 50th, and 75th percentiles (plus min and max) and the Health & Welfare fringe owed on top, aggregated across every wage determination that carries it. A federal Janitor (SCA 11150) sets a base floor around $16.78/hour plus a $5.55 fringe, across more than a thousand county determinations. On a Service Contract Act bid, that loaded-labor floor drives the price far more than the award ceiling does; reading it used to mean paginating a thousand rate lines and rolling them up by hand. Key it by occupation code or name, filter by state, DBA or SCA. Included in every plan. Prevailing-wage floor reference →
How contested a NAICS market is, and whether a newcomer can break in
/api/v1/naics/{code}/competition reads the award record for one NAICS and returns the four facts that decide whether a market is worth pursuing: how many bidders an award draws on average and the share that went to a single bidder, the states where the work is performed, the award volume by quarter, and how open the field is, the share of the last year's winners holding only one or two awards. Janitorial Services (561720) is contested but open: awards draw about eight bidders, roughly a third still go to a single bidder, and two thirds of winners hold one or two awards. Security Guard Services (561612) is the opposite shape, awards average under two bidders and most go to a single bidder. Facts only; you read whether a market is contested, concentrated, or open. Pairs with /api/v1/naics/{code} for the whole-market size and concentration. Included in every plan. NAICS competition reference →
Slice opportunities by product-vs-service, PSC family, and several notice types at once
/api/v1/opportunities/search gains three ways to scope a market without listing every code. psc_type=supply returns notices whose primary Product & Service Code is a numeric supply code, psc_type=services the letter-prefixed service codes, a first-pass supply-versus-services split. psc now also takes a trailing-* prefix (psc=70* for the whole 70-series, psc=R* for R-series services) and a comma-separated list. And notice_type accepts several values in one call (notice_type=Solicitation,Presolicitation,Combined Synopsis/Solicitation, matched as OR), so pulling every biddable stage no longer means one request per type. Existing single-value queries are unchanged. Included in every plan. Opportunities search reference →
The language contracting officers use for a market, so your profile matches how they search
/api/v1/naics/{code}/positioning reads the solicitation side of a NAICS over the last 24 months of SAM opportunities and returns three things: the phrase vocabulary contracting officers actually put in solicitation titles, the set-aside makeup as a share of notices, and the top soliciting agencies. For 541512 (computer systems design) across 1,900 recent notices, the language runs to support services, information technology, and management system; 57% post full-and-open and 11% as total small-business set-asides; the VA's Technology Acquisition Center solicits the most. Put those phrases in your SAM and DSBS profile and capability statement so the contracting team surfaces you during market research. Pairs with /api/v1/naics/{code} for the award side. Included in every plan. NAICS positioning reference →
Federal spending totals by agency, PSC, and set-aside, free
Three free rollups summarize the last twelve months of federal prime contract obligations from FPDS. /api/v1/spending/by-agency, /api/v1/spending/by-psc, and /api/v1/spending/by-set-aside each return obligated dollars, action count, and distinct recipients per bucket, ranked. The Department of Defense obligated $352.75B across 2.8M actions to 36,569 recipients over the trailing year; small-business set-asides (SBA) moved $27.29B; medical managed-healthcare (PSC Q201) topped the code cut at $38.02B. Included in every plan. Spending rollups reference →
The full Product & Service Code catalog, with award volume, free
Resolve or discover any Product & Service Code without an account. /api/v1/psc/{code} returns a code's name, full description, product-versus-service class, category hierarchy, and total federal award count: D302 is IT and Telecom Systems Development, 5,661 awards. /api/v1/psc/search?q= finds codes by keyword: janitorial returns S201 (Housekeeping, Custodial Janitorial), 29,265 awards, under Facility Related Services. Included in every plan. PSC catalog reference →
Opportunity attachments now tell you what each file is, before you download it
A solicitation's attachment list used to be a set of anonymous download links; now each one comes labelled. /api/v1/opportunities/{notice_id}/attachments returns a files array alongside the plain URLs, each entry carrying the filename, size in bytes, and file type. You can pick the solicitation out of a set, skip a 27 MB drawing package, or filter to the spreadsheets without opening a single file: a notice reads back 19SN1026R0005_Attachment 1_C-SCRM Questionnaire.xlsx at 172,980 bytes next to the Mobile Subscription.pdf. The resource_id on each file is the same key that drives attachment full-text search, so you can target the exact document you want to read inside. The original URL array is unchanged. Included in every plan. Attachments reference →
Wage rates: what each trade and occupation actually pays, not just which determination applies
The wage determination tells you which floor governs a contract; now you can read the floor itself. /api/v1/wage-determinations/rates returns the classification-level rates inside the Davis-Bacon and Service Contract Act determinations, roughly 495,000 rate lines, each trade or occupation with its hourly base wage and fringe, queryable by occupation, state, or WD number. A San Francisco electrician reads $91.25 base plus $48.05 fringe; the same Service Contract Act janitor occupation runs from $9.65 to $22.38 by locality. Each determination's full schedule is also inline on its detail record as a rates block. Included in every plan. SAM.gov wage determination API guide →