Skip to main content
Glama

SpreadBench NCSX-IS — AI Infrastructure Bond Issuance Spread Index

ncsx_ruler

Read-onlyIdempotent

Reverse pricing — the question every other tool cannot answer: given a coupon and a tenor, where would a new AI-infrastructure bond land? Returns the matched Treasury yield (linear interpolation between the two adjacent curve tenors, never extrapolated), the resulting issuance spread in bp using the same formula as every constituent ((coupon - UST) x 100), how it compares with the index level and with the same-structure tier, its rank among the 13 constituents, a like-for-like comparable set (same structure, tenor within ±1y, with median / weighted / rank), and — if you pass a size — the index level after adding it (face-value weighted: the same arithmetic as the pull_bp attribution in ncsx_events). Pass issuer to also get that issuer's own bonds already in the index (coupon, tenor, spread at pricing, gap to the hypothetical new bond) — the first thing an underwriter checks is what the same name paid last time. Nothing is stored: it is recomputed on every call from the current curve, universe and index, so it can never go stale. Use it for "is 9.5% for 5 years tight or wide for this market", "what does an 8% coupon imply", "what happens to NCSX-IS if another $2bn prices at this spread", "how would a new CoreWeave bond compare with its existing stack". Facts and arithmetic only: it does not recommend a coupon and issues no rating or investment advice.

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": {
      "coupon_pct": "<coupon_pct>",
      "tenor_years": "<tenor_years>"
    },
    "name": "ncsx_ruler"
  }
}

Input Schema

NameRequiredDescriptionDefault
issuerNoOptional: issuer name or ticker ("CoreWeave", "CRWV"), case-insensitive substring — same matching rule as ncsx_bond. Returns that issuer's existing index bonds as a pricing history for the new bond to be compared against. Omit to skip.
size_mmNoOptional: new-issue size in $ millions. Omit or 0 to skip the index-impact calculation.
seniorityNoOptional: structure of the new bond, default "secured". Drives which sub-index the comparison uses (secured 391.2bp / unsecured 540.1bp at the current version).
coupon_pctYesCoupon in percent — 7.5 means 7.5%. Range 0-25.
tenor_yearsYesYears to maturity — 5, 5.5, 0.5 (6 months). Must fall inside the published curve range (1M-30Y); out-of-range tenors are refused, never extrapolated.
peer_window_yearsNoOptional: half-width of the tenor window used to build the comparable set (same structure, tenor within ± this many years). Default 1, max 10. Note that all current constituents matured in 5.0-6.1 years, so a tenor far from 5y will fall back to the nearest existing tenor, flagged in peer_set.fallback.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / peer_window_years
      Added value: +{
      +  "description": "Optional: half-width of the tenor window used to build the comparable set (same structure, tenor within ± this many years). Default 1, max 10. Note that all current constituents matured in 5.0-6.1 years, so a tenor far from 5y will fall back to the nearest existing tenor, flagged in peer_set.fallback.",
      +  "type": "number"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / issuer
      Added value: +{
      +  "description": "Optional: issuer name or ticker (\"CoreWeave\", \"CRWV\"), case-insensitive substring — same matching rule as ncsx_bond. Returns that issuer's existing index bonds as a pricing history for the new bond to be compared against. Omit to skip.",
      +  "type": "string"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds materially more: computation is stateless and recomputed per call so it cannot go stale, interpolation is linear between adjacent tenors and never extrapolated with out-of-range tenors refused, the spread formula is disclosed, and the peer-set fallback is flagged. It also explicitly disclaims advisory output ('does not recommend a coupon and issues no rating or investment advice'), which matters for how an agent relays results.

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 operation and its differentiator, then ordered by output component, so the reader can stop early if needed. It is a single dense paragraph with some promotional framing ('the question every other tool cannot answer', 'the first thing an underwriter checks') that adds tone rather than information, and the long parenthetical stack makes it harder to scan than a short bulleted structure would.

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?

With six parameters and no output schema, the description carries the full burden and does so: it describes every returned component (matched yield, spread in bp, index and tier comparison, rank, peer set with median/weighted/rank, optional index impact, optional issuer history) and the fallback flag. Nothing an agent needs to invoke or interpret the result correctly appears to be missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description earns above it by explaining the causal effect of optional parameters: passing size_mm triggers the face-value-weighted post-issuance index level (tied to the pull_bp arithmetic in ncsx_events), and passing issuer returns that issuer's existing index bonds with gap-to-new-bond. It also explains why peer_window_years may fall back given the 5.0-6.1y constituent tenors, meaning the schema alone would not convey.

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+resource: reverse-prices a hypothetical new AI-infrastructure bond from a coupon and tenor, and enumerates exactly what comes back (interpolated UST, issuance spread, index comparison, rank among 13 constituents, peer set, index impact). It also positions itself against the sibling set with 'the question every other tool cannot answer,' so an agent can distinguish it from ncsx_curve, ncsx_index or ncsx_bond without opening schemas.

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 four concrete example questions ('is 9.5% for 5 years tight or wide', 'what does an 8% coupon imply', index-impact and issuer-comparison cases) that map cleanly onto parameter combinations, which is strong when-to-use guidance. It stops short of naming specific sibling tools to use instead for adjacent needs (e.g. raw curve data via ncsx_curve) or stating when-not-to-use, so it is clear context without explicit exclusions.

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.