Skip to main content
Glama

usaspending-mcp-server

Get Award Transactions

usaspending_get_award_transactions
Read-onlyIdempotent

List individual transactions (contract modifications, grant amendments) on a federal award. Each transaction represents a change event — obligation modifications, performance period extensions, scope changes, etc. Use this to trace the spending history and obligation changes over the life of an award. Award IDs come from usaspending_search_awards (generated_internal_id field).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "award_id": "<award_id>"
    },
    "name": "usaspending_get_award_transactions"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoPage number (1-based)
sortNoSort field for transactionsaction_date
limitNoMaximum transactions per page (1–100)
orderNoSort directiondesc
award_idYesGenerated unique award ID (generated_internal_id from usaspending_search_awards)

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance when no transactions were returned — helps confirm the award_id is a valid generated_internal_id. Absent when results are present.
resultsNoList of transactions for this award
award_idNoAward ID queried
totalCountNoTotal transaction count across all pages (when available)
current_pageNoCurrent page returned
has_next_pageNoWhether there are more pages of transactions
page_metadataNoPagination metadata
queried_award_idNoAward ID whose transactions were listed

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • removedOutput schema / properties / results / items / properties / awarding_agency_name
      Removed value: -{
      -  "description": "Awarding agency name",
      -  "type": "string"
      -}
    • addedOutput schema / properties / results / items / properties / cfda_number
      Added value: +{
      +  "description": "Assistance Listing (CFDA) number for assistance transactions",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / face_value_loan_guarantee
      Added value: +{
      +  "description": "Loan face value in USD; absent for non-loan transactions",
      +  "type": "number"
      +}
    • changedOutput schema / properties / results / items / properties / id / description
      Previous value: -"Transaction internal ID"New value: +"Generated transaction ID (ASST_TX or CONT_TX)"
    • changedOutput schema / properties / results / items / properties / id / type
      Previous value: -"number"New value: +"string"
    • addedOutput schema / properties / results / items / properties / original_loan_subsidy_cost
      Added value: +{
      +  "description": "Original loan subsidy cost in USD; absent for non-loan transactions",
      +  "type": "number"
      +}
    • removedOutput schema / properties / results / items / properties / recipient_name
      Removed value: -{
      -  "description": "Recipient name at time of transaction",
      -  "type": "string"
      -}
  2. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "award_id",
      +      "results",
      +      "page_metadata",
      +      "queried_award_id",
      +      "current_page",
      +      "has_next_page"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `api_unavailable`: USAspending.gov API is unreachable or returns an error. `api_timeout`: USAspending.gov did not respond before the request deadline elapsed. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "api_unavailable",
      +            "api_timeout"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "award_id",
      -  "results",
      -  "page_metadata",
      -  "queried_award_id",
      -  "current_page",
      -  "has_next_page"
      -]
  3. Changed1 schema field changed
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when no transactions were returned — suggests checking transactions_count from usaspending_get_award first. Absent when results are present."New value: +"Guidance when no transactions were returned — helps confirm the award_id is a valid generated_internal_id. Absent when results are present."
  4. Changed2 schema fields changed
    • addedOutput schema / properties / totalCount
      Added value: +{
      +  "description": "Total transaction count across all pages (when available)",
      +  "type": "number"
      +}
    • removedOutput schema / properties / transaction_total
      Removed value: -{
      -  "description": "Total transaction count across all pages (when available)",
      -  "type": "number"
      -}
  5. Changed1 schema field changed
    • addedOutput schema / properties / notice
      Added value: +{
      +  "description": "Guidance when no transactions were returned — suggests checking transactions_count from usaspending_get_award first. Absent when results are present.",
      +  "type": "string"
      +}
  6. Changed5 schema fields changed
    • addedOutput schema / properties / current_page
      Added value: +{
      +  "description": "Current page returned",
      +  "type": "number"
      +}
    • addedOutput schema / properties / has_next_page
      Added value: +{
      +  "description": "Whether there are more pages of transactions",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / queried_award_id
      Added value: +{
      +  "description": "Award ID whose transactions were listed",
      +  "type": "string"
      +}
    • addedOutput schema / properties / transaction_total
      Added value: +{
      +  "description": "Total transaction count across all pages (when available)",
      +  "type": "number"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "award_id",
      -  "results",
      -  "page_metadata"
      -]New value: +[
      +  "award_id",
      +  "results",
      +  "page_metadata",
      +  "queried_award_id",
      +  "current_page",
      +  "has_next_page"
      +]
  7. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world, so the safety profile needs no restating. The description adds genuine domain semantics about what each returned transaction represents (obligation modifications, performance period extensions, scope changes), which is context the annotations cannot provide. It stops short of describing pagination/result-set behavior for large awards.

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 short sentences, front-loaded with the verb and resource, then domain semantics, then the prerequisite for the required ID. No redundancy with the schema or annotations.

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?

Output schema exists, so return-value explanation is unnecessary, and the annotations cover safety semantics. What remains — what the tool is for and where the required award_id comes from — is fully addressed, leaving nothing an agent needs in order to call it correctly.

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% and all five parameters (page, limit, sort, order, award_id) carry their own descriptions, so the baseline is 3. The description reinforces the provenance of the required award_id, but adds no format guidance beyond 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?

States a specific verb and resource ('List individual transactions... on a federal award') and explicitly characterizes what a transaction is (contract modifications, grant amendments, change events), which separates it from the award-summary siblings. It doesn't explicitly name usaspending_get_award as the alternative for summary data, so the differentiation is implied rather than stated.

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?

'Use this to trace the spending history and obligation changes over the life of an award' gives clear intent, and the prerequisite is spelled out: award IDs come from usaspending_search_awards (generated_internal_id field). No when-not-use or explicit alternative routing is provided.

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.