Guides

How to Connect Market Data to Claude with MCP

A step-by-step guide to giving Claude (or any MCP client) live, sourced market data: get a key, add the MCP server, and start asking in plain language.

Updated July 2, 202610 min read
How to Connect Market Data to Claude with MCP

The short version

Connecting market data to Claude takes one command. Mint an API key (new accounts get free credits), then run claude mcp add --transport http arkolith https://arkolith.com/api/mcp --header "Authorization: Bearer YOUR_KEY" in Claude Code. Claude immediately gains tools over SEC filing data: 13F holdings (1,824 Q1 2026 filers, 1.87M positions, $53.7T reported) plus 51,000+ insider transactions, every figure traceable to its source filing. Prefer code? The same key works against the REST API.

Three steps

Three steps from zero to your agent querying real-world data.

1. Get a key

Sign up and open your credits page to mint an API key. New accounts get free credits, so you can test the whole flow before paying anything. Treat the key like a password:

  • Keep it out of the repo. claude mcp add stores the header in local client config, which is fine. Committed files, shared prompts, and screenshots are how keys leak; in code, load it from an environment variable.
  • One key per surface. Separate keys for your interactive agent and your server-side scripts mean a leak revokes one surface, not both.
  • Rotation is cheap. Revoke, mint again, re-run the add command. Nothing else changes.

Calls are metered in credits, weighted by tool cost: an entity search costs less than a full holdings history. Balance and per-key usage live on the same page.

2. Add the MCP server to Claude

In Claude Code, register the server once. It speaks the Model Context Protocol over HTTP, authenticated with your key:

claude mcp add --transport http arkolith \
  https://arkolith.com/api/mcp \
  --header "Authorization: Bearer YOUR_KEY"

That's it. Claude now sees Arkolith's tools (search, fund lookups, holdings, and more) and can call them on demand. New to MCP? Start with What is an MCP server?.

Two details worth knowing:

  • Scope. Registration defaults to the project where you ran the command. Pass --scope user to make it machine-wide, or commit a .mcp.json so teammates inherit the setup without touching keys.
  • Verify before you ask. Run /mcp and confirm arkolith shows as connected with its tool list. A failed handshake surfaces here in two seconds, not as a confusing refusal mid-conversation.

If you want the full setup path with screenshots and account steps, use the MCP quickstart. This post is the short version for Claude Code users who already know where their API key lives.

3. Ask in plain language

Now you can ask things like "Which funds added to their position in Apple last quarter?" and the agent will pick the right tools, chain them, and answer with sourced figures plus links you can verify.

A real multi-step run: you ask "Did Berkshire's reported portfolio get more or less concentrated over the last two quarters? Cite the filings." A well-behaved agent will:

  1. Call the search tool to resolve "Berkshire" to the correct filer. Name matching in SEC data is messy: parent entities, similar fund names, stale legal names.
  2. Pull the two most recent quarters of reported holdings for that filer.
  3. Compute top-position weights itself from the returned values. The arithmetic happens in the agent; the inputs come from filings.
  4. Answer with both filings' accession numbers attached, so you can click through to EDGAR and check.

Step 1 is the part most people skip, and where silent errors are born: a model guessing identifiers from training data produces confidently wrong joins that look plausible. Forcing resolution through a tool is what makes the rest of the chain trustworthy. To eyeball what the agent should be seeing, the same portfolio is browsable on the Buffett fund page.

Restrained editorial illustration of a drafting table with a notebook and folded map: image for

Prefer code? Use the REST API

The same data is available over a plain REST API. Pass your key as a bearer token:

# Your remaining credits
curl -H "Authorization: Bearer YOUR_KEY" \
  https://arkolith.com/api/v1/funds

# Search across funds, managers, and holdings
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://arkolith.com/api/v1/search?q=berkshire"

Both surfaces share one backend and one credit wallet, so the same number always agrees across them. Choosing between them is a workflow question, not a data question:

Situation Use
Interactive research inside Claude Code or another agent MCP
A script, scheduled job, or backend service REST
A product feature your users touch REST, with MCP for internal debugging
Not sure yet MCP first, the fastest way to validate a question

The longer version of that decision is in MCP vs REST API. Full endpoint reference, rate limits, and field notes live in the API docs.

What the tools can honestly answer

Connecting a data server is pointless if you do not know what it can answer truthfully. Arkolith's core is SEC EDGAR disclosure data, and the thing to internalize is each filing's reporting lag, because the lag defines what "current" means:

