Cursor is where you already write code. So why leave it to hunt down an earnings transcript, copy a paragraph into a scratch file, or eyeball a company's last four quarters before you model a feature? With the Model Context Protocol (MCP), you can pull real earnings call data straight into Cursor's chat and Agent modes and let the editor query it the same way it reads your repo.
This guide walks through connecting Cursor earnings call data through the earningscalls.dev MCP server: getting your connector URL, adding the server to Cursor, verifying the tools show up, and running a realistic in-editor build. If you have used the connector in Claude, this is the exact same server, just wired into a different client.
Why pull earnings data into Cursor
A few concrete reasons developers reach for earnings MCP Cursor setups:
- Build fintech features with real inputs. If you are shipping a screener, a portfolio dashboard, or an alerts service, you need real transcripts, speaker segments, and call metadata to build against. Mock data hides the messy edge cases; real data surfaces them while you are still in the editor.
- Prototype against actual transcripts. Ask Cursor to sketch a summarizer, a sentiment tagger, or a Q&A extractor and feed it a genuine call so you can see the output shape immediately instead of after a deploy.
- Research while you code. Sometimes you just need to know what a CFO said about margins last quarter, or which sector a ticker sits in, without breaking flow to open a browser tab.
The dataset behind the connector covers 2020 to present (5+ years): 246,000+ earnings call transcripts across 12,000+ companies, 70 countries, 170+ exchanges, all 11 GICS sectors, and 11M+ speaker segments. Every segment is tagged with a speaker role: executive, analyst, operator, attendee, or shareholder. That role tagging is what makes it easy to, say, pull only the analyst questions from a call.
Get your connector URL
The MCP server authenticates through a token embedded in the URL, so there is no separate API key header to manage in Cursor.
- Sign in and open your dashboard.
- Go to Connectors and click Generate.
- Copy the URL it produces. It looks like this:
https://earningscalls.dev/u/mct_xxxx/mcp
That mct_xxxx segment is your token. Treat the whole URL like a secret. Anyone who has it can call the server as you and spend against your monthly quota, so keep it out of committed files and shared screenshots.
If you would rather see the full connector overview first, the /mcp page lays out what the server exposes, and the /docs cover the underlying API in detail.
Add the MCP server in Cursor
Cursor reads MCP servers from a JSON config. You have two places to put it:
- Project-level:
.cursor/mcp.jsonin your repo root — scoped to that project, handy when a specific codebase needs the data. - Global:
~/.cursor/mcp.json— available in every workspace.
You can also reach the config through Cursor Settings → MCP → Add new MCP server, which opens the same file.
The earningscalls.dev connector is a remote HTTP MCP server, so you point Cursor at the URL directly:
{
"mcpServers": {
"earningscalls": {
"url": "https://earningscalls.dev/u/mct_xxxx/mcp"
}
}
}
Swap mct_xxxx for your real token from the dashboard. Save the file.
If your Cursor version does not yet support remote MCP URLs directly, use a stdio bridge with mcp-remote, which wraps the HTTP endpoint as a local server:
{
"mcpServers": {
"earningscalls": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://earningscalls.dev/u/mct_xxxx/mcp"]
}
}
}
Either form works. Because the token lives in the URL, you do not add an Authorization header or an env block for a key. This is the same server configuration pattern used across MCP clients — the entry that works in Cursor is the same one that works in Claude Desktop, just placed in a different config file. If you want the Claude-specific walkthrough, see how to connect earnings call transcripts to Claude with MCP.
After saving, open Settings → MCP and toggle the earningscalls server on (or hit refresh). Cursor will connect and enumerate the tools.
Verify the tools
Once the server connects, Cursor lists its tools under the server entry in the MCP settings panel. You should see roughly 13 tools, covering the main ways to reach the data:
- search transcripts — full-text search across all calls
- get transcript — fetch a specific call's full transcript
- speaker segments — pull segments filtered by speaker or role
- calls by ticker — list a company's calls over time
- latest call — the most recent call for a ticker
- upcoming earnings — scheduled calls ahead
- dataset stats — coverage numbers for the whole dataset
- company lookup — resolve a name or ticker to a company
- sectors / industries — browse the GICS taxonomy
A quick sanity check: open Cursor chat (or Agent mode) and ask for the dataset stats.
Using the earningscalls tools, get the dataset stats and tell me how many transcripts and companies are covered.
If Cursor calls the tool and comes back with the coverage numbers, you are connected. If the tools do not appear, jump to Troubleshooting below.
Example: build a quick earnings feature with the data in-editor
Here is the payoff — using the connector to build something real without leaving Cursor. Say you want a small module that fetches a company's latest call and pulls out just the analyst Q&A.
Open Cursor's Agent mode and prompt it:
Look up NVIDIA with the earningscalls company lookup tool, fetch its latest
earnings call, then pull the speaker segments where the role is "analyst".
Then write me a TypeScript function fetchAnalystQuestions(ticker: string)
that reproduces this flow against the REST API, with types for the response.
Cursor does two useful things at once here. First, it calls the MCP tools live — company lookup, latest call, speaker segments filtered to the analyst role — so you can inspect the actual response shape in the chat. Second, it writes the function against that shape instead of a guess. Because you saw the real payload, the generated types match reality.
If you would rather have your production code call the data directly instead of going through MCP, the same dataset is available as a plain REST API. The base URL is https://earningscalls.dev/api/v1, and the full OpenAPI spec lives at https://earningscalls.dev/openapi.json. A neat trick: point Cursor at that spec and ask it to generate a typed client. The MCP tools help you explore and prototype; the REST API is what you ship.
From here you can iterate entirely in-editor — ask Cursor to add pagination, cache the latest-call lookup, or map speaker roles to a UI legend, and it already knows the data model because it just queried it.
Prompts to try
Once the connector is live, these prompts show off what the tools can do inside Cursor:
Search transcripts for mentions of "share buyback" in the technology sector from the last year and summarize the common themes.Get the latest earnings call for AAPL and give me the executives' guidance in bullet points.List the upcoming earnings for the next two weeks so I can seed test data for my calendar feature.Compare how two semiconductor companies talked about supply constraints in their most recent calls.List the GICS sectors and industries so I can build a filter dropdown, and give me the data as a JSON array.Pull only the operator and analyst segments from Microsoft's latest call so I can test my transcript diarization UI.
For a deeper build than a single feature, the walkthrough on building an earnings research agent with MCP and Claude shows how to chain these tools into a repeatable workflow — the same tools you just wired into Cursor.
Troubleshooting
No tools appear after adding the server. Double-check the JSON is valid (a trailing comma is the usual culprit) and that the top-level key is exactly mcpServers. Save the file, then toggle the server off and on, or restart Cursor.
Connection fails or times out. Confirm the URL is complete and includes your mct_xxxx token and the trailing /mcp. Paste the full URL into a browser or curl to check it responds. If you are on the mcp-remote bridge, make sure Node and npx are on your PATH.
"Unauthorized" or empty results. The token in the URL may be stale or the plan quota may be spent. Regenerate the connector from the dashboard and update your mcp.json. Note that reading transcripts on the site is free, but API and MCP access is a paid feature — if you have not subscribed yet, the server will not return data.
Tools show but the agent won't use them. Name the server explicitly in your prompt ("using the earningscalls tools…") and, in Agent mode, make sure tool calls are enabled. Cursor is more likely to reach for a tool when the request clearly maps to one.
It works in Claude but not Cursor. The server is identical; only the config location differs. Verify you edited .cursor/mcp.json (or the global one) and not a Claude config, and that Cursor's MCP panel shows the server as connected.
Start querying earnings data in Cursor
Wiring earnings call data into Cursor takes one JSON block and a token. After that, 246,000+ transcripts, 11M+ role-tagged speaker segments, and full company and sector metadata are a prompt away — for building fintech features, prototyping against real calls, or just answering a research question without leaving the editor. The connector works the same across MCP clients, so setup you do here carries over anywhere; the guide to adding earnings call transcripts to any MCP client covers the rest.
Ready to connect? Generate your connector in the dashboard and pick a plan on the pricing page — Pro at $24.99/mo (5,000 calls/mo) or Ultra at $39.99/mo (25,000 calls/mo).