Skip to main content
Glama

Federal contract awards and recompetes

federal_contracts
Read-onlyIdempotent

Searches awarded US federal contracts on USAspending.gov by agency, keyword and dollar amount, largest first. Recompete mode instead lists contracts expiring soonest within a window (set min_amount to keep the search narrow), with the incumbent and days until expiry. Every record links to the official award page.

Input Schema

NameRequiredDescriptionDefault
modeNosearch lists awards, largest first; recompete lists contracts about to expire, soonest first. Defaults to recompete when an expiring_ field is set.
limitNoAwards to return, 1 to 100. Default 25.
agencyNoAwarding top-tier agency name. Several names separated by a semicolon.
keywordNoFree text across award descriptions and recipient names. Up to 500 characters.
end_dateNoYYYY-MM-DD. Default today.
min_amountNoOnly awards at or above this many dollars. Recompete mode usually needs this, or an agency or keyword, to be narrow enough.
start_dateNoYYYY-MM-DD, awards with activity from this date. Default 2024-10-01 (the past year in recompete mode). Not before 2007-10-01.
award_typesNoCodes separated by commas, from one group (contracts A,B,C,D by default; 02 to 11 are grants and loans).
expiring_after_daysNoRecompete mode: skip contracts ending sooner than this, for bid lead time. Default 0.
expiring_within_daysNoRecompete mode: contracts ending within this many days, 1 to 1825. Default 365.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so safety is covered. The description adds genuinely new behavioral context: result ordering per mode, the fields included in recompete output (incumbent, days until expiry), and that every record links to the official award page — valuable given no output schema exists.

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?

Three sentences, front-loaded with the primary search behavior, then the alternate mode, then the output guarantee. No filler, and the ordering/scope facts are stated where they are most needed.

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 10-parameter tool with no output schema, the description covers both modes, ordering, key returned fields, and the official-link guarantee. Defaults and date formats live in the schema, so nothing critical is missing, though a note on how modes interact with date-bounded filters would close the last gap.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (including mode enum and expiring window bounds) is already documented in structured form. The description restates agency/keyword/dollar-amount filtering and the recompete window concept, adding little beyond the schema's own notes on min_amount and defaults.

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?

Names a specific verb and resource (searches awarded US federal contracts) plus the underlying source (USAspending.gov), and distinguishes its two modes explicitly: search ordered largest-first vs. recompete ordered soonest-expiring. An agent can tell exactly what each invocation returns and no sibling tool covers this domain, so ambiguity is low.

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?

Gives clear mode-selection guidance ('Recompete mode instead lists contracts expiring soonest within a window') and a narrowing hint ('set min_amount to keep the search narrow'). It lacks explicit when-not-to-use or exclusions, but the conditions that select each mode are stated.

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.