DEV Community

Daniel Oliveira
Daniel Oliveira

Posted on Fully Autonomous

Earnings call transcripts for AI agents: reading JPMorgan's Q3 2026 call over MCP

Disclosure: I build Equibles, the financial data MCP server used in this post. Every output below is a real tool call I ran on 18 October 2026, trimmed for length.

The first analyst question on JPMorgan's Q3 2026 earnings call (13 October) was about agentic AI. Jamie Dimon's answer included this line:

"you don't want rogue agents, and there could be thousands of them."

I found it with an AI agent, which felt about right. This post is the workflow: how to give an AI agent earnings call transcripts it can actually use, so it answers "what did management say?" from the call instead of from memory.

Why transcripts are awkward for agents

A transcript looks like plain text, but an agent trips on four things:

  • Length. JPMorgan's call is 99 speaker turns. Dumping all of it into context burns tokens and buries the one answer you wanted.
  • Who said it. "The CFO said" is only useful if the turn is attributed to the right person with the role they held that day.
  • Which quarter. Fiscal calendars drift from calendar years. NVIDIA's May 2026 call is FY2027 Q1. An agent that asks for "Q1 2026" gets the wrong call.
  • Proof. If the agent paraphrases, you need a link back to the exact passage.

So the tools are split: one finds the call, one summarises it, one searches inside it, one reads turns in pages.

Step 1: find the call

GetEarningsCallEvent takes a ticker and an optional fiscal year and quarter, and returns everything filed for that call in one record:

# JPMorganChase Third-Quarter 2026 Earnings Conference Call

- Ticker: JPM
- Fiscal period: FY2026 Q3
- Call date (UTC): 2026-10-13 12:30
- Status: Concluded

Artefacts:
- Audio: available
- Transcript: available
- Transcript document id: 1f670bf7-2b4e-4f96-84b7-40eef055fcba
- 8-K earnings release: available
Enter fullscreen mode Exit fullscreen mode

The agent now knows the call happened, which fiscal quarter it belongs to, and the document id to search.

Step 2: get the shape of the call before reading it

GetEarningsCallToneAndThemes scores each call (tone from -100 cautious to +100 bullish, hedging from 0 to 100) and lists its themes. Asking for the last two calls shows the shift straight away:

Call Tone Hedging
FY2026 Q2 (14 July) 62 38
FY2026 Q3 (13 October) 32 48

And a theme that isn't in the July call's list at all:

| Theme                       | Tone | Mentions | Counted keywords                                   |
| Agentic AI disruption risk  | risk | 13       | agentic, rogue agents, smart cash solution,        |
|                             |      |          | personal agents, credential sharing                |
Enter fullscreen mode Exit fullscreen mode

The mention count is computed by code from the keywords next to it, not asserted by a model, so you can check what was counted. This is the step that tells the agent where to look.

Step 3: jump to the passage

SearchDocument searches inside one document. With the transcript id from step 1 and the query "agentic AI rogue agents", the top excerpt is the Q&A exchange, with a link to the exact lines. The CFO, Jeremy Barnum, framed personal agents as "the intersection of" two old competitive pressures, yield-seeking flows and fintechs, and said that "doesn't mean that we're complacent about it". Then Dimon on outside agents:

"we're not going to allow just any agent to come, you know, outside agent to come in inside the company because it's just too risky for clients"

Each excerpt comes back with a link like equibles.com/stocks/jpm/documents/<id>#fromLine=21&toLine=49, so a reader can open the transcript at that spot.

Step 4: read turns in pages

When the agent does need the full Q&A, GetEarningsCallTranscript returns speaker-labelled turns with limit and offset, and says how many are left ("Turns: 1-40 of 99"). Each turn is attributed to a named person and role only when the identity is trusted; otherwise it shows a role like Operator or a neutral speaker number instead of a guess.

The same call over REST

If you're writing code instead of chatting, the same data is one GET:

curl -G "https://api.equibles.com/v1/stocks/JPM/earnings-calls/2026/3/speakers" \
  --data-urlencode "limit=3" \
  -H "Authorization: Bearer eq_YOUR_KEY"
Enter fullscreen mode Exit fullscreen mode
{"speakerName": "Jeremy Barnum", "speakerRole": "CFO",
 "text": "Thank you very much, and good morning, everyone. The firm delivered net income of $15.3 billion, EPS of $5.57...",
 "startSeconds": 41.46, "endSeconds": 331.36}
Enter fullscreen mode Exit fullscreen mode

The startSeconds and endSeconds fields matter. Transcripts made from audio have the odd slip, so before a quote goes into anything public, check it against the recording at that timestamp. I'd tell an agent to do the same.

Try it

  • In Claude: add a custom connector with https://mcp.equibles.com/mcp and sign in with your account. No key to create. ChatGPT, Cursor and other clients have setup guides.
  • Then ask: "Using Equibles, what did JPMorgan's management say about AI agents on the Q3 2026 earnings call? Quote the speakers and link the passages." Naming the server in the prompt makes the model call the tools instead of answering from memory.
  • The free plan is 100 requests a day, shared between MCP and REST.

More on the tools: the earnings call transcript API page and the earnings call recipe.

That's the whole loop for earnings call transcripts for AI agents: find the call by fiscal period, read its shape, search inside it, then quote with a link and a timestamp. If you run it on another company and something comes back wrong, tell me in the comments and I'll look at it.


Disclosure: I build Equibles. This post was written by an AI agent working from the tool outputs shown, which were run on 18 October 2026; quotes and figures come from those outputs and the linked sources. Nothing here is investment advice.

Top comments (0)