Shumi

ai.shumiPublished by shumi.aiOfficial publisherv1.3.0Updated Oct 24, 2026

Crypto market intelligence: prices, funding rates, narratives, regime, and delta-neutral research.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFinanceData & Analytics

Overview

AI-generated overview

Shumi gives an assistant read-only crypto market intelligence: prices, trends, funding rates, sentiment, narratives, regime signals, pairs and token unlocks.

What you can do
  • Look up coins, resolve ambiguous symbols, and read prices, trends, sentiment, historical snapshots and bundled risk context
  • Scan the market: trend scanners, movers, global aggregates, market health, regime crossings, narratives and categories
  • Read perpetual funding momentum, funding alerts, futures signals, pair and delta-neutral ideas, and signal quality
  • Track real-world assets (stocks, ETFs, commodities, indices, FX) traded as perps, plus token unlocks and unlock calendars
  • Inspect holder cohorts, tracked wallets, basket snapshots and transcript highlights
  • Ask free-form crypto questions or run a web search for crypto information
When to use it
Useful when an assistant needs to answer crypto market questions with structured data rather than guesses: coin research, funding and carry context, movers and narrative scans, unlock schedules, or delta-neutral pair research.
Requirements
A Shumi API key (shumi_sk_*) in SHUMI_TOKEN, created at shumi.ai. Runs locally via npx @shumi-ai/mcp or as a remote endpoint at mcp.shumi.ai with the key sent as an Authorization Bearer or x-api-key header. SHUMI_API_URL optionally overrides the API base; SHUMI_WALLET adds a wallet to query context. Network access required.
Before you install
The API key is a paid credential: keep it out of URLs, since URLs land in logs and history. Usage is metered by free/access/pro tiers and pay-per-call, so out-of-quota calls return errors. A shared connector header is organisation-wide, so everyone shares one account and quota. Tools are read-only, but queries and wallet context go to Shumi's API.

Installation

In SourceWeft

  1. Open Shumi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.shumi%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "shumi": {
      "type": "http",
      "url": "https://mcp.shumi.ai/mcp"
    }
  }
}

README

@shumi-ai/mcp

Shumi crypto trade-intelligence as an MCP server — the same market intelligence the shumi CLI provides, for any MCP client (Claude Desktop, Claude Code, Cursor, agents).

It's a thin wrapper over Shumi's data API: prices, trends, funding rates, sentiment, narratives, market regime, synthesized signals, pair / delta-neutral ideas, real-world assets, holder and wallet tracking, and transcript highlights. All tools are read-only.

Quick start

You need a Shumi API key (shumi_sk_…). Create one at https://shumi.ai.

Claude Desktop / Claude Code

Add to your MCP config (claude_desktop_config.json, or claude mcp add for Claude Code):

json
{  "mcpServers": {    "shumi": {      "command": "npx",      "args": ["-y", "@shumi-ai/mcp"],      "env": {        "SHUMI_TOKEN": "shumi_sk_your_key_here"      }    }  }}

Restart the client. The shumi tools (e.g. get_coin_risk, get_market_health, ask_shumi) appear automatically.

Cursor

~/.cursor/mcp.json uses the same command / args / env shape as above.

Plugin directories

This repo also ships plugin.json and mcp.json at its root, so it installs as an Agent Plugin from Cursor's directory and any other client on that standard.

Set SHUMI_TOKEN in your environment before starting the client when you install this way. The Agent Plugins schema takes literal environment values only — it has no placeholder for a secret — so the manifest deliberately omits env rather than shipping a ${SHUMI_TOKEN} string that would be passed through verbatim and fail as an invalid key.

Tools

Typed (deterministic): get_coin_risk, lookup_coin, resolve_coin, get_coin_sentiment, get_coin_historical, get_market_health, get_market_crossing, get_global_market, get_prices, scan_trends, scan_coins, get_market_sentiment, list_narratives, get_narrative, list_categories, get_category, get_funding_momentum, get_funding_alerts, get_regime, get_signal, get_signal_quality, get_pair_suggestions, list_rwa_assets, get_rwa_asset, get_unlocks, get_unlock_calendar, get_holders, get_wallets, get_futures_signals, get_basket, get_transcripts.

Real-world assets (list_rwa_assets, get_rwa_asset) cover stocks, ETFs, commodities, indices and FX trading as perps on Hyperliquid builder DEXes. They are not crypto tokens — the coin tools will not find them.

