Skip to main content
Glama

gouda_studios/usaspending-awards-search

gouda_studios--usaspending-awards-search
Destructive

Searches USAspending.gov federal awards by keyword, recipient, agency, NAICS, state, date, and amount. Use to find contracts and grants.

Input Schema

NameRequiredDescriptionDefault
statesNoOptional 2-letter US state codes.
endDateNoYYYY-MM-DD. Defaults to today.
onlyNewNoIf true, return only notices not seen before.
keywordsNoOptional free-text search terms.
waitSecsNoSeconds to wait for the run to finish (0-45).
awardTypeNocontracts (default), idvs, grants, loans.contracts
maxAmountNoOptional upper bound on award amount.
minAmountNoOptional lower bound on award amount.
startDateNoYYYY-MM-DD. Defaults to 90 days ago. USAspending data.
maxResultsNoMaximum notices to return.
naicsCodesNoOptional 6-digit NAICS codes.
recipientNamesNoOptional company or organization names (or UEIs), .
awardingAgenciesNoOptional top-tier agency names exactly as USAspending.

Output Schema

NameRequiredDescriptionDefault
tipNoAdvisory guidance RAG Web Browser wrote to its key-value.
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT |.
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states.
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed58 schema fields changed
    • changedInput schema / description
      Previous value: -"Returns U.S. federal spending awards (contracts, IDVs, grants, loans) from the official USAspending.gov API, one JSON row per award, largest first. Example: {\"keywords\":[\"cybersecurity\"],\"awardType\":\"contracts\",\"startDate\":\"2026-01-01\",\"maxResults\":50}. Pricing: $0.0015 per award row."New value: +"Returns U.S. federal spending awards (contracts, IDVs."
    • changedInput schema / properties / awardType / description
      Previous value: -"contracts (default), idvs, grants, loans, direct_payments or other.\nExample values: \"contracts\""New value: +"contracts (default), idvs, grants, loans."
    • removedInput schema / properties / awardType / examples
      Removed value: -[
      -  "contracts"
      -]
    • removedInput schema / properties / awardType / title
      Removed value: -"Award type"
    • removedInput schema / properties / awardingAgencies / default
      Removed value: -[]
    • changedInput schema / properties / awardingAgencies / description
      Previous value: -"Optional top-tier agency names exactly as USAspending lists them, e.g. [\"Department of Defense\",\"Department of Veterans Affairs\"]."New value: +"Optional top-tier agency names exactly as USAspending."
    • removedInput schema / properties / awardingAgencies / items / description
      Removed value: -"Optional top-tier agency names exactly as USAspending lists them, e.g. [\"Department of Defense\",\"Department of Veterans Affairs\"]."
    • removedInput schema / properties / awardingAgencies / items / title
      Removed value: -"Awarding agencies"
    • removedInput schema / properties / awardingAgencies / title
      Removed value: -"Awarding agencies"
    • removedInput schema / properties / endDate / title
      Removed value: -"End date"
    • removedInput schema / properties / keywords / default
      Removed value: -[]
    • changedInput schema / properties / keywords / description
      Previous value: -"Optional words to match in award descriptions, e.g. [\"cybersecurity\"].\nExample values: [\"cybersecurity\"]"New value: +"Optional free-text search terms."
    • removedInput schema / properties / keywords / examples
      Removed value: -[
      -  "cybersecurity"
      -]
    • removedInput schema / properties / keywords / items / description
      Removed value: -"Optional words to match in award descriptions, e.g. [\"cybersecurity\"]."
    • removedInput schema / properties / keywords / items / title
      Removed value: -"Keywords"
    • removedInput schema / properties / keywords / prefill
      Removed value: -[
      -  "cybersecurity"
      -]
    • removedInput schema / properties / keywords / title
      Removed value: -"Keywords"
    • removedInput schema / properties / maxAmount / title
      Removed value: -"Maximum amount (USD)"
    • changedInput schema / properties / maxResults / description
      Previous value: -"Maximum rows (1-10000). You pay per row: 100 rows = $0.15.\nExample values: 100"New value: +"Maximum notices to return."
    • removedInput schema / properties / maxResults / examples
      Removed value: -[
      -  100
      -]
    • removedInput schema / properties / maxResults / title
      Removed value: -"Max results"
    • removedInput schema / properties / minAmount / title
      Removed value: -"Minimum amount (USD)"
    • removedInput schema / properties / naicsCodes / default
      Removed value: -[]
    • changedInput schema / properties / naicsCodes / description
      Previous value: -"Optional NAICS codes (contracts only), e.g. [\"541512\"]."New value: +"Optional 6-digit NAICS codes."
    • removedInput schema / properties / naicsCodes / items / description
      Removed value: -"Optional NAICS codes (contracts only), e.g. [\"541512\"]."
    • removedInput schema / properties / naicsCodes / items / title
      Removed value: -"NAICS codes"
    • removedInput schema / properties / naicsCodes / title
      Removed value: -"NAICS codes"
    • changedInput schema / properties / onlyNew / description
      Previous value: -"true = skip awards delivered by an earlier run with the same filters."New value: +"If true, return only notices not seen before."
    • removedInput schema / properties / onlyNew / title
      Removed value: -"Only new since last run"
    • removedInput schema / properties / recipientNames / default
      Removed value: -[]
    • changedInput schema / properties / recipientNames / description
      Previous value: -"Optional company or organization names (or UEIs), e.g. [\"Booz Allen Hamilton\"]. Find a competitor's federal wins."New value: +"Optional company or organization names (or UEIs), ."
    • removedInput schema / properties / recipientNames / items / description
      Removed value: -"Optional company or organization names (or UEIs), e.g. [\"Booz Allen Hamilton\"]. Find a competitor's federal wins."
    • removedInput schema / properties / recipientNames / items / title
      Removed value: -"Recipient names"
    • removedInput schema / properties / recipientNames / title
      Removed value: -"Recipient names"
    • changedInput schema / properties / startDate / description
      Previous value: -"YYYY-MM-DD. Defaults to 90 days ago. USAspending data starts 2007-10-01."New value: +"YYYY-MM-DD. Defaults to 90 days ago. USAspending data."
    • removedInput schema / properties / startDate / title
      Removed value: -"Start date"
    • removedInput schema / properties / states / default
      Removed value: -[]
    • changedInput schema / properties / states / description
      Previous value: -"Optional 2-letter state codes, e.g. [\"VA\",\"TX\"]."New value: +"Optional 2-letter US state codes."
    • removedInput schema / properties / states / items / description
      Removed value: -"Optional 2-letter state codes, e.g. [\"VA\",\"TX\"]."
    • removedInput schema / properties / states / items / title
      Removed value: -"Place of performance states"
    • removedInput schema / properties / states / title
      Removed value: -"Place of performance states"
    • changedInput schema / properties / waitSecs / description
      Previous value: -"Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget."New value: +"Seconds to wait for the run to finish (0-45)."
    • changedOutput schema / properties / apifyConsoleUrl / description
      Previous value: -"Personalized Apify Console link to the run; present only for Console sessions"New value: +"Personalized Apify Console link to the run; present only."
    • changedOutput schema / properties / exitCode / description
      Previous value: -"Actor process exit code; populated for terminal states (especially FAILED)"New value: +"Actor process exit code; populated for terminal states."
    • changedOutput schema / properties / status / description
      Previous value: -"Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED"New value: +"Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT |."
    • changedOutput schema / properties / storages / description
      Previous value: -"Dataset and key-value store metadata, keyed by alias. \"default\" is always the primary entry."New value: +"Dataset and key-value store metadata, keyed by alias."
    • changedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / apifyConsoleUrl / description
      Previous value: -"Personalized Apify Console link to the dataset; present only for Console sessions"New value: +"Personalized Apify Console link to the dataset; present."
    • changedOutput schema / properties / storages / properties / datasets / additionalProperties / properties / inflatedBytes / description
      Previous value: -"Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching."New value: +"Approximate uncompressed byte size of the dataset. Use."
    • changedOutput schema / properties / storages / properties / datasets / description
      Previous value: -"Map of dataset alias → metadata. Key \"default\" is always the run's primary dataset."New value: +"Map of dataset alias → metadata. Key \"default\" is always."
    • changedOutput schema / properties / storages / properties / datasets / properties / default / properties / apifyConsoleUrl / description
      Previous value: -"Personalized Apify Console link to the dataset; present only for Console sessions"New value: +"Personalized Apify Console link to the dataset; present."
    • changedOutput schema / properties / storages / properties / datasets / properties / default / properties / inflatedBytes / description
      Previous value: -"Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching."New value: +"Approximate uncompressed byte size of the dataset. Use."
    • changedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / description
      Previous value: -"JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema."New value: +"JSON Schema for rows in the dataset at."
    • changedOutput schema / properties / storages / properties / keyValueStores / additionalProperties / properties / apifyConsoleUrl / description
      Previous value: -"Personalized Apify Console link to the store; present only for Console sessions"New value: +"Personalized Apify Console link to the store; present."
    • changedOutput schema / properties / storages / properties / keyValueStores / description
      Previous value: -"Map of key-value store alias → metadata. Key \"default\" is always the run's primary store."New value: +"Map of key-value store alias → metadata. Key \"default\"."
    • changedOutput schema / properties / storages / properties / keyValueStores / properties / default / properties / apifyConsoleUrl / description
      Previous value: -"Personalized Apify Console link to the store; present only for Console sessions"New value: +"Personalized Apify Console link to the store; present."
    • changedOutput schema / properties / tip / description
      Previous value: -"Advisory guidance RAG Web Browser wrote to its key-value store under the reserved \"TIP\" key"New value: +"Advisory guidance RAG Web Browser wrote to its key-value."
    • changedOutput schema / properties / tip / properties / caveat / description
      Previous value: -"Present when this session cannot run the Actor the tip recommends"New value: +"Present when this session cannot run the Actor the tip."
    • changedOutput schema / properties / tip / properties / message / description
      Previous value: -"Truncated to 300 characters, with a trailing ellipsis if the Actor's message was longer"New value: +"Truncated to 300 characters, with a trailing ellipsis if."
  2. First observed

