MCP Server

Connect Claude, ChatGPT, Cursor, and any other Model Context Protocol agent directly to American Default's economic-distress data. Five read-only tools. Anonymous tier on by default — no signup required for normal use.

Endpoint

https://mcp.americandefault.org/mcp

Transport: Streamable HTTP (the current MCP transport spec). TLS terminated at Google's edge.

Fallback URL (if mcp.americandefault.org is unreachable)
https://mcp-server-143101922482.us-central1.run.app/mcp

Same server, same auth model, less memorable address. Use this if the custom domain has a DNS issue.

Anonymous tier (no key required)

Call any tool with no Authorization header. Rate limit: 10 calls per minute, 60 per hour, per IP block. Plenty for an AI agent making 1–3 calls per user query.

If you need more, request an issued key (see below).

Connect from Python

import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    async with streamablehttp_client("https://mcp.americandefault.org/mcp") as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print(f"Tools: {[t.name for t in tools.tools]}")

            result = await session.call_tool(
                "get_indicator", {"slug": "the-buffer"}
            )
            print(result.content[0].text)

asyncio.run(main())

Requires the mcp Python SDK (pip install mcp). Same SDK that ships with the Anthropic Python library.

Connect from Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "american-default": {
      "transport": "streamable-http",
      "url": "https://mcp.americandefault.org/mcp"
    }
  }
}

Restart Claude Desktop. The five tools appear under the hammer icon.

Available tools

  • get_indicator(slug: str)

    Compact snapshot of any economic indicator by slug. Returns latest value, unit, frequency, direction, pre-computed aggregates (period averages, extremes, sustained runs), editorial prose, and canonical APA / MLA / Chicago / news-copy citations.

    get_indicator(slug='the-buffer')
  • get_county_scorecard(fips: str)

    County Distress Index scorecard by 5-digit FIPS code. Returns composite score (0-100), zone, national + state rank, 5-domain breakdown, key findings, and pre-baked citations. 3,144 counties available.

    get_county_scorecard(fips='13063')
  • get_adi_composite()

    Latest quarterly reading of the American Distress Index composite. Returns score, zone, composite Z-score, and the 5-component breakdown with point contributions.

    get_adi_composite()
  • search_indicators(query: str, limit: int = 10)

    Search the 96-indicator registry by keyword. Returns ranked matches with slug, branded name, name, category, and canonical URL.

    search_indicators(query='savings', limit=5)
  • get_cross_correlations(slug: str)

    Statistically validated leading/lagging relationships for an indicator. Source: the five-filter leading-indicator scanner. Returns `as_leader` (this indicator precedes its follower) and `as_follower` (another indicator precedes this one).

    get_cross_correlations(slug='initial-unemployment-claims-sa')

Schema versioning

Every response includes schema_version: "v1". Breaking changes ship as a new tool with a _v2 suffix; v1 tools stay live for at least 90 days after v2 ships. Clients should assert the schema version they expect.

Citations

Every tool response includes a citation object with APA, MLA, Chicago, and news-copy formats. Three-tier naming is enforced:

  • American Default Research — institutional name, used in citations, source lists, bibliographies
  • American Default — brand name, used for URLs and casual references
  • American Distress Index (ADI) — product name, used only when the composite score is the subject

Data is licensed CC BY 4.0. Free to use with attribution.

Request an issued API key (higher rate limits)

Need more than 10 calls per minute? Tell us about your use case and we'll issue a key. Issued tier limits: 60 calls/min, 600/hour.

Submission is rate-limited to one request per minute per IP. Your email is used only to send you the issued key and reply if we have questions.

Got it. We'll get back to you within a few business days at the email you provided.
Something went wrong. If this keeps happening, email research@americandefault.org and reference what you saw here.

Need a key right now for testing?

Anonymous tier handles most test workflows. If you're hitting the rate limit during integration, send the form above and mention "integration test" — we prioritize those.

What's behind the rate limits

The two-layer rate-limit model (per-key + per-IP) protects against bulk-scrape attacks and rotating-key abuse. The hard ceiling is per-IP at 100 calls/minute regardless of how many keys are presented. Even at full bore, a sweep of every indicator and county takes about 30 minutes — and the same data is already statically available at americandefault.org/api/*.json (faster).

If your use case requires bulk extraction, the static JSON files and llms.txt are the right surfaces. The MCP exists for agent-time citation.