Free-form: ask_shumi (natural-language questions — Shumi classifies, fetches, and synthesizes) and search_web.

List-returning tools accept top (keep first N items) and fields (comma-separated keys to keep) to save tokens.

Resources: shumi://capabilities (the data surface) and shumi://billing/tier (your current entitlement).

Configuration

Env varDefaultPurpose
SHUMI_TOKEN—API key (shumi_sk_*). Required.
SHUMI_API_URLproduction coinrotator-ai endpointOverride the API base URL.
SHUMI_WALLET—Wallet address to include in NLP query context.

Gating (free / access / pro tiers and pay-per-call) is enforced server-side, exactly as for the CLI — out-of-quota responses come back as a structured error with an actionable hint.

Remote (HTTP)

For a hosted, multi-user deployment:

bash
PORT=8787 SHUMI_MCP_ALLOWED_ORIGINS=https://yourapp.com npm run start:http

Each request authenticates with its own key header; that token is forwarded to the upstream API per request. Endpoint: POST /mcp, health: GET /health.

Connecting from Claude (static_headers)

Claude supports a fixed credential entered as a request header, so no OAuth server is needed. In Add custom connector → request headers, an organisation administrator enters:

fieldvalue
URLhttps://mcp.shumi.ai/mcp
Header nameAuthorization
Header valueBearer shumi_sk_…

x-api-key: shumi_sk_… works too, and so does an Authorization value with the Bearer prefix omitted — an admin types this once by hand, and a mistyped pair fails closed with no error they can see, so all three shapes are accepted. x-api-key wins if both are present, on the grounds that an admin who set it meant it.

Do not put the key in the URL. The MCP authorization spec prohibits access tokens in the URI query string and Anthropic documents a credential in a URL as a security vulnerability — URLs land in server logs, proxies and browser history. The ?shumiToken= / ?config= query forms exist only because Smithery injects session config that way.

One thing to know before buying for a team: a static_headers credential is shared by the organisation, not per user. Everyone connecting through that connector shares one Shumi account, one free-tier allowance and one quota. Per-user metering needs OAuth — see docs/oauth-plan.md.

An unauthenticated call is answered with 200 and an in-band AUTH_REQUIRED error, not 401. That is deliberate: Claude treats a 401 as the start of an OAuth flow, and a server with no authorization server behind it would send the client into a handshake that cannot complete. The 401 path exists but is gated behind SHUMI_MCP_AUTH_SERVER, so it lights up only once there is an authorization server to point at.

The server is stateless. One endpoint serves both protocol revisions:

  • 2026-07-28 — no initialize, no Mcp-Session-Id. A request carries its own routing in headers (Mcp-Method, plus Mcp-Name on tools/call) and its protocol envelope in params._meta, so an intermediary can route and meter a call without parsing the body.
  • 2025-11-25 and earlier — still served. Old clients keep their initialize handshake, but each exchange is answered by its own instance rather than a session.

Because nothing outlives a request, GET and DELETE (the 2025 session operations) return 405, and the session tunables that used to live here — SHUMI_MCP_SESSION_TTL_MS, SHUMI_MCP_MAX_SESSIONS, SHUMI_MCP_SESSION_SWEEP_MS — are gone. They are safe to delete from any deployment; unset they do nothing. The idle-session reaper they configured existed to stop liveness probes from growing the heap, which cannot happen when no session is kept.

Develop

bash
npm installnpm test                # unit tests (no network)npm run inspect         # open the MCP Inspector against the stdio serverSHUMI_TOKEN=… npm start # run the stdio server

Deliberately not exposed

Two CLI routes have no MCP tool, both on purpose:

  • walkforward — the route exists, but two of its three actions have nothing behind them while Engine B is paused: positions is empty and outcomes holds a single row from 2026-05-28. Shipping it would hand a caller an empty array with no reason attached. It goes in when the engine resumes.
  • watch — server-sent events, which do not fit MCP tool semantics.

Everything else in the CLI's typed surface has a tool.

Source: README.md at commit 402232f

Tools

33

get_coin_risk

Coin risk context

Bundled risk context for one or more coins: price, funding APR, deterministic funding_paying_side, funding_receiving_side, carry_if_long and carry_if_short fields, daily/weekly trend, sentiment stance, and BTC correlation. Funding applies to perpetual positions only; spot positions neither pay nor receive it. Relay the carry fields exactly rather than inferring direction from crowding. The best single tool for "should I be worried about X".

Parameterssymbolsrequired

lookup_coin

