Skip to main content
Glama

usaspending-mcp-server

Get IDV Child Awards

usaspending_get_idv_awards
Read-onlyIdempotent

List child contracts and task/delivery orders placed under an IDV (Indefinite Delivery Vehicle) award. Each row includes the generated_unique_award_id to chain into usaspending_get_award for full detail. The award_id must be the generated_unique_award_id of the parent IDV — obtainable from usaspending_search_awards (generated_internal_id field) or from usaspending_get_award. IDV category awards returned by usaspending_get_award have child orders accessible via this tool.

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_idv_awards"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoPage number (1-based)
sortNoField to sort child awards by (e.g., obligated_amount, period_of_performance_start_date)obligated_amount
typeNoType of child awards to list: child_awards = task/delivery orders, child_idvs = sub-IDVs, grandchild_awards = orders under sub-IDVschild_awards
limitNoMaximum results per page (1–100)
orderNoSort directiondesc
award_idYesParent IDV generated_unique_award_id (e.g., CONT_IDV_NNK14MA74C_8000) — use generated_internal_id from usaspending_search_awards or generated_unique_award_id from usaspending_get_award

Output Schema

NameRequiredDescriptionDefault
capNoThe per-page limit that was applied, when truncated.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of child awards returned on this page, when truncated.
noticeNoHow to continue when truncated, or a recovery hint when results are empty — the award may have no children of the requested type. Absent otherwise.
resultsNoChild awards placed under this IDV
award_idNoParent IDV award ID queried
truncatedNoTrue when the upstream reports more child awards beyond this page. Absent on a full page the upstream marks as last — has_next_page still says whether to request another.
current_pageNoCurrent page returned
has_next_pageNoWhether more pages of child awards may remain — set on a full page even when the upstream flag reports none.
page_metadataNoPagination metadata (no total count available from this endpoint)
parent_award_idNoParent IDV award ID whose children were listed

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / sort / enum
      Added value: +[
      +  "award_type",
      +  "description",
      +  "funding_agency",
      +  "awarding_agency",
      +  "last_date_to_order",
      +  "obligated_amount",
      +  "period_of_performance_current_end_date",
      +  "period_of_performance_start_date",
      +  "piid"
      +]
  2. Changed4 schema fields changed
    • changedOutput schema / properties / cap / description
      Previous value: -"The per-page limit that was applied."New value: +"The per-page limit that was applied, when truncated."
    • changedOutput schema / properties / notice / description
      Previous value: -"Recovery hint when results are empty — the award may have no children of the requested type. Absent when results are present."New value: +"How to continue when truncated, or a recovery hint when results are empty — the award may have no children of the requested type. Absent otherwise."
    • changedOutput schema / properties / shown / description
      Previous value: -"Number of child awards returned on this page."New value: +"Number of child awards returned on this page, when truncated."
    • changedOutput schema / properties / truncated / description
      Previous value: -"True when this page was full and more child awards may remain beyond it."New value: +"True when the upstream reports more child awards beyond this page. Absent on a full page the upstream marks as last — has_next_page still says whether to request another."
  3. 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",
      +      "parent_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",
      -  "parent_award_id",
      -  "current_page",
      -  "has_next_page"
      -]
  4. Changed3 schema fields changed
    • changedOutput schema / properties / has_next_page / description
      Previous value: -"Whether there are more pages of child awards"New value: +"Whether more pages of child awards may remain — set on a full page even when the upstream flag reports none."
    • changedOutput schema / properties / page_metadata / properties / has_next / description
      Previous value: -"Whether there are more pages of results"New value: +"Whether more child awards may remain — true on a full page even when the upstream flag reports none (this endpoint returns no total). A short or empty page marks the end."
    • changedOutput schema / properties / truncated / description
      Previous value: -"True when more child awards remain beyond this page."New value: +"True when this page was full and more child awards may remain beyond it."
  5. Changed3 schema fields changed
    • addedOutput schema / properties / cap
      Added value: +{
      +  "description": "The per-page limit that was applied.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / shown
      Added value: +{
      +  "description": "Number of child awards returned on this page.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "description": "True when more child awards remain beyond this page.",
      +  "type": "boolean"
      +}
  6. Added

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the read-only and idempotent annotations, it explains the parent-child award relationship and discloses that each result includes generated_unique_award_id for follow-up detail retrieval. It does not add operational details such as empty-result behavior or rate limits, but the workflow context is substantive.

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 front-loaded with the operation and scope, then efficiently covers result chaining, identifier requirements, and applicability. Its four sentences each serve a distinct purpose without unnecessary background.

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?

Together with the fully documented input schema and output schema, the description supplies the identifier provenance and cross-tool workflow needed to invoke the tool correctly. Sorting, pagination, and child-type options are already adequately handled by the schema.

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 coverage is 100%, and the schema already documents the parent IDV identifier, its sources, pagination, sorting, and child-award types. The description reinforces the award_id requirement and acquisition workflow but adds little parameter meaning beyond those structured descriptions.

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 uses a specific verb and resource: it lists child contracts and task/delivery orders under a parent IDV. It also distinguishes this relationship-listing tool from usaspending_get_award, which is used for full award detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit workflow: obtain the parent IDV identifier from usaspending_search_awards or usaspending_get_award, then use returned child identifiers to chain into usaspending_get_award. The final sentence clarifies that the tool applies to IDV-category awards with child orders.

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.