Skip to main content
Glama

utilpeek: US Treasury par yield curve (daily, 1 Mo to 30 Yr)

treasury_yield_curve
Read-onlyIdempotent

utilpeek: Get US Treasury yields: the daily par yield curve for a date. For SOFR, FX and oil too use get_macro_snapshot. Returns the official US Treasury daily par yield curve for a date (default: the latest): yields in percent from 1 Mo to 30 Yr (null where none was published); a date without a curve returns the nearest earlier one (adjusted: true). Informational only, not investment advice. Data: U.S. Treasury (public domain); eligible for refresh after 6 hours; a copy fetched within 24 hours may be stale: true with its published date; no Treasury endorsement implied. A bad, pre-1990 or future date is a 422 (not charged); an upstream outage is a 503 (not charged). Typically under 0.1 s from cache; up to about 25 s when the Treasury feed is fetched (it is slow). Price: USD 0.002. Free: 10 utilpeek calls per IP per UTC day. Docs: https://tanod.dev/learn/treasury-yield-curve-api.html

Input Schema

NameRequiredDescriptionDefault
dateNoCurve date YYYY-MM-DD (1990-01-02 to today). Default: the latest published curve. A date with no curve (weekend, holiday, not yet published) returns the nearest earlier one, with adjusted: true.

Output Schema

NameRequiredDescriptionDefault
dateNo
noteNo
unitNo
errorNoOnly on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object.
staleNo
cachedNo
sourceNo
adjustedNo
disclaimerNo
yields_pctNotenor ('1 Mo' ... '30 Yr') -> percent
cache_secondsNo
requested_dateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / yields_pct / additionalProperties
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / yields_pct / description
      Added value: +"tenor ('1 Mo' ... '30 Yr') -> percent"
    • removedOutput schema / properties / yields_pct / properties
      Removed value: -{
      -  "1 Mo": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "1 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "1.5 Mo": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "10 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "2 Mo": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "2 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "20 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "3 Mo": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "3 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "30 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "4 Mo": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "5 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "6 Mo": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "7 Yr": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  }
      -}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "adjusted": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "cache_seconds": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "cached": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "date": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "disclaimer": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "description": "Only on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object."
      +    },
      +    "note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "requested_date": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "source": {
      +      "properties": {
      +        "license": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "name": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "notice": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "terms": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "stale": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "unit": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "yields_pct": {
      +      "properties": {
      +        "1 Mo": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "1 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "1.5 Mo": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "10 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "2 Mo": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "2 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "20 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "3 Mo": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "3 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "30 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "4 Mo": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "5 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "6 Mo": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "7 Yr": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  3. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description layers on real operational context: 6-hour refresh eligibility, possible stale copy with published date within 24 h, 422 for bad/pre-1990/future dates and 503 for upstream outage (neither charged), typical <0.1 s vs ~25 s cold path, price and free-tier quota. This is exactly the added value annotations cannot express.

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?

Front-loaded with the core purpose and the sibling pointer, then progressively discloses return shape, fallback, errors, latency and cost. It is dense but nearly every clause carries actionable information; the legal disclaimers ('not investment advice', 'no Treasury endorsement') and docs link are the only soft padding.

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?

For a single-optional-parameter read tool with an output schema, the description covers everything an agent needs to call it correctly: valid date range, default, fallback semantics, failure codes, cost, rate limit, and latency expectations. Return-value shape is left to the output schema, as intended.

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's own date description already covers the format, valid range, default, and the adjusted:true fallback. The description restates the nearest-earlier-curve behavior without adding syntax or semantics beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource ('Get US Treasury yields: the daily par yield curve for a date') and scopes the output precisely (1 Mo to 30 Yr, percent, nulls where unpublished). It also names the sibling it does not replace (get_macro_snapshot for SOFR/FX/oil), so an agent can distinguish it without opening the schema.

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 explicit routing to get_macro_snapshot for related macro data and clarifies default-date behavior, so the agent knows the primary use case and one alternative. It stops short of full when-not guidance (e.g. no mention of whether to prefer this over check_solana_reward_token_yield or lending-yield siblings for yield comparisons).

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