Look up a coin

Look up a single coin and its core metrics (price, trend, metadata) by symbol, name, CoinGecko/internal id, or on-chain contract address. Read the coin's CURRENT trend from `currentTrend` ({ trend: UP|DOWN|HODL, since, days, asOf, incompleteDayExcluded }; `currentTrendWeekly` when present is the weekly one), not from the last row of `trends` — `trends` is the history of past trend runs. Quote it as "<trend> since <since> (<days> days, as of <asOf>)". Only when `currentTrend` is absent, fall back to the last `trends` row.

Parametersbychainidentifierrequired

resolve_coin

Resolve a coin (fuzzy)

Fuzzily resolve a symbol, name, or contract to canonical coin candidates. Use this first when the user input is ambiguous, before calling other tools.

Parameterslimitqueryrequired

get_coin_sentiment

Coin sentiment

On-chain/social sentiment aggregates for a single coin.

Parameterssymbolrequired

get_coin_historical

Coin metrics at a past point in time

Market cap, volume, open interest, funding rate and price for a coin AS OF a chosen point in the past. Returns a single snapshot, not a series: call it once per point you want to compare (e.g. amount=7 interval=d for a week ago, then again with no offset for now). Use this to answer "how has funding/open interest changed since…".

Parametersamountsymbolrequiredinterval

get_market_health

Market health

Overall market health: the UP/HODL/DOWN trend distribution and extreme movers. Set context for the full bundle.

Parameterscontext

get_global_market

Global market aggregates

Global market aggregates: BTC dominance, total market cap, total volume.

Takes no parameters.

get_market_crossing

Market trend crossing

The most recent regime crossing — when one trend cohort (UP/HODL/DOWN) overtook another market-wide. Answers "has the market flipped?". Returns an empty `crossings` array plus a message when no crossing has fired.

Takes no parameters.

get_prices

Bulk live prices

Bulk live prices, optionally with 4h/24h/7d baseline overlays. Omit symbols for the full tracked set.

Parameterstopfieldssymbolsbaselines

scan_coins

Scan / filter coins

Filter the tracked universe by trend direction, category and market-cap band, and sort the result. For movers questions ("what's pumping", "top gainers/losers today", "biggest movers") use sort_by="change24h" ("change7d" for the week) — sort_order="desc" for gainers, "asc" for losers — and quote each row's change from the row itself (`change_24h_pct` / `change_7d_pct`, or `change24h` / `change7d`). With the default marketCap sort rows are plain coin names; a change sort may return `{ rows: [...] }` with a coverage summary instead of a bare list. Pass ONE category per call; the server ignores case and punctuation ("meme", "Layer 2" and "DeFi" all work) and rejects an unknown name with close matches (list_categories has the names). There is no exchange filter yet: `exchange` is rejected with an explanation, because the only venue data behind this scan is spot listings. Do not present a scan as "coins on <exchange>". An empty result means no coin matched all the filters.

Parameterstoplimittrendfieldssort_bycategoryexchangeintervalmcap_maxmcap_minsort_order

get_market_sentiment

Market sentiment

Aggregate market sentiment. view=market/latest/summary (overall), narratives, categories, slopes/entity-slopes (what is trending), health (pipeline status).

Parameterstopviewfields

list_narratives

List narratives

List the currently active market narratives (e.g. "AI coins", "DeFi summer").

Parameterstopfields

get_narrative

Narrative sentiment

Sentiment and momentum for a single named narrative.

Parametersnamerequired

list_categories

List categories

List tracked crypto categories by their exact names (e.g. "Meme", "Layer-2"), the names scan_coins expects.

Parameterstopfields

get_category

Category detail

Detail for one category. view=info (trend breakdown), coins (member coins), sentiment.

Parameterstopnamerequiredviewfields

get_funding_momentum

Funding momentum

Perpetual funding-rate positioning context, market-wide or for one symbol. APR is already in percent units (1.7 = 1.7%). Positive funding means longs pay and shorts receive; negative funding means shorts pay and longs receive. Funding is context only, not a standalone directional, timing, or entry signal.

Parameterssymbol

get_funding_alerts

Funding alerts

Discrete funding-rate alert events (asset, trigger zone, funding at trigger, fired-at time).

Parameterstopfields

get_regime

Market regime

Market regime signals. view=active (current positions), signals (all), confidence (scores). Provide symbol to get that symbol's regime history instead.

Parametersviewsymbol

get_signal

Synthesized signal

