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

io.sifting/mcp

NPM · SIFTINGIO-MCP · SCANNED AUG 3

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

Available components

+15 this week 67 Trust /100
Trust breakdown (6 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 →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability84
  • 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 Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · siftingio-mcp

# add to Claude Code
claude mcp add io-sifting-mcp -- npx -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"]
// 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.

  • 2 Aug 26 +41
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 1 Aug 26 +21
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → 100 functional
  • 31 Jul 26 −29
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 27 Jul 26 52

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 96 packages

96 packages in the resolved dependency tree · 95 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

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.

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
cursorstringOpaque pagination cursor.
endstringInclusive upper bound. Default: now.
intervalstringBar interval. Default 1m.
limitintegerPage 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
agencystringIssuing agency: BLS, BEA, Census, Fed, DOL, EIA.
countrystringTwo-letter country code. Default: US.
event_idstringFilter to a single recurring event, e.g. us_cpi.
fromstringLower bound, YYYY-MM-DD or RFC3339. Default: now.
impactstringImpact level: low, medium, high.
limitinteger1-500. Default 100.
tostringUpper 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
filerstringyesInstitutional filer's CIK (numeric) or ticker.
limitintegerPage 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
cursorstringOpaque pagination cursor.
endstringInclusive upper bound. Default: now.
intervalstringBar interval. Default 1m.
limitintegerPage 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
fromstringInclusive lower bound, YYYY-MM-DD. Default: today.
marketstringyesMarket slug, e.g. nyse, us_equities, forex, crypto.
tostringInclusive 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
regionstringRegion 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
regionstringRegion 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
endstringInclusive upper bound. Default: now.
intervalstringBar interval. Default 1m.
limitintegerPage size (endpoint-specific default and max).
startstringInclusive 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
limitintegerPage size (endpoint-specific default and max).
max_itemsintegerIf 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
limitintegerPage size (endpoint-specific default and max).
max_itemsintegerIf 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
itemstringFilter by 8-K item code, e.g. "2.02".
limitintegerPage size (endpoint-specific default and max).
max_itemsintegerIf 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
formstringComma-separated exact form types, e.g. "10-K,10-Q".
fromstringLower bound on filed_at, YYYY-MM-DD.
limitintegerPage size (endpoint-specific default and max).
max_itemsintegerIf set, auto-paginate across pages and return up to this many items (ignores cursor).
tickerstringyesUS equity ticker, e.g. AAPL.
tostringUpper 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.
taxonomystringConcept 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
limitintegerPage size (endpoint-specific default and max).
max_itemsintegerIf 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
cursorstringOpaque cursor from a previous response's meta.next_cursor.
limitintegerPage size (endpoint-specific default and max).
max_itemsintegerIf 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_endstringFiscal year end, MMDD (e.g. 0930).
namestringyes
other_tickersarray
sic_codestring4-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.
cursorstringOpaque cursor from a previous response's meta.next_cursor.
limitintegerPage size (endpoint-specific default and max).
periodstringyesFiscal period, e.g. FY2023 or 2023Q4 (as documented).
taxonomystringConcept namespace. Default us-gaap.
unitstringUnit 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
limitintegerMax 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_msintegerHow long to collect, in ms. Default 3000, max 15000.
maxintegerStop 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_seqintegerReturn only frames with seq greater than this (from a prior poll's next_seq).
limitintegerMax frames to return. Default 100.
symbolstringFilter 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.