Skip to main content
Glama
cliwant

mcp-sam-gov

by cliwant

usas_search_recompetes

Read-only

Find federal contracts with current period of performance end dates inside a configurable window, sorted soonest-first. Filter by agency, NAICS, PSC codes, set-aside, and minimum award value.

Instructions

Recompete radar — federal contracts whose CURRENT period of performance ends inside a window around today (default -90d .. +18mo), sorted soonest-first. Use for 'what VA 541512 contracts are up for recompete in the next 18 months'. Reads the current PoP end date directly from spending_by_award (no per-award enrichment), counts (never drops) rows with missing end dates, and flags in _meta when the scan budget truncates the window (totalAvailable becomes null). Filter by agency/naics/pscCodes/setAside/minAwardValue; set includePotentialEnd for option-inclusive end dates. Public signals only — no CPARS/protest/option-intent, no composite vulnerability score.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page (default 1).
naicsNo6-digit NAICS code, e.g. '541512'
agencyNoCanonical awarding toptier agency name (use usas_lookup_agency)
pageSizeNoRows per page (default 25, max 100).
pscCodesNoProduct/Service Codes to filter on, e.g. ['DA01','R425']
setAsideNoUSAspending set_aside_type_code (honored server-side)
minAwardValueNoMinimum Award Amount ($) to include (default 0).
windowEndDaysNoUpper edge of the window in days from today (default 548 ≈ 18 months).
scanBudgetPagesNoMax 100-row pages to scan before giving up (default 8). If exhausted before the window ends, results are a lower bound and totalAvailable is null.
windowStartDaysNoLower edge of the recompete window in days from today (default -90 = include contracts that ended up to 90 days ago).
includePotentialEndNoAlso return the potential (option-inclusive) PoP end date + extendableDays (default false).
actionDateLookbackYearsNoaction_date lower bound in years (default 3). Contracts with no recorded action in this span are excluded — this bound makes the End-Date sort reach the window.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond the readOnlyHint and openWorldHint annotations. It explains that data comes directly from spending_by_award, that missing end dates are counted but not dropped, and that a truncation flag appears in _meta. It also notes limitations ('no per-award enrichment'). This is valuable transparency for a read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise and front-loaded with the core purpose. However, it includes some technical details ('spending_by_award', '_meta') that could be streamlined. While every sentence adds information, the overall length and density could be slightly reduced without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, no output schema), the description provides substantial context: core logic, filtering, limitations, and behavioral flags. It explains what the tool returns (rows, _meta) and mentions missing end dates. The only minor gap is the lack of explicit output format or example, but the description is still quite complete for effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter well. The description adds value by explaining the window concept (windowStartDays/windowEndDays) and how scanBudgetPages affects results. It also clarifies that setAside is 'honored server-side'. This contextual information enhances understanding beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose using a specific verb ('search recompetes') and describes the resource (federal contracts with ending PoP within a window). It provides a usage example ('what VA 541512 contracts are up for recompete in the next 18 months'), which aids understanding. However, it does not explicitly differentiate from the similar sibling tool 'usas_search_expiring_contracts', which slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage example and lists filtering options (agency, naics, pscCodes, etc.). It also states what the tool does NOT cover ('Public signals only — no CPARS/protest/option-intent'), giving implicit guidance on when not to use it. However, it does not explicitly compare with alternatives like 'usas_search_expiring_contracts' or 'usas_search_awards'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cliwant/mcp-sam-gov'

If you have feedback or need assistance with the MCP directory API, please join our Discord server