Read-only MCP for U.S. household distress: 96 indicators, ADI composite, 3,144 counties.
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.
Fetch the latest quarterly reading of the American Distress Index (ADI) composite. Returns the composite score (0-100), band (1-5) with its label and the literal reading gloss, the composite's own rank in history, and the five-domain breakdown (Delinquency, Default & Legal, Debt Burden, Labor, Safety Net & Buffer) with domain scores and member component percentiles. Updated quarterly.
This tool takes no arguments.
Fetch the latest quarterly reading of the American Distress Index (ADI) composite. Returns the composite score (0-100), band (1-5) with its label and the literal reading gloss, the composite's own rank in history, and the five-domain breakdown (Delinquency, Default & Legal, Debt Burden, Labor, Safety Net & Buffer) with domain scores and member component percentiles. Updated quarterly.
No arguments.
{
"type": "object",
"title": "_get_adi_compositeArguments",
"properties": {}
}Fetch a county's County Distress Index (CDI) scorecard by 5-digit FIPS code. Returns composite score (0-100), score label, national + state rank, 5-domain breakdown (Delinquency, Default & Legal, Debt Burden, Labor, Safety Net & Buffer), key findings, and pre-baked APA / MLA / Chicago / news-copy citations. Accepts 4-digit FIPS with implicit leading zero. 3,144 counties available.
| Argument | Type | Description |
|---|---|---|
| fips* | string | The 5-digit numeric county FIPS code as a string (e.g., '13063' for Clayton County, GA). 4-digit values are zero-padded internally. 3,144 counties available. |
{
"type": "object",
"title": "_get_county_scorecardArguments",
"required": [
"fips"
],
"properties": {
"fips": {
"type": "string",
"title": "Fips",
"description": "The 5-digit numeric county FIPS code as a string (e.g., '13063' for Clayton County, GA). 4-digit values are zero-padded internally. 3,144 counties available."
}
}
}Fetch statistically-validated leading/lagging relationships for an indicator. Source: the five-filter leading-indicator scanner (cross-correlation → first-differenced CCF → multi-crisis validation → Granger causality → out-of-sample validation). Returns two lists: `as_leader` (pairs where this indicator precedes its follower) and `as_follower` (pairs where another indicator precedes this one). Only fully-validated pairs are included — partial matches are not surfaced. Most of the 103 indicators return empty lists; only a handful of pairs clear the full gauntlet.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The kebab-case indicator slug to look up (e.g., 'the-buffer', 'initial-unemployment-claims-sa'). Returns split lists of pairs where this indicator is the leader vs the follower. Empty lists are common — only fully-validated pairs surface. |
{
"type": "object",
"title": "_get_cross_correlationsArguments",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"title": "Slug",
"description": "The kebab-case indicator slug to look up (e.g., 'the-buffer', 'initial-unemployment-claims-sa'). Returns split lists of pairs where this indicator is the leader vs the follower. Empty lists are common — only fully-validated pairs surface."
}
}
}Fetch a compact snapshot of an American Default economic indicator by slug. Returns latest value, unit, frequency, direction, pre-computed aggregates (period averages, extremes, sustained runs), editorial prose (when available), and canonical APA / MLA / Chicago / news-copy citations. Raw historical series is NOT included — use https://americandefault.org/api/indicators/{slug}.json for the full data. Slug examples: 'the-buffer' (personal savings rate), 'mortgage-delinquency', 'initial-unemployment-claims-sa'.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The kebab-case indicator slug (e.g., 'the-buffer' for personal savings rate, 'mortgage-delinquency', 'initial-unemployment-claims-sa'). 103 indicators available. Use `search_indicators` first to discover which slug corresponds to a concept. |
{
"type": "object",
"title": "_get_indicatorArguments",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"title": "Slug",
"description": "The kebab-case indicator slug (e.g., 'the-buffer' for personal savings rate, 'mortgage-delinquency', 'initial-unemployment-claims-sa'). 103 indicators available. Use `search_indicators` first to discover which slug corresponds to a concept."
}
}
}Fetch an explicitly versioned compact indicator snapshot. Returns the latest value and canonical citation plus `trend_suppressed` and `series_breaks` comparison-safety fields. Callers must pass `response_version='v2'`; unsupported versions fail closed. The legacy `get_indicator` tool remains pinned to its original v1 shape.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The kebab-case indicator slug (e.g., 'the-buffer' or 'the-pinch'). Use `search_indicators` to discover slugs. |
| response_version* | string | Required explicit response contract version. The only supported value for this tool is 'v2'. |
{
"type": "object",
"title": "_get_indicator_v2Arguments",
"required": [
"slug",
"response_version"
],
"properties": {
"slug": {
"type": "string",
"title": "Slug",
"description": "The kebab-case indicator slug (e.g., 'the-buffer' or 'the-pinch'). Use `search_indicators` to discover slugs."
},
"response_version": {
"type": "string",
"const": "v2",
"title": "Response Version",
"description": "Required explicit response contract version. The only supported value for this tool is 'v2'."
}
}
}Search the 103-indicator registry by keyword. Returns ranked matches (up to `limit`, default 10, max 50) with slug, branded name, underlying name, category, and canonical URL. Scoring is substring+prefix over slug, branded_name, name, and category — e.g. query 'savings' returns both The Buffer (personal saving rate) and The Safety Net (emergency savings survey). Use this when you want to discover which slug corresponds to a concept before calling `get_indicator`.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max number of ranked matches to return. Default 10. Hard cap 50 (values above are clamped). Values above 1000 are rejected as abuse. |
| query* | string | The keyword to search (e.g., 'savings', 'mortgage', 'inflation'). Scoring runs substring + prefix matching over slug, branded_name, name, and category fields. |
{
"type": "object",
"title": "_search_indicatorsArguments",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10,
"description": "Max number of ranked matches to return. Default 10. Hard cap 50 (values above are clamped). Values above 1000 are rejected as abuse."
},
"query": {
"type": "string",
"title": "Query",
"description": "The keyword to search (e.g., 'savings', 'mortgage', 'inflation'). Scoring runs substring + prefix matching over slug, branded_name, name, and category fields."
}
}
}