MCP Integration Beta

Use earningscalls.dev as a Model Context Protocol connector inside Claude Desktop, Claude Code (CLI), or claude.ai. Ask Claude natural-language questions about any of 247,000+ earnings call transcripts — Claude fetches the data automatically and answers with source citations.

What you get

Once connected, Claude can answer questions like:

No browser tabs, no copy-paste, no API client. Just questions and answers with primary-source quotes.

Setup — choose your path

Four ways to connect Claude, in order of simplicity:

Recommended

Claude Desktop with Personal Connector URL

Generate a URL once from your dashboard. Paste it into Claude Desktop's config file. Done — no API key handling, fully revocable.

  1. Open your Dashboard → Claude Connectors
  2. Click Generate URL (give it a name like "MacBook" or "Team")
  3. Copy the URL — it looks like https://earningscalls.dev/u/mct_xxx/mcp
  4. Claude Desktop → Settings → Developer → Edit Config → paste as the url field
  5. Save, fully quit Claude Desktop (Cmd+Q on Mac), reopen. The 🔌 icon shows the tools.
Claude Desktop · API Key

Edit claude_desktop_config.json directly

If you prefer to use your raw API key instead of a connector URL, paste this block into your config file (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "earningscalls": {
      "url": "https://earningscalls.dev/mcp",
      "headers": {
        "X-API-Key": "ect_your_key_here"
      }
    }
  }
}

Fully quit Claude Desktop (Cmd+Q on macOS), then reopen. Look for the 🔌 hammer icon in the chat input — that's your tools menu.

Claude Code (CLI)

Anthropic's terminal client — one command

If you use the claude CLI, skip the JSON editing entirely. Generate your connector URL in the dashboard, then in your terminal:

claude mcp add --transport http \
  earningscalls \
  https://earningscalls.dev/u/mct_xxx/mcp

Verify with claude mcp list. Tools become available in the next chat session.

claude.ai (web)

Add custom connector — Pro / Team accounts

In claude.ai, open Settings → Connectors → Add custom connector:

  1. Generate a connector URL in your dashboard and copy it
  2. Name: EarningsCalls
  3. Remote MCP server URL: paste your connector URL (or https://earningscalls.dev/mcp)
  4. Leave OAuth Client ID and Client Secret empty
  5. Click Add → a consent popup opens on earningscalls.dev. It asks for a credential again — this is expected, it's our authorization screen, not an error.
  6. Paste the same connector URL from step 1 (or your ect_ API key) → Authorize Claude
  7. Popup closes → start a new chat to see the 🔌 icon with tools

⚠ Do not click "Generate URL" again between these steps — every new URL revokes the previous one, which invalidates what you already configured in claude.ai.

Available tools

Claude can invoke any of these when relevant to your question:

search_transcriptsFull-text search across the whole archive
count_mentions_by_tickerAggregate counts per ticker (F500 / S&P 500 analysis)
get_dataset_statsTotal calls, transcripts, date coverage
list_latest_callsNewest calls market-wide, optional sector filter
list_recent_transcriptsNewest by ingest time — "what came in today"
get_latest_callMost recent call for a specific ticker
get_earnings_callCheap metadata for a single call by id
get_call_transcriptFull text of a specific call
get_call_summaryAI summary: highlights, topics, metrics
get_call_componentsStructured sections + participants
get_speakersPer-speaker segments (CEO, CFO, analysts)
get_company_infoBy ticker — sector, industry, exchange, all calls
get_company_by_nameLookup by company name when ticker unknown
get_upcoming_earningsCalendar of upcoming reports
list_earningsCross-company filter by sector/date/industry
list_companiesBrowse companies by sector / exchange / name
list_sectorsAll 11 GICS sectors with counts
list_industries100+ industries, optionally per sector

Cost & usage

MCP tool-calls count 1:1 against your monthly API budget — same as direct REST API requests. A typical research session uses 3-5 tool-calls.

Requires an active subscription — any paid tier (Pro, Ultra, or Enterprise) unlocks the full tool set.

FAQ

Where is my API key stored?

If you use the connector URL, your API key never leaves earningscalls.dev — the URL embeds an opaque token that we resolve server-side. If you use the header-based config, Claude Desktop keeps the key locally; claude.ai stores it encrypted on Anthropic's backend.

What happens if I lose my laptop / leak a connector URL?

Revoke just that connector from your dashboard. The token is invalidated immediately (with up to 5 minutes of cache latency on the MCP server). Your API key stays unchanged — no need to rotate it.

Can I generate multiple connector URLs?

Yes — generate one per device or workspace. Each shows up in the dashboard with name, creation date, and "last used" timestamp. Useful for tracking which device a token is being used from before revocation.

Does this work with Cursor, Cline, or other MCP clients?

Yes. The server speaks the Streamable HTTP MCP transport (revision 2025-03-26), including the Mcp-Session-Id response header on initialize that strict clients require. We test on Claude Desktop, Claude Code (CLI), and claude.ai officially, but any spec-compliant MCP client should connect.

Troubleshooting: "Connector URL invalid or revoked"

You (or someone on your team) generated a new connector URL after configuring this one — generating a new URL revokes the previous one. Fix: open your dashboard, copy the URL of a connector that is still listed as active (or generate one final new one), and update the connector configuration in your Claude client with exactly that URL. Don't regenerate between configuring and authorizing.

Troubleshooting: the claude.ai popup asks for my URL again

That's by design, not a loop: claude.ai requires an OAuth consent step, and our consent screen is where your account gets attached. Paste the same connector URL you configured (or your ect_ API key) exactly once and click Authorize. If it fails after that, check the two issues above and below.

Troubleshooting: "That URL or API key didn't match any account"

Three possible causes: (1) the connector URL you pasted was revoked by a newer one — copy the current URL from your dashboard; (2) a typo or truncated paste — the token is 50+ characters, make sure nothing was cut off; (3) your subscription is inactive — check the status on your dashboard.

Why is it labeled Beta?

The hosted MCP server is in active development. Tool signatures and the auth flow may evolve over the next 1-2 months as MCP-spec details solidify. We'll announce any breaking changes via email to existing users before deploying them.

Guides & deep dives

Get started in 60 seconds

Already a subscriber? Generate your URL now. Otherwise grab a Pro plan and connect.