Strategy·Developer / quant··7 min read

An MCP Research Loop: Flow and Earnings Transcripts, All in Claude

Run a full options-flow-plus-earnings research loop inside Claude using both MCP servers: OptionsBell for unusual flow and earningscalls.dev for summaries and transcript search.

Both OptionsBell and earningscalls.dev expose MCP servers, which means you can run an entire flow-and-earnings research loop inside Claude without writing glue code. OptionsBell surfaces today's unusual options activity; earningscalls.dev pulls the matching call summaries and searches transcripts. This post walks through the setup and a handful of concrete prompts that chain the two together. Setup for the OptionsBell side is at optionsbell.com/docs/mcp.

Connect both servers

Add both MCP servers to Claude and confirm they are live. The OptionsBell server uses the same data and plan as the REST API, so your Pro limits carry over. Once connected, Claude can call flow tools and earnings tools in the same conversation and pass results between them, which is the whole point of the loop.

  • OptionsBell MCP: today's unusual flow, filterable by Vol/OI, premium, IV, DTE
  • earningscalls.dev MCP: call summaries, transcript search, mention counts, upcoming calendar
  • Claude orchestrates: flow output becomes the input to the earnings queries

Prompt 1: get the flow, then narrow to earnings names

Start broad, then filter to the names where a catalyst is imminent. Claude runs the OptionsBell tool, then checks each ticker against the earnings calendar.

Get today's unusual options flow from OptionsBell, calls only,
sorted by premium. For each ticker, check whether it reports
earnings this week. Show me only the names that report this week.

What comes back is a short, high-signal list: unusual call activity specifically on names about to print, which is exactly the pre-earnings positioning worth a closer look.

Prompt 2: pull the last call and search for demand talk

For each surviving name, get the prior call summary and search the transcript for the theme that matters to the trade.

For each of those tickers, pull the most recent earnings call
summary. Then search that transcript for anything management
said about demand, backlog, or bookings, and quote the lines.

Now every flow print has context attached: the last guide, and management's own words on demand. Claude returns it as one consolidated table instead of you tabbing between six transcripts.

Prompt 3: mention counts as a tiebreaker

When two names look similar, mention counts break the tie by showing where the call's pressure actually sat.

For the two names with the largest call premium, count how often
guidance, AI, and margins came up on their last call. Flag any
where the flow direction disagrees with the call's tone.

This is the step that catches flow running ahead of the fundamentals, and it takes one sentence because Claude already has both tools in context.

Drop to the API when you need scale

MCP is ideal for interactive research. When you want the same flow pull on a schedule or inside your own service, hit the OptionsBell REST API directly. Same data, same Pro limits of 30 requests per minute and 2,000 per day.

import os, urllib.request, json

url = "https://optionsbell.com/api/v1/options-flow/unusual?since=2026-06-26T13:30:00Z"
req = urllib.request.Request(url, headers={"X-API-Key": os.environ["OPTIONSBELL_API_KEY"]})

with urllib.request.urlopen(req) as r:
    for p in json.load(r):
        print(p["ticker"], p["type"], p["premium"], p["dte"])

Why keep it in one loop

The value is not any single tool; it is the handoff. Flow without the call is positioning with no story. The call without flow is a story with no read on how the market is betting. Running both MCP servers in one Claude session collapses that into a single conversation you can iterate on in seconds.

Read the MCP setup at optionsbell.com/docs/mcp, the REST reference at optionsbell.com/docs, and add the earnings side from earningscalls.dev.