Skip to main content
Glama

CMD+RVL Receipts

Verify NPORT cross-filer fund-holding coupon

verify_fund_holding_coupon
Read-onlyIdempotent

Verify the NPORT cross-filer annualized coupon rate (annualized_rate) for one security identifier. Security-grain, N-source receipt: citations are peer NPORT-P filings by registrant CIK, dissenters included. CURRENT-ONLY (latest NPORT period exported). Ticker matches are not unique: set require_hard_identifier=true when a claim needs ISIN, CUSIP or other hard identity.

Input Schema

NameRequiredDescriptionDefault
as_ofNoOptional NPORT period guard (YYYY-MM). The public corpus is latest-period-per-security, not historical.
identifierYesSecurity identifier to look up: ISIN, CUSIP, other identifier, or ticker.
claimed_valueNoClaim to receipt. Required: no claim = refusal, no value.
security_id_sourceNoOptional source filter. Default any. Use ticker only for ticker-sourced matches.
require_hard_identifierNoWhen true, exclude ticker-sourced matches because tickers are not unique hard identifiers.

Output Schema

NameRequiredDescriptionDefault
as_ofYes
claimYes
messageYes
receiptYessf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json
claim_verdictYesCaller-claim verdict; DENY only here.
resolved_securityYesSecurity resolution: matched, security_id, hard_identifier, candidates.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed20 schema fields changed
    • changedOutput schema / properties / claim / additionalProperties
      Previous value: -falseNew value: +true
    • removedOutput schema / properties / claim / properties / abs_diff
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / claim / properties / basis
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "$ref": "#/properties/claim/properties/claimed_value/anyOf/0"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / claim / properties / claimed_value
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": [
      -        "number",
      -        "string"
      -      ]
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / claim / properties / rationale
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / claim / properties / rel_bps_diff
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / claim / properties / tolerance_kind
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / claim / properties / tolerance_used
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / claim / properties / within_tolerance
      Removed value: -{
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / claim / required
      Removed value: -[
      -  "claimed_value",
      -  "tolerance_kind",
      -  "tolerance_used",
      -  "abs_diff",
      -  "rel_bps_diff",
      -  "within_tolerance",
      -  "basis",
      -  "rationale"
      -]
    • changedOutput schema / properties / resolved_security / additionalProperties
      Previous value: -falseNew value: +true
    • addedOutput schema / properties / resolved_security / description
      Added value: +"Security resolution: matched, security_id, hard_identifier, candidates."
    • removedOutput schema / properties / resolved_security / properties / candidates
      Removed value: -{
      -  "description": "Candidate security ids when the lookup cannot resolve exactly.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / resolved_security / properties / hard_identifier
      Removed value: -{
      -  "description": "False for ticker-sourced matches; true for ISIN/CUSIP/other identifiers.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / resolved_security / properties / match_warning
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / resolved_security / properties / matched
      Removed value: -{
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / resolved_security / properties / query
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / resolved_security / properties / security_id
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / resolved_security / properties / security_id_source
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / resolved_security / required
      Removed value: -[
      -  "query",
      -  "matched",
      -  "security_id",
      -  "security_id_source",
      -  "hard_identifier",
      -  "candidates",
      -  "match_warning"
      -]
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations cover safety (readOnlyHint, idempotentHint, openWorldHint=false), and the description adds valuable context beyond them: N-source receipt from peer NPORT-P filings by registrant CIK with dissenters included, and the latest-period-only currency limitation. It stops short of describing failure/refusal outcomes outside the schema, so not a full 5.

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?

Front-loaded with verb and resource, then scoping facts (grain, receipt, currency) and the ticker caveat. Dense with domain jargon but every clause carries information an agent needs to select and call it correctly.

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 domain-specific verification tool with annotations and an output schema, the description covers grain, source behavior, currency limits, and identifier pitfalls. Nothing essential for correct invocation is missing; the refusal-on-no-claim rule is adequately captured in the schema.

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 baseline is 3; the description adds rationale beyond schema by explaining ticker non-uniqueness and the claim-driven condition for require_hard_identifier. This reinforces the why behind the flag rather than merely restating it.

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 (verify) and a specific resource (NPORT cross-filer annualized coupon rate, annualized_rate) at security grain for one identifier. It clearly distinguishes itself from siblings like verify_appraised_value or verify_building_size by naming the exact data point and grain.

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?

Explains conditions: CURRENT-ONLY with latest NPORT period, not historical, and directs the agent to set require_hard_identifier=true when a claim needs a hard identity, contrasting ticker vs ISIN/CUSIP. It gives clear context but does not explicitly name a sibling alternative or state exclusion boundaries.

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.