npm @earningscalls/mcp-serverstreamable-httpupdated 2mo ago
Model Context Protocol server that gives AI agents direct access to the EarningsCalls.dev dataset โ 177,000+ earnings call transcripts from 17,000+ companies across 70 countries and 170+ exchanges (2020 to present), with 11M+ speaker segments cleanly tagged by role (Executive / Analyst / Operator / Attendee / Shareholder), full-text search, and more.
What can you do with EarningsCalls dev?
EarningsCalls MCP Server
Website ยท MCP setup guide ยท API docs ยท License: MIT
Model Context Protocol server that gives AI agents direct access to the EarningsCalls.dev dataset โ 177,000+ earnings call transcripts from 17,000+ companies across 70 countries and 170+ exchanges (2020 to present), with 11M+ speaker segments cleanly tagged by role (Executive / Analyst / Operator / Attendee / Shareholder), full-text search, and more.
Ask Claude (or any MCP-capable client) about any earnings call in natural language:
"What did NVIDIA's CFO say about data center growth in their last call?" "Compare Tesla's gross-margin commentary across the last four quarters." "Find S&P 500 companies that mentioned 'tariffs' in their Q2 2026 calls."
Built as a thin MCP wrapper around the public REST API at https://earningscalls.dev/api/v1. New calls land within minutes of the call ending.
Requirements
- A paid EarningsCalls subscription (Pro, Ultra, or Enterprise). The free test key does not work here โ grab a plan at earningscalls.dev/#pricing (from $24.99/month).
- For the local method only: Node.js 18+.
Installation
Two remote options (zero install, recommended) and one local option.
Option A โ Connector URL (recommended)
The easiest path: a personal connector URL with the token embedded, so there's no API-key header to manage.
- Go to earningscalls.dev/dashboard โ Connectors โ Generate.
- Copy the URL โ it looks like
https://earningscalls.dev/u/<your-token>/mcp.
Claude Desktop / claude.ai (web): Settings โ Connectors โ Add custom connector โ paste the URL โ Add. (On the web, leave the OAuth fields empty and confirm the consent popup.)
Claude Code (CLI):
claude mcp add --transport http earningscalls "https://earningscalls.dev/u/<your-token>/mcp"
# add --scope user to make it available in every project
Cursor โ .cursor/mcp.json:
{
"mcpServers": {
"earningscalls": {
"url": "https://earningscalls.dev/u/<your-token>/mcp"
}
}
}
Each connector URL is independently revocable โ generate one per device or workspace.
Option B โ API-key header
Point your client at the hosted endpoint and pass your API key (ect_...) via the X-API-Key header.
Claude Code (CLI):
claude mcp add earningscalls --transport http https://mcp.earningscalls.dev/mcp \
--header "X-API-Key: ect_your_key_here"
Claude Desktop / Cursor โ config:
{
"mcpServers": {
"earningscalls": {
"url": "https://mcp.earningscalls.dev/mcp",
"headers": { "X-API-Key": "ect_your_key_here" }
}
}
}
Option C โ Local (via npx)
Runs the server as a local process over stdio.
claude mcp add earningscalls \
--env EARNINGSCALLS_API_KEY=ect_your_key_here \
-- npx -y @earningscalls/mcp-server
Or in a client config:
{
"mcpServers": {
"earningscalls": {
"command": "npx",
"args": ["-y", "@earningscalls/mcp-server"],
"env": { "EARNINGSCALLS_API_KEY": "ect_your_key_here" }
}
}
}
Coverage
| Earnings call transcripts | 177,000+ |
| Companies | 17,000+ |
| Countries / exchanges | 70 / 170+ |
| History | 2020 โ present (5+ years) |
| Speaker segments | 11M+ (Executive / Analyst / Operator / Attendee / Shareholder) |
| Sectors | All 11 GICS sectors |
| Freshness | New calls within minutes of the call ending |
Available Tools
| Tool | Description |
|---|---|
get_dataset_stats |
Total counts and date range โ call first to understand coverage. |
list_latest_calls |
Most recent calls, optionally filtered by sector. |
list_recent_transcripts |
Recently added transcripts. |
list_calls_by_ticker |
All calls for a ticker (e.g. PLTR, AAPL), newest first. |
get_latest_call_for_ticker |
Single most recent call for a ticker. |
get_company_by_name |
Look up a company by full/partial name. |
list_companies |
Browse / search companies. |
list_upcoming_earnings |
Scheduled calls in the next N days. |
get_earnings_call |
Metadata for a single call. |
get_transcript |
Full text of a call โ format full, summary, or components. |
get_speaker_segments |
Speaker segments with role filter (Executive / Analyst / Operator โฆ). |
search_transcripts |
Full-text search across all transcripts and speaker segments. |
search_within_ticker |
Full-text search scoped to one ticker. |
list_sectors / list_industries |
Discover filter dimensions. |
Environment Variables
Local mode (stdio)
| Variable | Required | Default |
|---|---|---|
EARNINGSCALLS_API_KEY |
yes | โ |
EARNINGSCALLS_BASE_URL |
no | https://earningscalls.dev |
Remote mode (HTTP)
| Variable | Required | Default |
|---|---|---|
PORT |
no | 3000 |
EARNINGSCALLS_BASE_URL |
no | https://earningscalls.dev |
In remote mode the API key is provided per session by the connecting client โ either embedded in the connector URL (Option A) or via the X-API-Key header (Option B).
Development
npm install
npm run build
npm start # local stdio mode
npm run serve # remote HTTP mode
Source layout:
src/
โโโ index.ts # stdio entry + preflight (local mode)
โโโ http.ts # Streamable HTTP entry (remote mode)
โโโ client.ts # HTTP client for earningscalls.dev API
โโโ config.ts # env var loading
โโโ messages.ts # user-facing banners + error hints
โโโ tools.ts # MCP tool definitions
License
MIT
Install
Add EarningsCalls dev to your client. Pick the one you use.
{
"servers": {
"mcp-server": {
"type": "http",
"url": "https://mcp.earningscalls.dev/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
claude mcp add mcp-server -- npx -y @earningscalls/mcp-servercodex mcp add mcp-server -- npx -y @earningscalls/mcp-serveramp mcp add mcp-server -- npx -y @earningscalls/mcp-server{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp-server": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp-server": {
"command": {
"path": "npx",
"args": [
"-y",
"@earningscalls/mcp-server"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @earningscalls/mcp-serverRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
13 tools
EarningsCalls dev exposes 13 tools to a connected agent.
- get_dataset_stats
- Total counts and date range โ call first to understand coverage.
- list_latest_calls
- Most recent calls, optionally filtered by sector.
- list_recent_transcripts
- Recently added transcripts.
- list_calls_by_ticker
- All calls for a ticker (e.g. `PLTR`, `AAPL`), newest first.
- get_latest_call_for_ticker
- Single most recent call for a ticker.
- get_company_by_name
- Look up a company by full/partial name.
- list_companies
- Browse / search companies.
- list_upcoming_earnings
- Scheduled calls in the next N days.
- get_earnings_call
- Metadata for a single call.
- get_transcript
- Full text of a call โ format `full`, `summary`, or `components`.
- get_speaker_segments
- Speaker segments with role filter (Executive / Analyst / Operator โฆ).
- search_transcripts
- Full-text search across all transcripts and speaker segments.
- search_within_ticker
- Full-text search scoped to one ticker.
Score
73 / 100
Good
- Documentation25/25
- Maintenance16/25
- Trust9/20
- Capability8/15
- Install experience15/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 61 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 13 tool(s) documented
- Provides prompt templates
- Provides resources
- 18 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.2.1Latest | Jul 2, 2026 |
| 0.1.0 | Jul 2, 2026 |