Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.sifting/mcp

NPM · SIFTINGIO-MCP · SCANNED SEP 29

Live crypto/forex/metals prices, OHLCV bars, SEC fundamentals, 13F holdings and econ calendar.

Available components

0 this week 86 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4355 tokens (~120/item across 36 items; 36 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (14% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 36 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.sifting/mcp server?

io.sifting/mcp runs locally as an npm package, launched with npx -y siftingio-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · siftingio-mcp

# add to Claude Code
claude mcp add io-sifting-mcp -- npx -y siftingio-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "io-sifting-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "siftingio-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-sifting-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "siftingio-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add io-sifting-mcp -- npx -y siftingio-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-sifting-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "siftingio-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-sifting-mcp --command npx --arg -y --arg siftingio-mcp
# ~/.hermes/config.yaml
mcp_servers:
  io-sifting-mcp:
    command: "npx"
    args: ["-y", "siftingio-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-sifting-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "siftingio-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add io-sifting-mcp -t stdio -c npx -a -y siftingio-mcp
// mcp.json
{
  "mcpServers": {
    "io-sifting-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "siftingio-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 29 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 23 Sept 26 0
    • Stability: 0.97 → pass security
  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 29 Sept 2026 · Analysed npm/siftingio-mcp@1.0.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 94 packages
Packages resolved 94
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 36 exposed · ~4,355 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
crypto_bars ~184

Fetch historical OHLCV bars for a USD-quoted crypto symbol (e.g. BTCUSD) over a time range at a chosen interval (default 1m); volume is fractional base-asset volume. Large ranges are size-capped (watch for the _truncated note) — narrow the range or paginate with cursor/limit (max 5000/page). For the current price use last_trade.

NameTypeReqDescription
cursorstring–Opaque pagination cursor.
endstring–Inclusive upper bound. Default: now.
intervalstring–Bar interval. Default 1m.
limitinteger–Page size, max 5000.
startstringyesInclusive lower bound, YYYY-MM-DD or RFC3339 (UTC). Required.
symbolstringyesUSD-quoted crypto symbol, e.g. BTCUSD.

No output schema declared.

No examples provided.

dex_wallet ~94

Fetch the current token holdings — balances and identified tokens — for a wallet address on an EVM chain (e.g. ethereum, base). Both chain and address are required. For a DEX pair's pooled liquidity use last_tvl.

NameTypeReqDescription
addressstringyesWallet address, e.g. 0x....
chainstringyesEVM chain: eth, base, arbitrum, bsc, polygon.

No output schema declared.

No examples provided.

economic_calendar_list ~214

List scheduled and released macroeconomic events (e.g. CPI, non-farm payrolls, rate decisions) over a date range, each with its actual, previous, and consensus figures. Filter by country, impact level, issuing agency, or a specific recurring event_id. Defaults to the US and roughly the next 30 days.

NameTypeReqDescription
agencystring–Issuing agency: BLS, BEA, Census, Fed, DOL, EIA.
countrystring–Two-letter country code. Default: US.
event_idstring–Filter to a single recurring event, e.g. us_cpi.
fromstring–Lower bound, YYYY-MM-DD or RFC3339. Default: now.
impactstring–Impact level: low, medium, high.
limitinteger–1-500. Default 100.
tostring–Upper bound, YYYY-MM-DD or RFC3339. Default: from + 30 days.

No output schema declared.

No examples provided.

filers_holdings ~129

List the latest 13F-HR reported equity positions for an institutional investment manager (a fund), identified by CIK or ticker, with share counts and market values. Paginate with cursor/limit. This is holdings held BY the filer; for a single company's insider or large-stakeholder filings use stocks_insiders / stocks_ownership.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
filerstringyesInstitutional filer's CIK (numeric) or ticker.
limitinteger–Page size (endpoint default applies if omitted).

No output schema declared.

No examples provided.

forex_bars ~174

Fetch historical OHLC bars for a 6-character FX pair (e.g. EURUSD) over a time range at a chosen interval (default 1m); volume is always 0 for OTC spot forex. Large ranges are size-capped (watch for the _truncated note) — narrow the range or paginate with cursor/limit. For the current rate use last_quote.

NameTypeReqDescription
cursorstring–Opaque pagination cursor.
endstring–Inclusive upper bound. Default: now.
intervalstring–Bar interval. Default 1m.
limitinteger–Page size.
pairstringyes6-character FX pair, e.g. EURUSD.
startstringyesInclusive lower bound, YYYY-MM-DD or RFC3339 (UTC). Required.

No output schema declared.

No examples provided.

last_quote ~92

Top-of-book quote — best bid and ask with their sizes — for a symbol on a venue, read live from the engine and never cached. For the last traded price use last_trade instead. Returns structuredContent alongside the text.

NameTypeReqDescription
symbolstringyesSymbol, e.g. BTCUSD, AAPL, EURUSD.
venuestringyesLive-data venue: stocks, crypto, forex, dex.
NameTypeReqDescription
AstringyesAsk size.
BstringyesBid size.
astringyesAsk price.
bstringyesBid price.
tnumberyesTimestamp, Unix epoch milliseconds.

No examples provided.

last_trade ~105

Latest trade snapshot (price and size) for a symbol on a venue, read straight from the live engine and never cached. For the best bid/ask instead use last_quote; for historical bars use stocks_bars / crypto_bars / forex_bars. Returns structuredContent alongside the text.

NameTypeReqDescription
symbolstringyesSymbol, e.g. BTCUSD, AAPL, EURUSD.
venuestringyesLive-data venue: stocks, crypto, forex, dex.
NameTypeReqDescription
PstringyesLast trade size.
pstringyesLast trade price.
sstringyesSymbol, normalized to the venue's canonical form.
tnumberyesTimestamp, Unix epoch milliseconds.

No examples provided.

last_tvl ~103

Current aggregated total value locked (TVL) for a DEX trading pair on an EVM chain, read live. Provide the canonical pair (e.g. WETH-USDC); for a wallet's token balances use dex_wallet. Returns structuredContent alongside the text.

NameTypeReqDescription
chainstringyesEVM chain: eth, base, arbitrum, bsc, polygon.
pairstringyesCanonical pair, e.g. WETH-USDC.
NameTypeReqDescription
chainstringyesCanonical lowercase chain.
nnumberyesNumber of pools aggregated.
pairstringyesCanonical uppercase pair, e.g. WETH-USDC.
r0stringyesReserve of token0.
r1stringyesReserve of token1.
tnumberyesTimestamp, Unix epoch milliseconds.
usdstringyesTotal value locked, USD.
vnumberyesVersion/volume counter.

No examples provided.

markets_calendar ~127

List the holidays and half-day (early-close) sessions for a market over a date range (defaults to the next ~90 days, max 730). Use markets_hours for the normal weekly schedule and markets_status for the live open/closed state.

NameTypeReqDescription
fromstring–Inclusive lower bound, YYYY-MM-DD. Default: today.
marketstringyesMarket slug, e.g. nyse, us_equities, forex, crypto.
tostring–Inclusive upper bound, YYYY-MM-DD. Default: from + 90 days. Max range 730 days.

No output schema declared.

No examples provided.

markets_hours ~85

Return the regular weekly trading-hours schedule (open/close times per weekday, with time zone) for a market by slug. This is the recurring schedule, not today's state — use markets_status for whether it's open right now, and markets_calendar for holidays and half-days.

NameTypeReqDescription
marketstringyesMarket slug, e.g. nyse, us_equities, forex, crypto.

No output schema declared.

No examples provided.

markets_list ~75

List every market in the catalog — exchanges and asset classes such as nyse, us_equities, forex, crypto — optionally filtered by region. Use it to discover the market slug the other markets_* tools expect.

NameTypeReqDescription
regionstring–Region filter: north_america, europe, asia_pacific, latam, global.

No output schema declared.

No examples provided.

markets_status ~71

Return the current open/closed status for a single market by slug (e.g. nyse). For a snapshot across all markets use markets_status_all; for the recurring weekly schedule use markets_hours.

NameTypeReqDescription
marketstringyesMarket slug, e.g. nyse, us_equities, forex, crypto.

No output schema declared.

No examples provided.

markets_status_all ~66

Return the current open/closed status for every market at once, optionally filtered by region. Use markets_status when you already know the single market slug you care about.

NameTypeReqDescription
regionstring–Region filter: north_america, europe, asia_pacific, latam, global.

No output schema declared.

No examples provided.

stocks_bars ~174

Fetch historical OHLCV bars for a US equity over a date/time range at a chosen interval (default 1m). Large ranges are size-capped (watch for the _truncated note) — narrow the window or paginate with cursor/limit. For a live price snapshot use last_trade or last_quote instead.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
endstring–Inclusive upper bound. Default: now.
intervalstring–Bar interval. Default 1m.
limitinteger–Page size (endpoint-specific default and max).
startstring–Inclusive lower bound: YYYY-MM-DD (NYSE local) or RFC3339 (UTC).
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_compensation ~128

List a company's DEF 14A proxy statements, which cover executive compensation and shareholder-vote matters, most recent first. Paginate with cursor/limit, or set max_items to auto-collect across pages.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
limitinteger–Page size (endpoint-specific default and max).
max_itemsinteger–If set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_earnings ~144

List a company's earnings-release history, sourced from 8-K Item 2.02 filings, most recent first. Paginate with cursor/limit, or set max_items to auto-collect across pages. For all 8-K material events (not just earnings) use stocks_events.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
limitinteger–Page size (endpoint-specific default and max).
max_itemsinteger–If set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_events ~164

List a company's 8-K material-event filings, optionally filtered to a single item code (e.g. 2.02). Most recent first; paginate with cursor/limit, or set max_items to auto-collect across pages. For earnings releases specifically use stocks_earnings.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
itemstring–Filter by 8-K item code, e.g. "2.02".
limitinteger–Page size (endpoint-specific default and max).
max_itemsinteger–If set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_filing ~103

Fetch one SEC filing's detail — header metadata plus its list of document files — identified by ticker and accession number. Get accession numbers from stocks_filings; for the filing's extracted narrative text use stocks_sections (all sections) or stocks_section (one section's body).

NameTypeReqDescription
accessionstringyesSEC accession number, e.g. 0000320193-24-000123.
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_filings ~215

List a company's SEC EDGAR filings (most recent first), optionally filtered by form type and filed-date range. Paginate with cursor/limit, or set max_items to auto-collect across pages in one call. Returns filing metadata and accession numbers; pass an accession to stocks_filing for its document list, or to stocks_sections / stocks_section for its extracted text.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
formstring–Comma-separated exact form types, e.g. "10-K,10-Q".
fromstring–Lower bound on filed_at, YYYY-MM-DD.
limitinteger–Page size (endpoint-specific default and max).
max_itemsinteger–If set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.
tostring–Upper bound on filed_at, YYYY-MM-DD.

No output schema declared.

No examples provided.

stocks_financial_concept ~126

Fetch the full reported time series for one XBRL concept (e.g. Revenues, NetIncomeLoss) for a single company. Use this instead of stocks_financials when you need one line item rather than the whole statement bundle; to screen the same concept across all companies use stocks_screener.

NameTypeReqDescription
conceptstringyesXBRL concept name, e.g. Revenues, NetIncomeLoss.
taxonomystring–Concept namespace. Default us-gaap.
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_financials ~92

Fetch a company's complete XBRL financials bundle — every reported concept across every period — from its SEC filings. This is a large payload and may be size-capped (watch for the _truncated note); for a single line item's time series use stocks_financial_concept, and for computed ratios use stocks_ratios.

NameTypeReqDescription
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_insiders ~158

List a company's insider transactions from SEC Form 3/4/5 filings (officers, directors, 10% owners), most recent first. Paginate with cursor/limit (default 10, max 25), or set max_items to auto-collect across pages. For large outside stakeholders (13D/13G) use stocks_ownership.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
limitinteger–Page size (endpoint-specific default and max).
max_itemsinteger–If set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_ownership ~150

List a company's Schedule 13D/13G beneficial-ownership filings (holders of large stakes), most recent first. Paginate with cursor/limit, or set max_items to auto-collect across pages. For officer/director trades use stocks_insiders; for institutional 13F positions use filers_holdings.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
limitinteger–Page size (endpoint-specific default and max).
max_itemsinteger–If set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_profile ~84

Fetch a company's reference profile — name, CIK, SIC/industry, exchange, and address — assembled from SEC EDGAR submissions metadata. Use it for company identity details; for financial statements use stocks_financials and for the filing history use stocks_filings. Returns structuredContent alongside the text.

NameTypeReqDescription
tickerstringyesUS equity ticker, e.g. AAPL.
NameTypeReqDescription
cikstringyes–
entity_typestring––
exchangesarray––
fiscal_year_endstring–Fiscal year end, MMDD (e.g. 0930).
namestringyes–
other_tickersarray––
sic_codestring–4-digit SIC industry code.
sic_descriptionstring––
tickerstringyes–

No examples provided.

stocks_ratios ~77

Fetch a company's fundamental financial ratios (valuation, profitability, liquidity, leverage) for the latest reporting period plus the full historical series, derived from its XBRL financials. For raw statement line items use stocks_financials or stocks_financial_concept.

NameTypeReqDescription
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_risk_factors_diff ~86

Compute the year-over-year diff of a company's risk factors (10-K Item 1A), highlighting added, removed, and changed language between its two most recent annual reports. Use it to see how disclosed risks evolved; for the raw text use stocks_section with section 'risk-factors'.

NameTypeReqDescription
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_screener ~174

Screen one XBRL concept for a single fiscal period across all filers at once (e.g. Revenues for FY2023), returning each company's reported value. This is the cross-sectional counterpart to stocks_financial_concept, which returns one company's series over time. Paginate with cursor/limit.

NameTypeReqDescription
conceptstringyesXBRL concept name, e.g. Revenues.
cursorstring–Opaque cursor from a previous response's meta.next_cursor.
limitinteger–Page size (endpoint-specific default and max).
periodstringyesFiscal period, e.g. FY2023 or 2023Q4 (as documented).
taxonomystring–Concept namespace. Default us-gaap.
unitstring–Unit filter. Default USD.

No output schema declared.

No examples provided.

stocks_search ~100

Search the US equity universe by ticker, company name, or CIK substring, returning matching companies with their ticker, name, and CIK. Start here to resolve a name or partial symbol into the exact ticker the other stocks_* tools require. Returns structuredContent alongside the text.

NameTypeReqDescription
limitinteger–Max results, default 25, max 100.
qstringyesSearch string: ticker, company name, or CIK substring.
NameTypeReqDescription
dataarrayyes–
metaobjectyes–

No examples provided.

stocks_section ~141

Fetch the full text of a single narrative section from one SEC filing, selected by section code (e.g. business, risk-factors, mda). Prefer this over stocks_sections when you need just one section — it returns far less text. Discover the available section codes with stocks_sections and get accession numbers from stocks_filings.

NameTypeReqDescription
accessionstringyesSEC accession number, e.g. 0000320193-24-000123.
sectionstringyesSection code: business, risk-factors, legal-proceedings, mda, market-risk, ...
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

stocks_sections ~140

Fetch every extracted narrative section of one SEC filing at once — e.g. business, risk-factors, mda, legal-proceedings — each with its section code and full text, identified by ticker and accession. Use this to pull a whole filing's readable text; when you only need one section, stocks_section returns far less. Large filings may be size-capped (watch for the _truncated note). Get accession numbers from stocks_filings.

NameTypeReqDescription
accessionstringyesSEC accession number, e.g. 0000320193-24-000123.
tickerstringyesUS equity ticker, e.g. AAPL.

No output schema declared.

No examples provided.

ws_collect ~158

One-shot: subscribe, wait up to duration_ms collecting matching ticks (or until max reached), then return them. Subscriptions this call newly creates are removed afterwards. Use this for a quick 'sample N seconds of live data' request.

NameTypeReqDescription
duration_msinteger–How long to collect, in ms. Default 3000, max 15000.
maxinteger–Stop early after this many frames. Default 50.
productstringyesChannel: cex (crypto), dex (DEX trades), fx (forex), us (US stocks), tvl (DEX pool TVL).
symbolsarrayyesSymbols to (un)subscribe, e.g. ['BTCUSD','ETHUSD'].

No output schema declared.

No examples provided.

ws_disconnect ~55

Close the live WebSocket and clear all subscriptions and the buffered frames. Use this to tear everything down; to drop only some symbols while keeping the connection open use ws_unsubscribe. Idempotent — safe to call when already disconnected.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ws_poll ~104

Read buffered live frames. Omit after_seq to get the most recent frames (a tail snapshot); then pass the returned next_seq on subsequent calls to get only newer frames. Non-blocking.

NameTypeReqDescription
after_seqinteger–Return only frames with seq greater than this (from a prior poll's next_seq).
limitinteger–Max frames to return. Default 100.
symbolstring–Filter to a single symbol, e.g. BTCUSD.

No output schema declared.

No examples provided.

ws_status ~53

Report the live stream's connection state, active subscriptions, buffered frame count, and last error, without opening a connection or consuming buffered frames. Use it to check what's subscribed before ws_poll; read buffered ticks with ws_poll.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ws_subscribe ~102

Open (if needed) the live WebSocket and subscribe to symbols on a channel. Incoming ticks are buffered; read them with ws_poll. Returns current connection status.

NameTypeReqDescription
productstringyesChannel: cex (crypto), dex (DEX trades), fx (forex), us (US stocks), tvl (DEX pool TVL).
symbolsarrayyesSymbols to (un)subscribe, e.g. ['BTCUSD','ETHUSD'].

No output schema declared.

No examples provided.

ws_unsubscribe ~108

Stop receiving the given symbols on a channel; the WebSocket stays open for any remaining subscriptions. Returns current connection status. Pair with ws_subscribe; to close the connection entirely use ws_disconnect.

NameTypeReqDescription
productstringyesChannel: cex (crypto), dex (DEX trades), fx (forex), us (US stocks), tvl (DEX pool TVL).
symbolsarrayyesSymbols to (un)subscribe, e.g. ['BTCUSD','ETHUSD'].

No output schema declared.

No examples provided.

Common questions

What is the io.sifting/mcp server?

io.sifting/mcp is listed in the public MCP registry as io.sifting/mcp. Live crypto/forex/metals prices, OHLCV bars, SEC fundamentals, 13F holdings and econ calendar. This page covers its npm package (siftingio-mcp).

Is the io.sifting/mcp server safe to use?

io.sifting/mcp scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 29 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.sifting/mcp server expose?

io.sifting/mcp exposes 36 tools: last_trade, last_quote, last_tvl, crypto_bars, forex_bars, and 31 more. Their descriptions and schemas cost roughly 4,355 tokens of context every time the server is loaded.

Is the io.sifting/mcp server still maintained?

io.sifting/mcp is still listed as active in the MCP registry. We last reached this channel on 29 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.sifting/mcp server under?

io.sifting/mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.