TDQS

B3.2/5.0
Behavior2/5

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

The description frames this as a passive read ('Searches... Use to find'), while the annotations declare readOnlyHint=false and destructiveHint=true, leaving the agent with two conflicting pictures of the tool's side effects. It also omits all behavioral facts that matter here: that a run is launched, that waitSecs (0-45s) bounds how long it blocks, and that results may be partial if the run doesn't finish.

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 short sentences with no filler, front-loading the resource and searchable dimensions before the usage hint. It is efficiently written, though the terseness comes at the cost of the behavioral detail noted above.

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

Completeness3/5

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

An output schema exists, so return-value explanation is not required, but for a 13-parameter tool with an actor-run wrapper the description should still surface blocking behavior and partial-result risk. As written it is adequate for choosing the tool but thin for invoking it confidently.

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 one of the 13 parameters is already documented in the schema, making 3 the baseline. The description's facet list mirrors the schema fields without adding format, default, or interaction semantics (e.g., default 90-day window, onlyNew, awardType enum).

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?

States a specific verb and resource ('Searches USAspending.gov federal awards') and enumerates the queryable facets (keyword, recipient, agency, NAICS, state, date, amount), so the agent knows exactly what data domain this covers. Sibling differentiation is implicit only via the domain name (vs. sam-gov-opportunities-feed, sec-edgar-filings-feed), and the description never explicitly says how it differs from the SAM.gov opportunities tool.

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?

'Use to find contracts and grants' gives a purpose but no when-to-use vs. when-not guidance and never names an alternative tool. The nearest sibling (sam-gov-opportunities-feed) is about open opportunities rather than awarded spending, yet the description does nothing to route an agent between them.

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.