CMD+RVL Receipts MCP
An MCP server that verifies CMBS claims against current SEC filings (ABS-EE and 10-D). It checks commentary or AI-generated text for factual accuracy against public loan receipts, returning verified, contradicted, or unchecked results with source citations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://receipts.cmdrvl.com/mcpWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to cmdrvl.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check a supported CMBS claim for a named loan, field, and period.
- Check a market note, analyst comment, or article before use.
- Check text from Claude or another model before use or sharing.
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- cmdrvl-receipts 0.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
quickstart — Quickstart capability manifest
Compact capability manifest for clients: purpose, workflow, routing table, examples, vocabulary guard, scope caveats, next actions, and contact. A short, low-token summary of what this server does and what it returns.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"detail": {
"enum": [
"summary",
"routing",
"examples"
],
"type": "string",
"description": "Default summary. Use routing for tool selection guidance, examples for more call examples."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"server",
"purpose",
"compact",
"schemas",
"current_scope",
"workflow",
"tools",
"examples",
"vocabulary",
"caveats",
"next_actions",
"contact"
],
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"description": "Routing table: name, when_to_use, required_args, returns."
},
"server": {
"type": "string"
},
"caveats": {
"type": "array",
"items": {
"type": "string"
}
},
"compact": {
"type": "boolean"
},
"contact": {
"type": "string"
},
"purpose": {
"type": "string"
},
"schemas": {
"type": "object",
"properties": {},
"description": "sf-receipt v0: profile, version, schema_uri, context_uri, human_docs.",
"additionalProperties": true
},
"examples": {
"type": "array",
"items": {
"$ref": "#/properties/tools/items"
},
"description": "Worked calls: task plus {tool, arguments}."
},
"workflow": {
"type": "array",
"items": {
"type": "string"
}
},
"vocabulary": {
"type": "array",
"items": {
"$ref": "#/properties/tools/items"
},
"description": "term, meaning."
},
"next_actions": {
"type": "array",
"items": {
"type": "string"
}
},
"current_scope": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Quickstart capability manifest",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}coverage — Coverage — what this server can and cannot verify
What this server covers: deals and loans against the universe, the field inventory with full bound definitions, counterparty roles, current-only scope, and dual-sourced agreement stats (single-source reported separately). An OUT_OF_COVERAGE answer means the deal or field is outside this coverage; UNVERIFIED means it is covered but could not be confirmed. Contact cairn@cmdrvl.com for deeper coverage, history, bonds, entitlements.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deals",
"loans",
"bonds",
"securities",
"fields",
"temporal",
"counterparty_roles",
"confirmation_breakdown",
"confirmation_statistics",
"confirmation_breakdown_note",
"limits",
"contact",
"coverage_source",
"generated_at"
],
"properties": {
"bonds": {
"$ref": "#/properties/loans"
},
"deals": {
"type": "object",
"properties": {},
"description": "covered, named, fully_confirmed_ever, edgar_cmbs_universe.",
"additionalProperties": true
},
"loans": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"fields": {
"type": "array",
"items": {
"$ref": "#/properties/loans"
},
"description": "Per field: field, grain, receipts, field_definition (the full bound definition)."
},
"limits": {
"$ref": "#/properties/loans"
},
"contact": {
"$ref": "#/properties/loans"
},
"temporal": {
"$ref": "#/properties/loans"
},
"securities": {
"anyOf": [
{
"$ref": "#/properties/loans"
},
{
"type": "null"
}
]
},
"generated_at": {
"type": [
"string",
"null"
]
},
"coverage_source": {
"enum": [
"bundled",
"shard-manifest",
"shard-fallback"
],
"type": "string"
},
"counterparty_roles": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"deals"
],
"properties": {
"role": {
"type": "string"
},
"deals": {
"type": "number"
}
},
"additionalProperties": false
}
},
"confirmation_breakdown": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"type": "number"
}
},
{
"type": "null"
}
]
},
"confirmation_statistics": {
"anyOf": [
{
"$ref": "#/properties/loans"
},
{
"type": "null"
}
]
},
"confirmation_breakdown_note": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}{
"title": "Coverage — what this server can and cannot verify",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}find_deals — Find covered deals
Search covered deals by id, trust name, CIK, alias, shelf, vintage or deal_ref. An EXACT query returns one dominant result. A fuzzy query returns a small ranked set with match reasons, periods and a suggested next call. Returns at most the requested number of matches.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Maximum ranked candidates to return (default 5; 10 on the builtin fallback; max 25)."
},
"query": {
"type": "string",
"description": "Deal name, ticker-style id, CIK, alias, shelf/vintage fragment, or deal_ref to search."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query",
"count",
"total_matches",
"truncated",
"limit",
"matches",
"message",
"next_actions"
],
"properties": {
"count": {
"type": "number"
},
"limit": {
"type": "number"
},
"query": {
"type": "string"
},
"matches": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"description": "Deal id, cik, name, shelf, vintage, aliases, score."
},
"message": {
"type": "string"
},
"truncated": {
"type": "boolean"
},
"next_actions": {
"type": "array",
"items": {
"type": "string"
}
},
"total_matches": {
"type": "number"
},
"search_backend": {
"$ref": "#/properties/matches/items"
}
},
"additionalProperties": false
}{
"title": "Find covered deals",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}covered_deals — Covered deals
List every deal this server can verify, with CIKs, aliases and filing periods. Returns the full covered set, which can be long.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"field",
"count",
"deals"
],
"properties": {
"count": {
"type": "number"
},
"deals": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"cik",
"deal_ref",
"shelf",
"vintage",
"num_loans_current",
"periods",
"aliases"
],
"properties": {
"id": {
"type": "string"
},
"cik": {
"type": "string"
},
"name": {
"type": "string"
},
"shelf": {
"type": [
"string",
"null"
]
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"periods": {
"type": "array",
"items": {
"type": "string"
}
},
"vintage": {
"type": "string"
},
"deal_ref": {
"type": [
"string",
"null"
],
"description": "Canonical deal-registry URN (cmdrvl:DEAL-…), or null."
},
"num_loans_current": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
}
},
"field": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Covered deals",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_loan_field — Verify a loan-grain field
Verify one loan-grain field of a CMBS loan against the SEC 10-D and ABS-EE filings. Values are TRUST-LEVEL (this trust's piece, not the whole loan). Always the CURRENT period; the receipt stamps its as-of. Pass claimed_value: you get CONFIRM / DENY / CONFLICT / UNVERIFIED plus an sf-receipt. No claim: UNVERIFIED. An unknown deal, loan or field: OUT_OF_COVERAGE.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deal",
"loan_id",
"field"
],
"properties": {
"deal": {
"type": "string",
"description": "Deal name or alias, e.g. 'WFCM 2020-C58' or 'Wells Fargo 2020-C58'."
},
"field": {
"enum": [
"beginning_balance",
"ending_balance",
"scheduled_principal",
"scheduled_interest",
"note_rate",
"servicer_advances",
"paid_through_date"
],
"type": "string",
"description": "The loan-grain field to verify. One of (full definitions: coverage, or the receipt's field_definition):\n• beginning_balance — trust-level SCHEDULED balance at period start\n• ending_balance — trust-level SCHEDULED balance at period end (not the actual/as-paid balance)\n• scheduled_principal — principal applied: scheduled amortization plus unscheduled (curtailments, payoffs)\n• scheduled_interest — scheduled interest, trust-level\n• note_rate — current note rate in percent (not origination rate, not pool WAC)\n• servicer_advances — Taxes & Insurance (escrow) advances outstanding, not P&I advances\n• paid_through_date — paid-through date (a date; exact match)"
},
"loan_id": {
"type": "string",
"description": "Loan / entity id within the deal, e.g. '25'."
},
"claimed_value": {
"type": [
"number",
"string"
],
"description": "Claim to receipt (number, or date string for paid_through_date). Required: no claim = refusal, no value."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"claim",
"receipt",
"resolved_deal",
"as_of",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"claim": {
"type": "object",
"properties": {},
"description": "Adjudication: claimed_value, tolerance_*, within_tolerance, rationale.",
"additionalProperties": true
},
"message": {
"type": "string"
},
"receipt": {
"type": "object",
"properties": {},
"description": "sf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json",
"additionalProperties": true
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string",
"description": "Caller-claim verdict; DENY only here."
},
"resolved_deal": {
"type": "object",
"properties": {},
"description": "Deal resolution: matched, id, cik, candidates.",
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify a loan-grain field",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_deal_field — Verify a deal-grain (pool) field
Verify one pool-level field of a deal: the ABS-EE loan-tape rollup against the 10-D trustee's reported fact. These are COLLATERAL (loan-pool) balances and flows, NOT bond or certificate balances, and SCHEDULED and ACTUAL are different fields. No loan_id. Always the CURRENT period. Pass claimed_value; no claim: UNVERIFIED; an unknown deal or field: OUT_OF_COVERAGE.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deal",
"field"
],
"properties": {
"deal": {
"type": "string",
"description": "Deal name or alias, e.g. 'WFCM 2020-C58'."
},
"field": {
"enum": [
"beginning_scheduled_collateral_balance",
"ending_scheduled_collateral_balance",
"ending_actual_collateral_balance",
"total_principal_collected"
],
"type": "string",
"description": "The deal-grain (pool) field to verify. One of (full definitions: coverage, or the receipt's field_definition):\n• beginning_scheduled_collateral_balance — pool SCHEDULED collateral balance at period start (not bond balance)\n• ending_scheduled_collateral_balance — pool SCHEDULED collateral balance at period end (not bond balance)\n• ending_actual_collateral_balance — pool ACTUAL (as-paid) collateral balance at period end\n• total_principal_collected — pool principal collected: scheduled plus unscheduled"
},
"claimed_value": {
"type": [
"number",
"string"
],
"description": "Claim to receipt. Required: no claim = refusal, no value."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"claim",
"receipt",
"resolved_deal",
"as_of",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"claim": {
"type": "object",
"properties": {},
"description": "Adjudication: claimed_value, tolerance_*, within_tolerance, rationale.",
"additionalProperties": true
},
"message": {
"type": "string"
},
"receipt": {
"type": "object",
"properties": {},
"description": "sf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json",
"additionalProperties": true
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string",
"description": "Caller-claim verdict; DENY only here."
},
"resolved_deal": {
"type": "object",
"properties": {},
"description": "Deal resolution: matched, id, cik, candidates.",
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify a deal-grain (pool) field",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_fund_holding_coupon — Verify NPORT cross-filer fund-holding coupon
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"identifier"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$",
"description": "Optional NPORT period guard (YYYY-MM). The public corpus is latest-period-per-security, not historical."
},
"identifier": {
"type": "string",
"description": "Security identifier to look up: ISIN, CUSIP, other identifier, or ticker."
},
"claimed_value": {
"type": [
"number",
"string"
],
"description": "Claim to receipt. Required: no claim = refusal, no value."
},
"security_id_source": {
"enum": [
"isin",
"cusip",
"other",
"ticker",
"any"
],
"type": "string",
"description": "Optional source filter. Default any. Use ticker only for ticker-sourced matches."
},
"require_hard_identifier": {
"type": "boolean",
"description": "When true, exclude ticker-sourced matches because tickers are not unique hard identifiers."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"claim",
"receipt",
"resolved_security",
"as_of",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"claim": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"message": {
"type": "string"
},
"receipt": {
"type": "object",
"properties": {},
"description": "sf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json",
"additionalProperties": true
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string",
"description": "Caller-claim verdict; DENY only here."
},
"resolved_security": {
"type": "object",
"properties": {},
"description": "Security resolution: matched, security_id, hard_identifier, candidates.",
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify NPORT cross-filer fund-holding coupon",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_building_size — Verify issuance building size
Verify issuance building size (Annex A vs ABS-EE). Units matter: mismatched units return receipt status UNITS_INCOMMENSURATE, not CONFLICT/DENY. A deal or loan outside coverage returns OUT_OF_COVERAGE.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deal",
"loan_id"
],
"properties": {
"deal": {
"type": "string",
"description": "Deal name or alias, e.g. 'WFCM 2020-C58'."
},
"loan_id": {
"type": "string",
"description": "Loan / entity id within the deal, e.g. '25'."
},
"claimed_unit": {
"type": "string",
"description": "Optional unit, e.g. square_feet or units."
},
"claimed_value": {
"type": [
"number",
"string"
],
"description": "Claim to receipt. Required."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"claim",
"receipt",
"resolved_deal",
"as_of",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"claim": {
"type": "object",
"properties": {},
"description": "Adjudication: claimed_value, tolerance_*, within_tolerance, rationale.",
"additionalProperties": true
},
"message": {
"type": "string"
},
"receipt": {
"type": "object",
"properties": {},
"description": "sf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json",
"additionalProperties": true
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string",
"description": "Caller-claim verdict; DENY only here."
},
"resolved_deal": {
"type": "object",
"properties": {},
"description": "Deal resolution: matched, id, cik, candidates.",
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify issuance building size",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_appraised_value — Verify issuance appraised value
Verify issuance appraised value (Annex A vs ABS-EE). Date/basis mismatches return DATE_INCOMMENSURATE or BASIS_INCOMMENSURATE, not CONFLICT/DENY. A deal or loan outside coverage returns OUT_OF_COVERAGE.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deal",
"loan_id"
],
"properties": {
"deal": {
"type": "string",
"description": "Deal name or alias, e.g. 'WFCM 2020-C58'."
},
"loan_id": {
"type": "string",
"description": "Loan / entity id within the deal, e.g. '25'."
},
"claimed_basis": {
"type": "string",
"description": "Optional valuation basis."
},
"claimed_value": {
"type": [
"number",
"string"
],
"description": "Claim to receipt. Required."
},
"claimed_value_date": {
"type": "string",
"description": "Optional valuation date."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"claim",
"receipt",
"resolved_deal",
"as_of",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"claim": {
"type": "object",
"properties": {},
"description": "Adjudication: claimed_value, tolerance_*, within_tolerance, rationale.",
"additionalProperties": true
},
"message": {
"type": "string"
},
"receipt": {
"type": "object",
"properties": {},
"description": "sf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json",
"additionalProperties": true
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string",
"description": "Caller-claim verdict; DENY only here."
},
"resolved_deal": {
"type": "object",
"properties": {},
"description": "Deal resolution: matched, id, cik, candidates.",
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify issuance appraised value",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_counterparty — Verify a deal counterparty (roster)
Adjudicate 'who is the <role> on deal X' against the SEC 10-D counterparty roster (today: master and special servicer). A SINGLE-SOURCE roster fact. Master is the roster party, NOT the ABS-EE tape's primary servicer. Pass claimed_name: CONFIRM/DENY under the ledger's name normalization, never fuzzy. Says WHO the party is, not that a loan is in special servicing. Unknown deal or role: OUT_OF_COVERAGE.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deal"
],
"properties": {
"deal": {
"type": "string",
"description": "Deal name or alias, e.g. 'WFCM 2020-C58'."
},
"role": {
"enum": [
"master_servicer",
"special_servicer"
],
"type": "string",
"description": "Default special_servicer. Full definitions ride each receipt's field_definition."
},
"claimed_name": {
"type": "string",
"description": "Name to adjudicate (normalized comparison)."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"claim",
"receipt",
"resolved_deal",
"as_of",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"claim": {
"type": "object",
"properties": {},
"description": "Adjudication: claimed_value, tolerance_*, within_tolerance, rationale.",
"additionalProperties": true
},
"message": {
"type": "string"
},
"receipt": {
"type": "object",
"properties": {},
"description": "sf-receipt 0.3; schema https://cmdrvl.com/schemas/sf-receipt/v0/schema.json; context https://cmdrvl.com/contexts/obs-receipt/v0/context.json",
"additionalProperties": true
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string",
"description": "Caller-claim verdict; DENY only here."
},
"resolved_deal": {
"type": "object",
"properties": {},
"description": "Deal resolution: matched, id, cik, candidates.",
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify a deal counterparty (roster)",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_loan_status_counts — Verify a deal's loan-status counts (derived)
Verify count claims over loan status ('N in special servicing / paid off / defeased') for a deal. Counts are DERIVED from the ABS-EE tape, not reported by any filing. Three grains, never mixed: activity (active, resolved_paid_off, defeased); servicing: in_special_servicing = loans CURRENTLY with the special servicer (the count for 'N in special servicing'; it OVERLAPS active, never sum); resolution reason (resolved_via_special_servicing and other payoff reasons) = loans that already LEFT the pool, NOT current counts. Pass `claimed` for exact per-status adjudication. Uncovered deal: UNVERIFIED.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"deal"
],
"properties": {
"deal": {
"type": "string",
"description": "Deal name or alias, e.g. 'WFCM 2020-C58'."
},
"claimed": {
"type": "object",
"description": "Optional claimed per-status counts, e.g. {\"in_special_servicing\": 10, \"defeased\": 2}. Each is adjudicated by EXACT match against the derived count.",
"propertyNames": {
"enum": [
"active",
"resolved_paid_off",
"defeased",
"in_special_servicing",
"resolved_via_special_servicing",
"voluntary_prepayment",
"payoff_unclassified",
"liquidated_loss",
"matured_balloon",
"repurchased"
]
},
"additionalProperties": {
"type": "number"
}
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim_verdict",
"resolved_deal",
"as_of",
"statuses",
"message"
],
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"statuses": {
"type": "array",
"items": {
"$ref": "#/properties/resolved_deal"
},
"description": "Per status: status, grain, count, claimed, claim_verdict, receipt."
},
"claim_verdict": {
"enum": [
"CONFIRM",
"DENY",
"CONFLICT",
"UNVERIFIED",
"OUT_OF_COVERAGE"
],
"type": "string"
},
"resolved_deal": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}{
"title": "Verify a deal's loan-status counts (derived)",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_claims — Verify every checkable claim in a text (bulk)
Bulk verifier: paste text, get per-claim statuses. ASSERTIONS ONLY: a QUESTION ('is it $9.4M?') binds nothing and returns total 0; single-value questions are not claims and are not checked here. Deterministic grammar, four families: loan fields, pool fields, servicer identity, loan-status counts. Unparsed text is listed in unchecked_spans, never dropped. EXACT deal references (id, alias, CIK) work best; matching is never fuzzy. Statuses (verified / contradicted / insufficient_evidence / out_of_scope) are answers, not errors. Each claim has a claim_id, citations and a confidence.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The paragraph / memo excerpt to check."
},
"deal_hint": {
"type": "string",
"description": "Fallback deal context when a sentence names no deal (exact resolution only)."
},
"period_hint": {
"type": "string",
"description": "YYYY-MM annotation only — latest-only server; a mismatch is noted and drops confidence one tier."
},
"risk_tolerance": {
"enum": [
"strict",
"normal",
"lenient"
],
"type": "string",
"description": "Default normal = max(ledger tolerance, stated precision); strict = ledger only; lenient = 2x stated precision. Counts and names are always exact."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claims",
"summary",
"material_issues",
"unchecked_spans",
"search_backend",
"tool_version"
],
"properties": {
"claims": {
"type": "array",
"items": {
"type": "object",
"required": [
"claim_id",
"claim_text",
"status",
"confidence"
],
"properties": {
"status": {
"enum": [
"verified",
"contradicted",
"insufficient_evidence",
"out_of_scope"
],
"type": "string"
},
"claim_id": {
"type": "string"
},
"claim_text": {
"type": "string"
},
"confidence": {
"enum": [
"high",
"medium",
"low"
],
"type": "string"
}
},
"additionalProperties": true
},
"description": "Per claim: normalized_claim, citations, notes, recommended_language."
},
"summary": {
"type": "object",
"properties": {},
"description": "Counts: total, verified, contradicted, insufficient_evidence, out_of_scope.",
"additionalProperties": true
},
"tool_version": {
"type": "string"
},
"search_backend": {
"$ref": "#/properties/material_issues/items"
},
"material_issues": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"unchecked_spans": {
"type": "array",
"items": {
"$ref": "#/properties/material_issues/items"
},
"description": "Text no grammar rule could check, with reason and hint."
}
},
"additionalProperties": false
}{
"title": "Verify every checkable claim in a text (bulk)",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 575 ms
- 95th percentile latency
- 575 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 575 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http cmd-rvl-receipts-mcp https://receipts.cmdrvl.com/mcpCodex
codex mcp add cmd-rvl-receipts-mcp --url https://receipts.cmdrvl.com/mcpCursor
{
"mcpServers": {
"cmd-rvl-receipts-mcp": {
"url": "https://receipts.cmdrvl.com/mcp"
}
}
}Cline
{
"mcpServers": {
"cmd-rvl-receipts-mcp": {
"type": "streamableHttp",
"url": "https://receipts.cmdrvl.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"cmd-rvl-receipts-mcp": {
"type": "http",
"url": "https://receipts.cmdrvl.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http cmd-rvl-receipts-mcp https://receipts.cmdrvl.com/mcpClaude Desktop
https://receipts.cmdrvl.com/mcpWindsurf
{
"mcpServers": {
"cmd-rvl-receipts-mcp": {
"serverUrl": "https://receipts.cmdrvl.com/mcp"
}
}
}Let your agent find its tools
Find servers like CMD+RVL Receipts MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run CMD+RVL Receipts MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.