MCP server for GovToolsPro — go/no-go scoring, incumbent intelligence, teaming-partner search, recompete prediction, Navy NECO lookup, and SAM.gov solicitation retrieval for federal contractors
The server demonstrates strong fundamentals with 10 well-defined tools, all featuring clear action verbs, non-trivial descriptions (averaging ~120 chars), and structured JSON schemas. Tool names follow verb_noun conventions consistently (get_solicitation, find_incumbents, score_go_no_go). Descriptions explain WHAT each tool does and WHEN to use it. However, several parameter descriptions are missing or minimal, and output schemas are not documented in the tool definitions themselves, they exist only in the API responses. Error handling is present but could be more granular. Schema constraints use enums and proper types, but some parameters (e.g., in find_partners_near, lookup_labor_rates) lack validation guidance in descriptions.
Analyze how contracts in a NAICS are typically awarded: award-size distribution, competition mix (full & open / limited / sole-source), bid intensity (single-bid rate, expected bidders), contract vehicles, and pricing types. From public USAspending + FPDS data. Costs 3 credits.
Full market-intelligence snapshot for a NAICS: 5-year federal spending trend, industry size (Census), top contractors with market share + HHI concentration, set-aside distribution, geographic distribution, and contract-vehicle usage. From public USAspending + Census data. Costs 5 credits.
Return the current GovToolsPro credit balance and subscription status for the authenticated account. Free — exercises auth end-to-end. The extension and the API draw from the same shared credit pool.
Identify the likely current incumbent(s) for a solicitation using public USAspending + FPDS award data. Returns the primary incumbent (name, award value, period of performance), FPDS competition signals (offers received, set-aside, sole-source flags), and an anticipated next-award start date. Deterministic, free. FPDS failures degrade gracefully (USAspending half stays intact).
Output schemas not documented in tool definitions. LLMs cannot see what fields to expect from tool responses (e.g., structure of get_solicitation response, find_incumbents incumbent object, find_partners_near enrichment format). This forces agents to infer structure from API behavior rather than explicit documentation.
Parameter descriptions are minimal or missing for several tools. find_partners_near accepts 'radius' with default 25 and max 100, but the description does not state the unit is miles or the min/max constraints. lookup_labor_rates accepts 'state' but does not specify 2-letter ISO format. predict_recompete accepts 'daysUntilExpiration' but lacks guidance on valid range.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
Find potential teaming partners / subcontractors near a solicitation's place of performance via Google Places. Given a capability keyword and a geocodable address, returns nearby businesses ranked by proximity, enriched (top results) with phone and website. Deterministic, free. Verify capabilities, certifications, and eligibility independently before relying on results.
Retrieve a SAM.gov solicitation by notice ID or solicitation number and return structured fields: title, NAICS, PSC, set-aside, response deadline, place of performance, points of contact, and attachment links. The workflow entry point. Free.
Retrieve labor-rate benchmarks: GSA CALC ceiling rates by category/year and BLS loaded-wage benchmarks by SOC occupation. Useful for proposal pricing and cost estimation. Free.
Parse a Navy NECO (neco.navy.mil) solicitation into structured fields: title, solicitation number, issue date, response deadline, contract type, set-aside, place of performance, and points of contact. Free.
Discover expiring contracts (recompete opportunities) by NAICS/PSC/state/value, enriched with option-exercise signals. Free.
Score a solicitation GO / NO-GO (0–100) against a company profile, with hard-blocker detection (CMMC, geographic, set-aside). Deterministic. Free.
Complex nested object parameters (e.g., 'solicitation' and 'profile' in score_go_no_go, 'solicitation' in find_incumbents) lack detailed sub-field descriptions. The solicitation object is used across multiple tools but described differently in each. A canonical schema definition with inline sub-field docs would improve clarity.
Error handling is generic (errorResult() returns isError: true + text message). No guidance on retryability, root cause, or corrective actions. E.g., if FPDS fails in find_incumbents, the error message should indicate it will degrade gracefully to USAspending only. If an API key is invalid, the error should guide the user to the Profile tab.
No pagination documented for tools returning lists. find_incumbents, analyze_award_patterns, and analyze_market likely return multiple results but do not expose limit, offset, or next_cursor parameters. Descriptions mention defaults (e.g., 'default 50, max 100') but the actual pagination interface is not visible in the provided schemas.
Natural identifiers not fully supported. score_go_no_go requires a 'naicsCode' (a NAICS number), but the description does not state whether this must be a 6-digit code or accept ranges like 'NAICS 23'. Users think in industry names ('IT services', 'construction'), not codes. Consider adding a lookup tool or accepting both.