Loan-level CMBS data from SEC filings: loans, trusts, CUSIPs, distress index, tenants, comps.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Coverage, as-of dates, counts, the headline index, plan limits, license and links (docs, OpenAPI, changelog).
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http cmbs-news https://cmbs.news/mcp
Coverage, as-of dates, counts, the headline index, plan limits, license and links (docs, OpenAPI, changelog).
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Single-property CMBS loans as comparables: revenue, operating expenses, NOI (and each per square foot), expense ratio, occupancy, DSCR and valuations, filtered by type, metro, state, size and year built, with medians.
| Argument | Type | Description |
|---|---|---|
| cbsa | string | Census CBSA metro code |
| type | string | Property type |
| limit | number | Up to 25 free, 400 with a Pro or Team key; the medians always cover every match |
| state | string | Two-letter state code |
| max_sqft | number | Maximum square feet |
| min_sqft | number | Minimum square feet |
| built_after | number | Year built at or after |
{
"type": "object",
"required": [],
"properties": {
"cbsa": {
"type": "string",
"description": "Census CBSA metro code"
},
"type": {
"enum": [
"office",
"retail",
"multifamily",
"lodging",
"industrial",
"mixed-use",
"self-storage",
"manufactured-housing",
"healthcare",
"other"
],
"type": "string",
"description": "Property type"
},
"limit": {
"type": "number",
"description": "Up to 25 free, 400 with a Pro or Team key; the medians always cover every match"
},
"state": {
"type": "string",
"description": "Two-letter state code"
},
"max_sqft": {
"type": "number",
"description": "Maximum square feet"
},
"min_sqft": {
"type": "number",
"description": "Minimum square feet"
},
"built_after": {
"type": "number",
"description": "Year built at or after"
}
},
"additionalProperties": false
}The cmbs.news distress index: monthly delinquency, special-servicing and matured-unpaid rates (balance-weighted, every public trust), plus current rates by property type, vintage, property type by vintage and state, and this month's transfers in and out of special servicing. Open data under CC BY 4.0.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Look up a CMBS certificate class by CUSIP: its trust, coupon, original and current balance, principal paid, realized losses and credit support from the latest trustee report.
| Argument | Type | Description |
|---|---|---|
| cusip* | string | 9-character CUSIP |
{
"type": "object",
"required": [
"cusip"
],
"properties": {
"cusip": {
"type": "string",
"description": "9-character CUSIP"
}
},
"additionalProperties": false
}One loan: terms, status, coverage, occupancy, the three largest tenants, watch flags, every trust holding a piece, and from the trustee report the special servicer's comment facts, appraisal reduction and advances. The special servicer is named only when one trust holds the whole loan and its report names one. A Pro or Team key adds the 12-month history, the operating statement, the rent roll detail, the servicer comment excerpt and modification terms.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The loan slug: the last part of its cmbs.news URL, from search_loans |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The loan slug: the last part of its cmbs.news URL, from search_loans"
}
},
"additionalProperties": false
}Pro and Team: every monthly report for one loan back to its first filing (late 2016 at the earliest): balance, payment status, special servicing, workout strategy, modification, coverage and occupancy. Without a key it says how to get it; the loan page shows the last six months.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The loan slug: the last part of its cmbs.news URL, from search_loans |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The loan slug: the last part of its cmbs.news URL, from search_loans"
}
},
"additionalProperties": false
}Pro and Team: the guarantors, named parties and contacts SEC filings give for one loan (prospectus Annex A-1, the trust's 10-D), each with a link to its filing. Without a key it says how many are on file and how to get them.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The loan slug: the last part of its cmbs.news URL, from search_loans |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The loan slug: the last part of its cmbs.news URL, from search_loans"
}
},
"additionalProperties": false
}A trust (deal) by slug or name fragment: balance and distress, parties (master and special servicer, directing certificateholder, operating advisor, trustee), every certificate class with CUSIP, coupon, balance, losses and credit support, and liquidated loans with loss severity.
| Argument | Type | Description |
|---|---|---|
| trust* | string | Trust slug like "benchmark-2018-b8" or a name fragment like "BANK 2019-BNK16" |
{
"type": "object",
"required": [
"trust"
],
"properties": {
"trust": {
"type": "string",
"description": "Trust slug like \"benchmark-2018-b8\" or a name fragment like \"BANK 2019-BNK16\""
}
},
"additionalProperties": false
}Public CMBS trusts, most distressed first (share of balance delinquent or with the special servicer), optionally filtered by name.
| Argument | Type | Description |
|---|---|---|
| q | string | Name fragment, e.g. "Benchmark" or "2021" |
| limit | number | Up to 25 free, 400 with a Pro or Team key |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"description": "Name fragment, e.g. \"Benchmark\" or \"2021\""
},
"limit": {
"type": "number",
"description": "Up to 25 free, 400 with a Pro or Team key"
}
},
"additionalProperties": false
}Find loans in public CMBS trusts. All filters are optional and combine. Returns the loans (largest first by default), the total count and balance.
| Argument | Type | Description |
|---|---|---|
| q | string | Word starts in the property name, street address, ZIP, city, metro, state, property type or trust name, e.g. "times square", "825 Eighth Avenue" or "houston office" |
| cbsa | string | Census CBSA metro code, e.g. 35620 for New York |
| sort | string | Order |
| type | string | Property type |
| limit | number | Results per call: up to 10 free, 100 with a Pro or Team key |
| state | string | Two-letter state or territory code |
| trust | string | Only loans in this trust, by slug, e.g. "benchmark-2018-b8" |
| offset | number | For paging: free stops at the first 25 results; Pro and Team page through everything |
| status | string | Loan condition |
Every loan in the data where a tenant is among the three largest at the property, with balance, status, coverage and lease end where it is the largest tenant. With no tenant, lists the tenants with the most CMBS exposure.
| Argument | Type | Description |
|---|---|---|
| limit | number | Tenants or loans listed: up to 25 free, 400 with a Pro or Team key |
| tenant | string | Tenant name, e.g. "Walgreens", "Dollar Tree", "WeWork" |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Tenants or loans listed: up to 25 free, 400 with a Pro or Team key"
},
"tenant": {
"type": "string",
"description": "Tenant name, e.g. \"Walgreens\", \"Dollar Tree\", \"WeWork\""
}
},
"additionalProperties": false
}The latest monthly Wire: loans transferred to or returned from special servicing, newly delinquent, moved deeper into delinquency, new appraisal reductions, liquidations with losses, and special servicer updates, largest first. A Pro or Team key adds the comment excerpts.
| Argument | Type | Description |
|---|---|---|
| limit | number | Items per section: default 10 free and 25 with a key, up to 25 free and 400 with a Pro or Team key |
| section | string | One section only |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Items per section: default 10 free and 25 with a key, up to 25 free and 400 with a Pro or Team key"
},
"section": {
"enum": [
"transfers",
"returns",
"delinquent",
"worse",
"appraisals",
"liquidations",
"updates"
],
"type": "string",
"description": "One section only"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.
| tenant | string | A tenant named among the three largest, e.g. "Walgreens" |
| vintage | string | Origination year, e.g. "2021" |
| max_dscr | number | Maximum latest DSCR, e.g. 1.0 |
| max_rate | number | Maximum current interest rate, as a fraction or percent |
| min_dscr | number | Minimum latest DSCR, e.g. 1.25 |
| min_rate | number | Minimum current interest rate, as a fraction or percent: 0.05 or 5 |
| originator | string | Originator, or part of the name, e.g. "Wells Fargo" |
| max_balance | number | Maximum balance in dollars |
| min_balance | number | Minimum balance in dollars |
| max_occupancy | number | Maximum latest occupancy, as a fraction or percent |
| min_occupancy | number | Minimum latest occupancy, as a fraction or percent: 0.8 or 80 |
| maturing_after | string | YYYY-MM or YYYY-MM-DD |
| maturing_before | string | YYYY-MM or YYYY-MM-DD |
| special_servicer | string | Trust's special servicer: finds loans in trusts whose general special servicer is this name, or part of it, e.g. "Rialto". A given loan may be serviced by someone else |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"description": "Word starts in the property name, street address, ZIP, city, metro, state, property type or trust name, e.g. \"times square\", \"825 Eighth Avenue\" or \"houston office\""
},
"cbsa": {
"type": "string",
"description": "Census CBSA metro code, e.g. 35620 for New York"
},
"sort": {
"enum": [
"balance",
"maturity",
"dscr",
"transfer"
],
"type": "string",
"description": "Order"
},
"type": {
"enum": [
"office",
"retail",
"multifamily",
"lodging",
"industrial",
"mixed-use",
"self-storage",
"manufactured-housing",
"healthcare",
"other"
],
"type": "string",
"description": "Property type"
},
"limit": {
"type": "number",
"description": "Results per call: up to 10 free, 100 with a Pro or Team key"
},
"state": {
"type": "string",
"description": "Two-letter state or territory code"
},
"trust": {
"type": "string",
"description": "Only loans in this trust, by slug, e.g. \"benchmark-2018-b8\""
},
"offset": {
"type": "number",
"description": "For paging: free stops at the first 25 results; Pro and Team page through everything"
},
"status": {
"enum": [
"special_servicing",
"delinquent",
"distressed",
"watch",
"matured_unpaid",
"current"
],
"type": "string",
"description": "Loan condition"
},
"tenant": {
"type": "string",
"description": "A tenant named among the three largest, e.g. \"Walgreens\""
},
"vintage": {
"type": "string",
"description": "Origination year, e.g. \"2021\""
},
"max_dscr": {
"type": "number",
"description": "Maximum latest DSCR, e.g. 1.0"
},
"max_rate": {
"type": "number",
"description": "Maximum current interest rate, as a fraction or percent"
},
"min_dscr": {
"type": "number",
"description": "Minimum latest DSCR, e.g. 1.25"
},
"min_rate": {
"type": "number",
"description": "Minimum current interest rate, as a fraction or percent: 0.05 or 5"
},
"originator": {
"type": "string",
"description": "Originator, or part of the name, e.g. \"Wells Fargo\""
},
"max_balance": {
"type": "number",
"description": "Maximum balance in dollars"
},
"min_balance": {
"type": "number",
"description": "Minimum balance in dollars"
},
"max_occupancy": {
"type": "number",
"description": "Maximum latest occupancy, as a fraction or percent"
},
"min_occupancy": {
"type": "number",
"description": "Minimum latest occupancy, as a fraction or percent: 0.8 or 80"
},
"maturing_after": {
"type": "string",
"description": "YYYY-MM or YYYY-MM-DD"
},
"maturing_before": {
"type": "string",
"description": "YYYY-MM or YYYY-MM-DD"
},
"special_servicer": {
"type": "string",
"description": "Trust's special servicer: finds loans in trusts whose general special servicer is this name, or part of it, e.g. \"Rialto\". A given loan may be serviced by someone else"
}
},
"additionalProperties": false
}