Synthesized verdict for a coin, combining trend, funding, sentiment and regime.

Parameterssymbolrequired

get_signal_quality

Signal quality

Signal validation envelope for an asset: Sharpe ratio, win rate, sample size, reliability tier.

Parametersassetrequiredsignal_type

get_pair_suggestions

Pair / delta-neutral suggestions

Pair-trading and delta-neutral funding-arbitrage intelligence. mode=suggestions (pair ideas), delta-neutral (funding arb), history (backtest), signal (state for a specific pair — needs token_a & token_b).

Parameterstopmodelimitfieldssymboltoken_atoken_bdex_onlyexchange

list_rwa_assets

List real-world assets

List the tradable real-world assets — stocks and ETFs (AAPL, NVDA, SPY), metals and commodities (GOLD, SILVER, BRENT), stock indices (SP500, JP225) and FX. These trade as perps on Hyperliquid builder DEXes and are NOT crypto tokens; the crypto tools will not find them. Use this to answer "which stocks/commodities can I look at?".

Parametersdextoptype

get_rwa_asset

Real-world asset detail

Price, daily/weekly trend and perp funding for one real-world asset (stock, ETF, commodity, index, FX). Look up by ticker (AAPL, GOLD) or by namespaced id (xyz:AAPL). Funding belongs to the PERPETUAL CONTRACT, not the underlying — `funding.apr` is the annualized rate in percent, `funding.rate` is the raw per-hour fraction. Do not use the crypto coin tools for these.

Parametersbyidentifierrequired

get_unlocks

Token unlock schedule

Scheduled token unlocks for ONE coin: the next unlock (date, days until, tokens, USD value, % of market cap, recipients such as team/investors/ecosystem, cliff or monthly tranche), what releases over 30 and 90 days, % unlocked and locked, the final unlock date, the last unlock, and how price moved in the 7 days before and after its last 3-6 unlocks (history, not a forecast). Sources: DropsTab cross-checked with DefiLlama, each figure with its source link and fetch time; `state` says `upcoming`, `fully_unlocked`, `no_unlock_data` or `not_covered` (then `publishedSchedule` may carry the project's own vesting terms). Answers "when is ARB's next unlock?", "who gets the OP unlock?", "how did SUI trade around its unlocks?".

ParameterscoinIdsymbolrequired

get_unlock_calendar

Unlock calendar (market-wide)

Upcoming token unlocks ACROSS THE MARKET when no single coin is named: each row has date, days until, coin, tokens, USD value, % of market cap, recipients and insider (team + investor) share, with its source. Defaults: next 7 days, top 500 coins, at least 0.5 % of market cap, ranked by % of market cap. Only coins DropsTab tracks; each recipient's next release only. Answers "biggest unlocks this week?", "big VC unlocks this month?". For one coin use get_unlocks.

ParametersdayssortlimitminPctmaxRankinsidersOnly

get_holders

Token holder tracking

Tracked token-holder cohorts. view=watchlist (which token contracts are tracked), movements (recent holder-count changes for one contract). Answers "is the holder base growing or bleeding?".

Parameterstopviewlimitfieldscontract

get_wallets

Wallet tracking

Tracked wallets. view=watchlist (which wallets are tracked), movements (recent balance changes for one wallet address). Answers "what did this wallet do recently?".

Parameterstopviewlimitfieldsaddress

get_futures_signals

Futures signals

Perpetual-futures signal engine. view=state (currently open signals), log (recent fires), history (one asset's past signals — needs asset).

Parameterstopviewassetfields

get_basket

Basket snapshots

Daily snapshots of the tracked basket — composition and performance over time.

Parameterstopfields

get_transcripts

Transcript highlights

Highlights mined from tracked video/podcast transcripts. view=highlights (extracted claims with the coins, sectors and macro tags they mention), sources (which channels are tracked). Answers "what are people actually saying about X?".

Parameterstopviewfields

ask_shumi

Ask Shumi (free-form)

Ask Shumi any crypto-market question in natural language. Shumi classifies the query, fetches the relevant data, and returns a synthesized answer. Use this when no specific typed tool fits, or for multi-part / comparative questions.

Parametersqueryrequiredarchetype

search_web

Search the web

Search the web for crypto information, or get a direct answer. Backed by Shumi's web-search tool.

Parametersqueryrequiredanswer

Version history

3
  1. v1.3.0LatestOct 14, 2026
  2. v1.2.1Sep 24, 2026
  3. v1.1.1Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts