sifting/io
Hosted connector · Open-source MCP server

Market data MCP server.

Real-time stock, forex and crypto data in ChatGPT and Claude. Retrieve historical OHLCV bars and market calendars, or connect the open-source MCP server to Cursor, VS Code and Claude Code.

View on GitHub

Choose how to connect your assistant

Use the hosted SiftingIO connector in ChatGPT or Claude without installing a server or entering an API key. For Cursor, VS Code, Claude Code, or a broader set of data tools, run the open-source server locally with your SiftingIO API key. These are separate editions: the hosted connector has 10 read-only tools; the local npm server has 36.

Connect ChatGPT or Claude

Choose your assistant, sign in to SiftingIO, and start asking for market data. Both use the same hosted connector with 10 read-only tools.

  1. 01

    Open the listing

    Choose SiftingIO in your assistant and connect your account. No local installation is needed.
  2. 02

    Sign in and approve

    Sign in to SiftingIO and allow market-data:read. No API key or client secret to enter.
  3. 03

    Ask for market data

    Enable SiftingIO in your conversation. Try “Show the latest EURUSD bid and ask with a timestamp.”
Your account, your permissions
market-data:read lets the assistant retrieve market data on your behalf. Your SiftingIO plan determines market access and request limits; each tool call uses your existing API quota. Access is read-only and does not allow trading or billing changes. Manage or disconnect each app in Connected apps.

The 10 hosted tools

These tools are available in the ChatGPT and Claude directory connections. The local edition below has a broader toolset and a separate setup.

last_trade
Latest price and size for a symbol.
last_quote
Latest bid and ask, with sizes.
stocks_bars
Historical OHLCV bars for US stocks.
forex_bars
Historical OHLCV bars for forex.
crypto_bars
Historical OHLCV bars for crypto.
markets_list
Available market groups and their identifiers.
markets_status
Current open or closed status for one market.
markets_status_all
Current status across all available markets.
markets_hours
Regular weekly trading hours and time zones.
markets_calendar
Holidays and early-close sessions over a date range.

Prices are retrieved when you ask. For a continuously updating feed in your own application, use the WebSocket API.

Try stock, forex and crypto questions

Copy a question into ChatGPT or Claude with SiftingIO enabled. Each example uses the hosted tools above.

US stocks

“Using SiftingIO, show AAPL's last five completed daily OHLCV bars with dates.”

Forex

“Using SiftingIO, show the latest EURUSD bid, ask and timestamp.”

Crypto

“Using SiftingIO, show BTCUSD's latest price and the last five completed daily candles.”

Help with a hosted connection

SiftingIO is connected, but the assistant cannot use it

Enable SiftingIO in the conversation and confirm you completed the SiftingIO permission screen. Your assistant account or workspace must allow connectors. If an organization manages your assistant, ask its administrator to enable access.

The connection expired or needs to be authorized again

Reconnect from the SiftingIO listing in ChatGPT or Claude, sign in to the intended SiftingIO account, and approve access again. Refresh Connected apps to check its status.

A request reaches a limit or returns no data

Check your plan and remaining quota in the dashboard. Confirm the symbol in the symbol catalog, then try a smaller date range. For further help, contact support with the tool name and error message. Keep credentials out of your message.

Run the 36-tool open-source server locally

Use the local edition in Claude Desktop, Claude Code, Cursor or VS Code when you need company fundamentals, SEC filings, ownership data, economic events or on-chain tools alongside prices and history. Its 36 tools use the Model Context Protocol and authenticate with your SiftingIO API key. Data access and request limits follow your plan.

Open source, runs on your machine
Your client launches the server with npx, so there is nothing to clone, build, or deploy. It reads your key from the SIFTING_API_KEYenvironment variable and uses it to authenticate requests to the SiftingIO API. You do not paste it into your assistant's prompts. Both runtimes are MIT-licensed: the TypeScript server (siftingio-mcp on npm) and a Python server, with source in the repository.

What you'll need locally

Connecting takes three things:

  • An MCP client that can launch a local server, such as Claude Desktop, Claude Code, Cursor or VS Code.
  • Node.js, which provides the npx command that runs the server.
  • A SiftingIO API key. Create one from your dashboard. A free key works, with no card.
Step 1

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.

Step 2

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.

install
# 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-mcp
Step 3

Add 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. Use this example for Claude Desktop or Cursor:

Claude Desktop / Cursor config
{  "mcpServers": {    "siftingio": {      "command": "npx",      "args": ["-y", "siftingio-mcp"],      "env": { "SIFTING_API_KEY": "sft_..." }    }  }}

In VS Code, run MCP: Add Server, choose Command (stdio) and enter npx -y siftingio-mcp. Add SIFTING_API_KEYto the generated server configuration's environment. VS Code supports different configuration destinations; follow its MCP setup guide for the format used by your agent.

Where the key goes
Store the key in the server's env configuration as SIFTING_API_KEY. The server uses it to authenticate requests to SiftingIO. Keep it out of prompts, shared files and source control.

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:

streamable http
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/mcp
Local by design
The HTTP server binds only to loopback and rejects non-local origins, so it is not reachable from other machines. Set PORT 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 local server can reach

Once connected, the assistant picks the right tool for each question. The local edition provides 36 tools across these areas:

Capability
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.

Step 4

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?”

For a focused research workflow, ask for a company's latest filings and its daily prices over the same period. The assistant can combine the relevant tools while keeping the dates and sources in its answer.

Symbols
Markets use a USD-quoted form, for example 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:

claude desktop config
{  "mcpServers": {    "siftingio": {      "command": "siftingio-mcp",      "env": { "SIFTING_API_KEY": "sft_..." }    }  }}
  • Set SIFTING_API_KEY to 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.

Local server 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, full historical depth) 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 is configured in the local server's environment and authenticates requests to the SiftingIO API. Keep it out of prompts, shared config files and source control.
  • Results are size-capped at roughly 60k characters. Heavy responses, such as full financials, screeners and long bar ranges, are trimmed with a note explaining how to narrow the query.
  • Tool responses use the same SiftingIO datasets as the API. See our market data methodology for pricing methods and source conventions by market.
  • Both servers are open source under the MIT license.

Market data MCP questions

  • What is a market data MCP server?

    A market data MCP server lets an AI assistant retrieve financial data through the Model Context Protocol. SiftingIO provides current prices, historical OHLCV bars and market calendars, so the assistant can answer using retrieved data and timestamps.

  • How do I connect Claude to SiftingIO?

    Open SiftingIO in the Claude connector directory, choose Connect, sign in to SiftingIO and approve market-data:read access. Enable SiftingIO in your conversation. The directory connection does not need an API key, manual client ID or client secret.

  • How do I get stock, forex and crypto data in ChatGPT?

    Open the SiftingIO app in ChatGPT and connect your SiftingIO account. Approve read-only access, then select SiftingIO in your conversation and ask for a symbol, date range or market schedule. Your SiftingIO plan determines available data and request limits.

  • What is the difference between the hosted connector and the local server?

    The hosted connector runs on SiftingIO infrastructure and provides 10 tools in ChatGPT and Claude. The local open-source server runs on your machine and provides 36 tools, adding company fundamentals, SEC filings, insider and institutional holdings, economic events and on-chain data. Hosted connections use account sign-in; the local server uses your SiftingIO API key.

  • Can I retrieve historical OHLCV data?

    Yes. The hosted connector includes stocks_bars, forex_bars and crypto_bars for US stock, forex and crypto history. Specify the symbol, interval and date range in your question. Available history depends on the dataset and symbol; historical depth follows the underlying SiftingIO API.

  • Does it work with Cursor, VS Code and Claude Code?

    Yes. Use the local open-source server with npx -y siftingio-mcp and configure SIFTING_API_KEY in the server environment. Follow your client's configuration format. The guide includes a Claude Desktop and Cursor example, a Claude Code command and VS Code setup guidance.

  • Can I use MCP with a free SiftingIO account?

    Yes. A free account can authorize the hosted connector or create a key for the local server, with no card. Free limits are 10,000 REST calls per month and 60 requests per minute, with full available historical depth. Each data tool call uses your API quota. There is no separate MCP charge; your assistant's own plan must support the connection method you choose.

  • What can a connected assistant access?

    The hosted connector requests market-data:read permission through OAuth. It can retrieve market data within your account's permissions, but cannot place trades or change billing. Review and disconnect each app in Connected apps in your SiftingIO dashboard.

  • Does the assistant stream live prices continuously?

    MCP tools retrieve real-time snapshots when called. They do not maintain a continuous price stream in the conversation. Use the SiftingIO WebSocket API for continuously updating charts, alerts or application feeds.

  • What are the local stdio and HTTP options?

    With stdio, your client launches the server as a local command. The local TypeScript server also supports Streamable HTTP at http://127.0.0.1:3000/mcp, binding to loopback and rejecting non-local origins. This local address is separate from the hosted ChatGPT and Claude connector.

  • Is there a Python MCP server?

    Yes. SiftingIO also provides an MIT-licensed Python server that runs locally and reads SIFTING_API_KEY from its environment. Follow the Python repository's installation instructions and tool documentation.

Get started

Give your assistant market data

Connect the hosted app with your SiftingIO account, or use an API key with the local server. The open-source repositories have the local edition's full tool list and setup notes.