Skip to main content
Glama

Find contracts coming up for re-bid

recompetes
Read-onlyIdempotent

The recompete pipeline: contracts ending in the next months with the incumbent, value, how they were bought (offers received, set-aside, vehicle) and the likeliest follow-on SAM.gov notice when one is posted, soonest ending first. Filters take names as people say them (VA, 541512, IT services, Leidos).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "recompetes"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoWords in the contract description, e.g. "help desk".
limitNoHow many contracts to return, 1-50 (default 20).
naicsNoA NAICS code or industry words, e.g. "541512" or "janitorial".
agencyNoAn agency, bureau or office, e.g. "Army", "VA".
monthsNoContracts ending within this many months, 1-24 (default 12).
companyNoAn incumbent by name or UEI, e.g. "Leidos".
min_valueNoSmallest current contract value in dollars (default 1,000,000).
set_asideNoThe set-aside of the current contract, e.g. "8(a)", "SDVOSB".

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "title": "recompetesDictOutput",
      +  "type": "object"
      +}
  2. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower; the description still adds real value by disclosing sort order ("soonest ending first"), the exact payload (incumbent, value, offers received, set-aside, vehicle), and the conditional nature of the follow-on notice ("when one is posted"). It does not mention that the default min_value of $1M and months=12 will silently narrow the result set, which is a behavioral caveat worth flagging.

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

Conciseness4/5

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

Two sentences, front-loaded with what the result set contains, then the filter-input convention. The parenthetical list of bought-how fields is dense but each element is informative; nothing is filler.

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?

For an 8-parameter read tool with full schema coverage, an output schema, and complete safety annotations, the description covers the essentials: what the rows contain, ordering, and input flexibility. The only material omission is that defaults (12 months, $1M floor, 20 rows) will exclude results unless the agent overrides them.

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?

With 100% schema description coverage the baseline is 3, and the description earns the extra point by explaining that all filters are tolerant of colloquial input — agency names as spoken ("VA"), NAICS as industry words ("IT services"), companies by common name ("Leidos"). That fuzzy-matching promise is not present in the schema and materially changes how an agent should construct arguments.

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 recompete pipeline: contracts ending in the next months with the incumbent, value, how they were bought... and the likeliest follow-on SAM.gov notice" names a concrete resource and enumerates the fields returned, so an agent knows this is a pre-solicitation pipeline list rather than a notice search. It stops short of naming a sibling (e.g. search_notices or get_notice) to contrast against, so the differentiation is implicit rather than explicit.

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

Usage Guidelines3/5

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

Usage context is implied by "contracts ending in the next months" and "soonest ending first," and the line "Filters take names as people say them (VA, 541512, IT services, Leidos)" gives practical input guidance. However, there is no statement of when to prefer this over search_notices or how it relates to get_notice for the follow-on award, so the agent must infer the routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources