Skip to main content
Glama

Search contract awards

search_contract_awards
Read-onlyIdempotent

Use this when the user wants government contracts search, federal contract awards by NAICS code, contracts expiring soon or federal market research. Queries live public award records and makes a multi-sheet Excel report with recipient and agency totals. At least one search filter; up to 300 rows, dates from 2007-10-01 through today UTC, prime contracts or IDVs. Totals cover returned rows; period obligations are separate aggregates. Do not use for open solicitations, bids, subcontracts or classified awards.

Input Schema

NameRequiredDescriptionDefault
statesNoUp to 10 values, each up to 2 characters. Example: ["TX"].
agenciesNoUp to 5 values, each up to 150 characters. Example: ["VA"].
end_dateNoLast action date, no later than today UTC; default today UTC. Example: 2026-10-01.
keywordsNoUp to 5 values, each up to 50 characters. Example: ["janitorial"].
psc_codesNoUp to 10 values, each up to 4 characters. Example: ["S201"].
recipientsNoUp to 10 values, each up to 80 characters. Example: ["Booz Allen"].
start_dateNoFirst action date, YYYY-MM-DD, from 2007-10-01. Default end minus 365 days. Example: 2025-10-01.
max_resultsNoMaximum award rows, 1 to 300, default 100. Example: 200.
naics_codesNoUp to 10 values, each up to 6 characters. Example: ["541512"].
award_categoryNoAward group, default contracts. Example: idvs uses last date to order for the ending window.

Output Schema

NameRequiredDescriptionDefault
modeYes
notesYes
totalYesUSD with two decimal places, for example $150.03 or -$40,013.22.
awardsYes
cappedYes
endingYes
sourceYes
matchedYes
summaryYes
agenciesYes
returnedYes
downloadsYes
recipientsYes
competitorsYes
ending_countYes
period_agenciesYes
period_recipientsYes
rows_without_amountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial behavior beyond them: it queries live public records, produces a multi-sheet Excel report with recipient/agency totals, requires at least one filter, caps at 300 rows, restricts dates to 2007-10-01 through today UTC, and warns that totals cover only returned rows while period obligations are separate aggregates.

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?

Four dense sentences, front-loaded with the usage trigger and closing with the exclusion — no filler. It is tightly packed to the point of density (report format, row caps, date bounds and totals semantics all compressed), but every sentence carries information.

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

Completeness5/5

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

With 10 parameters, an output schema, and full annotation coverage, the remaining risk is misreading the output, and the description pre-empts it by explaining the Excel report shape and that totals reflect returned rows rather than period obligations. Nothing needed to call this correctly is missing.

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 coverage is 100%, so baseline is 3, but the description adds a real cross-parameter constraint the schema cannot express: 'at least one search filter' is required even though no parameter is required in the schema. The award_category/IDV date-window nuance is otherwise left to the 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?

Names a specific verb+resource (search federal contract awards) and enumerates concrete use cases: NAICS filtering, expiring contracts, federal market research. It clearly distinguishes itself from non-tools (solicitations, bids, subcontracts) but never distinguishes itself from its only sibling, compare_competitor_awards.

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?

Opens with an explicit 'Use this when...' trigger list and closes with an explicit 'Do not use for...' exclusion list, covering both sides of the routing decision. The only gap is that it never names the sibling tool as the alternative for competitor-comparison queries.

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