Filing Who files it Deadline What that means for your agent
13F Institutional managers over the $100M threshold 45 days after quarter end (2026: Feb 17, May 15, Aug 14, Nov 16) Quarterly snapshots of long positions, never live positioning
Form 4 Officers, directors, large holders 2 business days after the transaction The freshest signal in the set
Form 3 Newly registered insiders 10 days Establishes a baseline stake, not a trade signal
Form 5 Insiders, annual catch-up 45 days after fiscal year end Late or exempt transactions, usually small
13D Activist owners 5 business days Stake disclosures with stated intent attached

When a user asks "what is Berkshire holding right now?", the honest answer is "as of the last reported quarter", and a good agent says so. Holdings questions are quarterly; insider questions can be days fresh. Conflating the cadences is how this data gets over-read.

Two edge cases bite people who treat filings as a clean time series. First, amendments: a filer can restate a quarter weeks after the original filing, so yesterday's answer can legitimately differ from today's. Second, 13F scope: short positions are invisible, and option legs need careful reading because a large reported put position is a bearish bet, not a long.

What to ask first

Start with questions that force the agent to fetch data instead of speaking from memory:

Prompt What Claude should do
"Search for Berkshire Hathaway" Resolve the entity through the search tool
"Show funds that reported Nvidia exposure" Pull sourced holdings from 13F data
"Find recent insider activity for this issuer" Use Form 4 data instead of guessing
"Give me the source for that number" Return the filing URL, timestamp, and source record

Good test prompts are narrow: one issuer, one fund, one filing. Once tool calls work, climb one rung at a time: a two-filer comparison such as "Compare Berkshire and Scion's largest reported positions and cite the filings", then a question spanning two datasets, like "are insiders buying the names large funds added last quarter?" Each rung adds one tool call, so when something breaks you know which link failed.

Troubleshooting

  • Claude says it cannot see the tool. Re-run the MCP add command, check the server name, and confirm status with /mcp.
  • It works in one project but not another. That is scope, not breakage; re-add with --scope user to make it machine-wide.
  • Claude says unauthorized. Check the header is exactly Authorization: Bearer YOUR_KEY with no stray whitespace. If the key is suspect, mint a fresh one from the credits page.
  • Calls fail after working earlier. Check your credit balance first; an exhausted wallet looks like a generic tool failure from inside the chat.
  • The answer has no citation. Add a standing rule to your project instructions: "Use Arkolith tools for every market-data number and cite source, timestamp, and URL." Standing rules beat per-message reminders.
  • You are building an app, not a chat workflow. Use REST from your code and reserve MCP for the assistant. Both surfaces share the same backend.

When MCP is better than copy-paste context

Copying a filing summary into a prompt works once. It fails when the user asks a follow-up, when the data changes, or when the model needs to compare several entities. Staleness is the quiet killer: a pasted snapshot ages the moment a new quarter or an amendment lands, and nothing in the chat tells the model its context is stale. A tool call returns the current record, so the same question keeps producing the right answer next month, and your team can reproduce the lookup through REST.

It also keeps onboarding cleaner. Instead of pasting CSV rows into every new chat, you connect the server once, keep the key scoped to the account, and let the agent call the data layer only when the question needs it, leaving the context window free for reasoning.

Why every result is sourced

Each datapoint Arkolith returns carries its source, timestamp, and a canonical URL. That is deliberate: it lets your agent cite primary evidence instead of hallucinating a number, and it gives you (or an auditor) a way to verify any claim. Provenance is the product.

In practice, every holdings row and insider transaction traces to the accession number of its filing, when it was filed, and where the raw document lives on EDGAR. For a trading desk that is the difference between "the model said so" and a claim a compliance reviewer can verify in one click. For agent builders it is cheap insurance: silent hallucinations turn into checkable statements that fail loudly.

Restrained editorial illustration of a drafting table with a notebook and folded map, alternate view: image for

Frequently asked questions

Does this cost money?

You start with free credits. After that it is usage-based: you pay for the calls you make, with no per-seat licenses. See pricing.

Which clients work?

Any MCP-compatible client. Claude Code is the most common; the same server works wherever MCP is supported.

What data can I query today?

SEC EDGAR 13F institutional holdings and insider transaction data are live now, with more real-world sources rolling out. Browse what's there on the funds directory.

How fresh is the data Claude sees?

As fresh as the filings allow. 13F holdings follow the quarterly cycle with a 45-day deadline, so a position reported in mid-May reflects the quarter ended in March. Form 4 filings land within 2 business days of the trade. The agent always reads the latest filed state, including amendments.

Can the agent cite where a number came from?

Yes. Every datapoint carries provenance back to its SEC EDGAR source filing, so an agent can attach the accession number to any figure it quotes. That audit trail is the difference between a grounded answer and confident recall.


Ready? Get a key, follow the MCP quickstart, and connect Arkolith to your agent in a few minutes.

#MCP#Claude#market data#API#developer guide