Market data MCP server.
Connect Claude, Cursor, or VS Code to live market data with one config block, or a single command on Claude Code. The SiftingIO MCP server gives an assistant the whole market data surface through a single key: forex, crypto, stocks, commodities, on-chain DEX pools, and SEC fundamentals, as 36 tools. It runs on your machine, so the key never leaves it, and a free API key is enough to try it: 10,000 REST calls a month, 60 requests a minute, and 1 month of history.
View on GitHubWhat the SiftingIO market data MCP server does
One SiftingIO key reaches every market the assistant might ask about: forex, crypto, stocks, commodities, on-chain DEX pools, and SEC fundamentals. It speaks the Model Context Protocol, an open standard that connects assistants to tools, and exposes SiftingIO as 36 of them. Add one config block to Claude, Cursor, or VS Code and the assistant can fetch real-time price snapshots, historical bars, financial statements, filings, insider and institutional holdings, market hours, and on-chain pool data, all from your own API key. A free key is enough to try it: 10,000 REST calls a month, 60 requests a minute, and 1 month of history, with no card.
npx, so there is nothing to clone, build, or deploy. It reads your key from the SIFTING_API_KEY environment variable, so the key never leaves your machine and is never handed to a hosted server. Both runtimes are MIT-licensed: the TypeScript server (siftingio-mcp v1.0.2 on npm) and a Python server, with source in the repository.What you'll need
Connecting takes three things:
- An AI client that supports MCP, such as Claude, Cursor, or VS Code.
- Node.js, which provides the
npxcommand that runs the server. - A SiftingIO API key. Create one from your dashboard. A free key works, with no card.
Get your SiftingIO API key
From your dashboard, create an API key. It looks like sft_... and is what the assistant uses to authenticate. Keep it private, the same way you would any password.
Install the server
The server is published on npm as siftingio-mcp, so there is nothing to clone and nothing to build. Run it once to check it starts, or skip straight to the config block below and let your client launch it for you. If you would rather build from source, the repository has the steps.
# Run the published server straight from npm. No clone, no build step.npx -y siftingio-mcp # Or register it with Claude Code in one command:claude mcp add siftingio -e SIFTING_API_KEY=sft_... -- npx -y siftingio-mcpAdd the server to your AI client
Add a local MCP server to your client's config: Claude Desktop's claude_desktop_config.json, Cursor's MCP settings, or claude mcp add on Claude Code. Point the command at npx and pass your key through the env block. This same block works in every client that speaks MCP:
{ "mcpServers": { "siftingio": { "command": "npx", "args": ["-y", "siftingio-mcp"], "env": { "SIFTING_API_KEY": "sft_..." } } }}env block as SIFTING_API_KEY, so it stays on your machine and out of your prompts and chat history.Prefer a URL? Use the HTTP transport
Instead of launching the server per client, you can run one process over MCP's Streamable HTTP transport and point HTTP-capable clients at http://127.0.0.1:3000/mcp. The npm package ships a second command, siftingio-mcp-http, for exactly this:
SIFTING_API_KEY=sft_... npx -y -p siftingio-mcp siftingio-mcp-http# → MCP endpoint at http://127.0.0.1:3000/mcp claude mcp add --transport http siftingio http://127.0.0.1:3000/mcpPORT to change the port (it defaults to 3000), and set MCP_AUTH_TOKEN if you want it to require an Authorization: Bearer token on every request.What the assistant can reach
Once connected, the assistant picks the right tool for each question. The 36 tools cover the full data surface:
- Real-time snapshots
- Latest price and top-of-book quote across stocks, forex, crypto, and commodities. Ask: “What is Bitcoin trading at right now?”
- Historical bars
- OHLCV history for stocks, forex, and crypto. Ask: “Chart Apple's daily closes for the last six months.”
- Discovery
- Search tickers, pull company profiles, and screen stocks. Ask: “Which US software companies have a market cap above $50bn?”
- Financials
- XBRL financial statements, earnings, ratios, and individual reported concepts. Ask: “What were Microsoft's gross margins for the last four quarters?”
- Filings
- A company's recent SEC filings, individual sections, and risk-factor diffs. Ask: “What changed in Tesla's risk factors since last year's annual report?”
- Insiders & institutions
- Form 4 insider transactions, ownership, and 13F filer holdings. Ask: “Which insiders sold Nvidia last quarter?”
- Market status
- Whether a market is open, plus trading hours and calendars. Ask: “Is the US stock market open right now?”
- Economic calendar
- Upcoming US economic events. Ask: “What economic releases are due this week?”
- On-chain DEX
- Swap prices, liquidity-pool TVL, and wallet portfolios across Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Avalanche, and Solana. Ask: “What is the TVL of the biggest ETH/USDC pool on Base?”
The tools return the same normalized data shapes as the REST API, so what the assistant sees is what your production app gets. The server also ships guided prompts, company_snapshot, compare_companies, and market_now, that clients can surface as slash-commands. See the repository for the full tool list and the parameters each one takes.
Ask for market data in plain language
You do not call tools yourself. Ask a normal question and the assistant chooses and runs the right ones. For example:
- “What is the current price of Bitcoin?”
- “Show me the latest financial ratios for Apple.”
- “List the most recent filings for Microsoft.”
- “What US economic events are coming this week?”
Because one key reaches every market, a question can cross them without you wiring anything together. Ask “Which insiders sold Nvidia last quarter, what did the stock do over that window, and how does that compare with what ETH did?” and the assistant pulls the Form 4 transactions, the daily bars, and the crypto history in sequence, then answers from all three.
BTCUSD for crypto and EURUSDfor forex. The assistant usually maps a name like “Bitcoin” to the right symbol on its own.Prefer Python? Use the Python server
Alongside the TypeScript server, an open-source Python server offers the same idea for Python-first setups. It also runs locally, connects over stdio by default, and reads your key from an environment variable:
{ "mcpServers": { "siftingio": { "command": "siftingio-mcp", "env": { "SIFTING_API_KEY": "sft_..." } } }}- Set
SIFTING_API_KEYto your key so the server can authenticate. - It also offers a Streamable HTTP mode for remote setups, with an optional auth token.
- The Python repository has install steps and the full tool list.
Notes and limits
- Tool calls are ordinary API calls: each one counts against your plan's normal quota, and a single question can use several. There is no separate MCP charge.
- The free tier works. Any SiftingIO key authenticates the server, so a free key connects and runs against that tier's limits (10,000 REST calls a month, 60 requests a minute, 1 month of history) with no card.
- Tool calls are request and response, so the assistant reads a real-time snapshot at the moment it asks. It does not hold an open stream on your behalf.
- Your key stays in the server's environment on your machine; nothing about your setup is stored anywhere else.
- Results are size-capped at roughly 60k characters. Heavy responses — full financials, screeners, long bar ranges — are trimmed with a note explaining how to narrow the query.
- Prices are an aggregated fair-price reference computed across sources, consistent with the REST, WebSocket, and FIX products.
- Both servers are open source under the MIT license.
FAQ
- What is an MCP server?
The Model Context Protocol is an open standard that lets AI assistants call external tools, and an MCP server is the program that provides those tools. The SiftingIO market data MCP server runs on your machine and exposes the market data surface as 36 tools, so an assistant like Claude or Cursor can fetch real-time price snapshots, historical bars, financial statements, SEC filings, insider and 13F holdings, market hours, and on-chain DEX data while it answers you. One key covers forex, crypto, stocks, commodities, fundamentals, and DEX.
- How do I connect Claude to stock prices?
Add the SiftingIO MCP server to Claude and ask. On Claude Code it is one command: claude mcp add siftingio -e SIFTING_API_KEY=sft_... -- npx -y siftingio-mcp. On Claude Desktop, add a mcpServers block to claude_desktop_config.json with command npx, args ["-y", "siftingio-mcp"], and your key in the env block. Restart the client and ask something like the current price of Apple; Claude calls the right tool and answers from live data.
- Do I need an API key?
Yes. The server authenticates to SiftingIO with your API key, which it reads from the SIFTING_API_KEY environment variable, so you pass it through the env block of your client config. Creating a key is free and takes a minute from the SiftingIO dashboard; no card is required for a free key.
- Which markets are covered?
Forex, crypto, US stocks, commodities, on-chain DEX pools, and SEC fundamentals, all on the one key. That means real-time snapshots and OHLCV history across the four price markets, XBRL financial statements, earnings and ratios, SEC filings with risk-factor diffs, Form 4 insider transactions and 13F filer holdings, market hours and calendars, a US economic calendar, and swap prices, pool TVL, and wallet portfolios across Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Avalanche, and Solana.
- Does it work with Cursor and ChatGPT?
Cursor yes, ChatGPT not today. The server works with any MCP client that can launch a local command, which includes Cursor, Claude Desktop, Claude Code, and VS Code: point the command at npx -y siftingio-mcp and pass your key in the env block. ChatGPT's connectors expect a remote MCP server reachable over public HTTPS, whereas this server runs on your machine and its HTTP mode binds only to loopback and rejects non-local origins, so the two do not connect as shipped. If you need an assistant to reach SiftingIO from a hosted environment, call the REST API directly.
- Which AI clients does it work with?
Any MCP client that can launch a local command, including Claude Desktop, Claude Code, Cursor, and VS Code. The server speaks stdio by default, and a Streamable HTTP mode is available for clients that prefer to connect to a local URL.
- Do I need to host or deploy anything?
No. The server is published on npm as siftingio-mcp, so your client launches it with npx and there is nothing to clone, build, or deploy. It runs on your machine and everything stays there. Building from the open-source repository is still an option if you prefer.
- How is the connection authenticated?
With your SiftingIO API key, set as the SIFTING_API_KEY environment variable on the server process — pass it through the env block of your client config. In HTTP mode you can additionally set MCP_AUTH_TOKEN to require an Authorization Bearer token on every request.
- What is the difference between the stdio and HTTP modes?
stdio is the default: your client launches the server as a local command and they talk over stdin/stdout. The Streamable HTTP mode serves the same tools at http://127.0.0.1:3000/mcp with per-client sessions; it binds only to loopback and rejects non-local origins as a safety measure.
- Is there a Python version?
Yes. Both runtimes are open source under the MIT license: the TypeScript server, published as siftingio-mcp v1.0.2 on npm, and a Python server, with source at github.com/SiftingIO. The Python server also runs locally over stdio (or Streamable HTTP) and reads your key from the SIFTING_API_KEY environment variable.
- Does every question use my API quota?
Yes. Tool calls are ordinary SiftingIO API calls: each one counts against your plan's normal quota, and a single question that pulls several data points uses several calls. There is no separate charge for using MCP.
- Does it work on the free tier?
Yes. Any SiftingIO API key authenticates the server, including a free one, so you can connect and ask questions with no card. Free keys run against that tier's limits: 10k REST calls a month, 60 requests a minute, and 1 month of historical depth.
- Does the assistant stream live prices?
MCP tools are request and response, so the assistant reads real-time snapshots when it calls a tool rather than holding an open stream. For a continuously updating feed in your own application, use the SiftingIO WebSocket API directly.
Give your assistant market data
Grab an API key, add the server to your client, and ask your first question in minutes. The repositories have the full tool list and setup notes.