Best MCP server for stock data: four rivals, one table

An MCP server for stock data in Claude Code earns its place the moment you need more than one company. A single quote you can look up in a browser; four companies lined up on the same fields is a different job, and it is the one analysts actually do. We pulled the latest annual income statement for four chipmakers — one call each at $0.01 per run — and put the margins side by side. The spread is wide, and four things in the result will quietly break your comparison if you do not catch them.

Connect your agent

Four calls, one table

The request below is the whole workflow. The agent resolves each symbol, makes one priced call per company, and then does the arithmetic locally — margins are divisions, and division is free. What you pay for is the filed numbers arriving as numbers.

You ask

Pull the latest annual income statement for NVDA, TSM, AMD and INTC, then put gross, operating and net margin side by side.

Four priced calls at $0.01 per run each. The agent lists the service and its price before it runs anything; picking it is the approval. Every margin in the table below was computed from the returned figures, not fetched separately.

SymbolFiscal year endCurrencyGross marginNet margin
NVDA2026-01-25USD71.1%55.6%
TSM2025-12-31TWD59.9%45.1%
AMD2025-12-27USD49.5%12.5%
INTC2025-12-27USD34.8%-0.5%
Latest annual income statement per company, retrieved 12 September 2026. Gross and net margin are computed from the returned revenue, gross profit, and net income. Note the fiscal year-end and the reporting currency columns before comparing anything.

That is a thirty-six point spread in gross margin between the top and bottom of one industry, and a net line that runs from the mid-fifties into negative territory. Whatever you think it means, the useful part is that it took four calls and no spreadsheet — and that the same four calls next quarter produce a diff rather than a memory.

The four traps in that table

The second trap is the fiscal calendar. "Latest annual" returned a year ending 25 January 2026 for one company and 27 December 2025 for two others. Those are different windows of the world, and in a fast-moving industry a month matters. The returned record carries the period end date, so the fix is simply to print it in the table — which is why it has a column above rather than a footnote.

The third is EPS. It is per share, and share counts, splits, and listing structures differ, so lining EPS up across companies compares the arithmetic of their share registers as much as their performance. It is in the response and it is useful within one company over time; across a peer set, margins and growth rates are the fields that mean the same thing for everybody.

The fourth trap is about definitions rather than values. A field named after a line on the income statement does not always mean exactly what the company means by that line — data providers normalise, and a figure can legitimately exclude an item the company includes in its own headline number. We checked one company in this table against its own results release: revenue, gross margin, net income, and EPS matched to the cent, while the operating line reflected a different treatment of one charge. Neither figure is wrong; they answer slightly different questions. That is why this table shows gross and net margin, and why the habit worth building is to reconcile one figure per source against the filing before you rely on the rest.

What the call actually returns

Fifteen fields per statement: symbol, period end, fiscal year, period, reporting currency, filing date, accepted date, revenue, cost of revenue, gross profit, operating income, net income, EPS, diluted EPS, and EBITDA. Ask for several years and you get several records, which is where growth rates come from — our four-year pull for one company showed revenue more than doubling and then growing another sixty-five percent, with gross margin moving only a few points across the whole stretch.

Because it arrives as structured records rather than as a page, "rank these by operating margin and flag anything below twenty percent" is one more sentence to the agent. That is the practical difference between a data call and a screenshot, and it is the same argument the maps guide makes about business listings: numbers that arrive as numbers stay workable.

Building a peer set worth comparing

  1. Print the period end, always

    Put the fiscal year-end in the table itself. A peer comparison where one company is a month ahead of the others is not wrong, but it should be visible rather than buried.

  2. Lead with ratios, not totals

    Margins, growth rates, and returns are unit-free and survive currency differences. Revenue and EPS need a shared unit before they mean anything across a set.

  3. Keep the raw responses

    Save the JSON next to whatever you write from it. Next quarter's pull then becomes a diff against a file rather than an argument about what the numbers were.

  4. Re-run rather than remember

    At $0.01 per run for each company, refreshing the whole set costs less than the time spent wondering whether the table is stale.

Set it up once

npm install --global @actionway/cli@latest
actionway init
mkdir -p "$HOME/.claude/skills"
cp -R "$HOME/.actionway/skill/actionway" "$HOME/.claude/skills/actionway"
init shows a short code and a web address — approve it in any browser — and stages the Actionway Skill at ~/.actionway/skill/actionway. The last two lines copy it to ~/.claude/skills/actionway, where Claude Code loads Skills; restart Claude Code or open a new session afterwards.

You need Node.js 20 or newer and an Actionway account. There is also a Remote MCP route if you would rather not install anything — same calls, same prices, added as a connector instead. Codex users copy the same folder into ~/.codex/skills/actionway, and the get started page lists the steps per client. Financial data calls are synchronous, so the answer arrives in the same reply rather than as a job to wait on, and an empty wallet stops a call before anything is charged.

Questions

Is there an MCP server for stock data?Actionway is one: company income statements, balance sheets, cash flow, ratios, analyst estimates, and an earnings calendar, each priced per call at $0.01 per run and reachable from Claude Code or any client that speaks MCP.

How much does comparing four companies cost?$0.04 for 4 runs at $0.01 per run — one call each. The margins, growth rates, and rankings are computed by the agent from those responses at no extra charge, because arithmetic is local work.

Why can't I compare revenue across the peer set directly?Because reporting currency differs by company, and fiscal years end on different dates. Ratios such as gross and operating margin are unit-free and unaffected, which is why a peer table should lead with those and print the period end alongside.

TRY IT FROM YOUR AGENT

One connection covers the whole catalog.

Connect Actionway once. Your agent finds the right service, quotes each run in USD, and pays per call from your wallet.

Connect your agent