Skip to main content
Glama
govconapi

io.github.govconapi/govconapi

Official

Search Vehicles

search_vehicles
Read-onlyIdempotent

Search contract vehicles by UEI, PIID, NAICS, agency, and other filters; returns award_id_piid for each vehicle to access details and holders.

Instructions

Search contract vehicles: IDIQs, GWACs, FSS schedules, BPAs, BOAs.

Award & Compliance tool. Vehicles are long-lived and NOT limited to a rolling
window the way prime-contract search is, a GWAC awarded years ago is still the
vehicle you must hold today to compete for its orders.

- uei/parent_uei: vehicle holder, exact 12-char
- piid: vehicle PIID, exact
- idv_type: IDC | FSS | BPA | GWAC | BOA
- active_only: only vehicles whose period of performance hasn't ended
- ceiling_min/ceiling_max: potential_total_value_of_award. A ceiling of `999999999999`
  (or `.99`) is FPDS's own placeholder for "no negotiated ceiling" (typical on GSA
  MAS/GWAC-style vehicles), not a literal dollar figure.
- limit: max 250

Returns each vehicle's `award_id_piid`, pass to get_vehicle for detail or
get_vehicle_holders (Pro) to see who holds it and who's actually earning through it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ueiNo
piidNo
limitNo
naicsNo
agencyNo
offsetNo
date_toNo
sort_byNo
idv_typeNo
date_fromNo
parent_ueiNo
sort_orderNo
active_onlyNo
ceiling_maxNo
ceiling_minNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Even with readOnlyHint, openWorldHint, idempotentHint, and destructiveHint annotations already present, the description adds meaningful behavioral detail: vehicles persist beyond a rolling window, the ceiling placeholder 999999999999/.99 is explained as FPDS's 'no negotiated ceiling' marker, and active_only is defined as filtering by period of performance. It also discloses that the result set returns award_id_piid and that limit maxes at 250, giving the agent practical expectations beyond the annotations.

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

Conciseness5/5

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

The description is dense but efficiently organized: a one-line purpose, a brief contextual note, a scannable parameter list, and a closing pointer to related tools. Every sentence adds value and there is no filler or redundant repetition of schema information.

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 a 15-parameter search tool with no schema descriptions, the description covers the most semantically important filters and caveats, including the ceiling placeholder behavior and the long-lived nature of vehicles. An output schema exists, so return structure is already available. Still, pagination, date range semantics, and a few filter parameters receive no explanation, leaving minor gaps for an agent operating without additional examples.

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 0%, so the description carries the burden of parameter explanation. It does this well for the non-obvious parameters: uei/parent_uei exact 12-character format, idv_type's allowed values, active_only semantics, ceiling_min/ceiling_max and the FPDS placeholder, and limit max 250. However, it leaves several parameters undocumented—naics, agency, offset, date_from, date_to, sort_by, sort_order—though these are somewhat self-explanatory from their names.

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

Purpose5/5

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

The description opens with a specific verb and resource—'Search contract vehicles'—and enumerates the exact vehicle types: IDIQs, GWACs, FSS schedules, BPAs, BOAs. It also distinguishes this tool from prime-contract search by explaining that vehicles are long-lived and not limited to a rolling window, which helps differentiate it from siblings like search_contracts.

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 clear context for when this tool is appropriate: it is an 'Award & Compliance tool' for finding contract vehicles, and it explicitly contrasts vehicle search with prime-contract search. It also points to downstream tools (get_vehicle, get_vehicle_holders) but does not name a direct alternative or explicitly state when not to use it beyond the prime-contract distinction.

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

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/govconapi/govconapi-mcp'

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