Shumi AI
Shumi AI is a read-only crypto trade-intelligence MCP server providing market data, signals, sentiment analysis, and trading ideas. It offers tools for:
Coin research & lookup:
lookup_coin,resolve_coin,get_coin_risk,get_coin_sentiment,get_coin_historicalto look up and analyze individual coins by symbol, name, ID, or contract.Market overview:
get_market_health(trend distribution and extreme movers),get_global_market(BTC dominance, total cap/volume),get_prices(bulk live prices with baselines),get_market_crossing(market crossing signals).Trend & scanning:
scan_trends(trend states: fresh/stale/aligned/extreme/historical),scan_coins(filter by trend, category, market cap, exchange).Sentiment & narratives:
get_market_sentiment(aggregate sentiment),list_narratives/get_narrative,list_categories/get_category.Funding rates:
get_funding_momentum(funding positioning context),get_funding_alerts(discrete alert events).Signals & regime:
get_regime(market regime signals/history),get_signal(synthesized verdict per coin),get_signal_quality(validation metrics),get_futures_signals.Pair & delta-neutral ideas:
get_pair_suggestions(pair/delta-neutral ideas and backtests),get_basket.Real-world assets:
list_rwa_assets,get_rwa_asset(stocks, ETFs, commodities, indices, FX).Holder & wallet tracking:
get_holders,get_wallets.Transcripts:
get_transcripts.Natural language & web:
ask_shumi(free-form questions),search_web(web search with direct answer).Configuration/deployment: Requires
SHUMI_TOKEN; supportsSHUMI_API_URL,SHUMI_WALLET, and local/remote HTTP transport.Resources:
shumi://capabilitiesandshumi://billing/tierto inspect data surface and entitlement.
@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):
{
"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.
Related MCP server: crypto-quant-signal-mcp
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_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 var | Default | Purpose |
| — | API key ( |
| production coinrotator-ai endpoint | Override the API base URL. |
| — | 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:
PORT=8787 SHUMI_MCP_ALLOWED_ORIGINS=https://yourapp.com npm run start:httpEach 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:
field | value |
URL |
|
Header name |
|
Header value |
|
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— noinitialize, noMcp-Session-Id. A request carries its own routing in headers (Mcp-Method, plusMcp-Nameontools/call) and its protocol envelope inparams._meta, so an intermediary can route and meter a call without parsing the body.2025-11-25and earlier — still served. Old clients keep theirinitializehandshake, 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
npm install
npm test # unit tests (no network)
npm run inspect # open the MCP Inspector against the stdio server
SHUMI_TOKEN=… npm start # run the stdio serverDeliberately 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.
Available Tools
23 toolsask_shumiAsk Shumi (free-form)ARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The natural-language question, e.g. "is funding extreme on SOL right now?". | |
| archetype | No | Specialization path (default "base"; e.g. "perp-dex"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and openWorldHint. The description adds that the tool classifies the query, fetches relevant data, and synthesizes an answer. This contextualizes the behavior well, though it stops short of detailing how the fetching works or potential latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the core purpose and include usage guidelines. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a free-form tool with 2 well-documented params and supporting annotations, the description provides sufficient context. However, it does not mention the format of the returned answer (e.g., plain text, JSON), which could be a minor gap for an agent expecting structured output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions already cover both parameters (query and archetype) with examples. The tool description does not add further parameter-specific information, so given 100% schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: asking any crypto-market question in natural language, with the sub-steps of classification, data fetching, and synthesis. It explicitly distinguishes itself from specific typed tools, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this when no specific typed tool fits, or for multi-part / comparative questions.' This directly tells the agent when to select this tool over the 23 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_categoryCategory detailARead-onlyInspect
Detail for one category. view=info (trend breakdown), coins (member coins), sentiment.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| name | Yes | Category name, e.g. "Layer 2". | |
| view | No | Which category view to return. | info |
| fields | No | Token-saving: comma-separated top-level fields to keep. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context on the different views and token-saving options (top, fields), providing value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, but the shorthand 'view=info (trend breakdown)' may be slightly cryptic for some users.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and the complete parameter descriptions, the description fully covers the tool's behavior without needing to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds some extra context (e.g., example for name, explanation of top), but largely mirrors the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'Detail for one category' and lists the three views (info, coins, sentiment), making the purpose specific and distinct from siblings like list_categories or get_narrative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving category details but does not explicitly state when to use this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_historicalCoin historical metadataARead-onlyInspect
Historical metadata for a coin (holder cohorts, sentiment and funding history).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. ETH. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description does not need to reiterate safety. It adds value by specifying the types of historical data included (holder cohorts, sentiment, funding history), but does not disclose additional behavioral traits like pagination or depth of history.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the purpose and key content. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and only one simple parameter, the description is sufficient. It could optionally mention that the output covers historical periods or ranges, but overall it is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'symbol' is documented with an example. The description does not add any meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'historical metadata for a coin' specifying elements like holder cohorts, sentiment, and funding history. It uses a specific verb-resource combination and distinguishes from siblings such as get_coin_sentiment (likely current) and get_funding_momentum (likely current).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Given many sibling tools (e.g., get_coin_sentiment, get_funding_alerts), a note that this is for historical data while others are for current data would help. The description only implies usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_riskCoin risk contextARead-onlyInspect
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".
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | One or more coin symbols, e.g. ["BTC","ETH","SOL"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. The description adds significant behavioral context: it explains the funding nuance for perps vs spot, instructs to relay carry fields exactly, and lists all return fields. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (four sentences), front-loaded with the most important information, and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear annotations, the description fully covers the tool's purpose, usage context, and behavioral caveats. It is complete for an agent to decide when and how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the 'symbols' parameter that matches the tool description. The description adds no new parameter semantics beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'bundled risk context' for coins, listing specific fields like price, funding APR, trends, sentiment, and correlation. It distinguishes itself as the best tool for 'should I be worried about X', which differentiates it from siblings like get_coin_sentiment or get_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that funding applies only to perpetual positions and advises relaying carry fields exactly. It also positions itself as the best single tool for risk assessment. However, it does not explicitly mention when not to use it or name alternative tools for specific cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_sentimentCoin sentimentARead-onlyInspect
On-chain/social sentiment aggregates for a single coin.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. BTC. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. Description adds 'aggregates' but no additional behavioral details like update frequency, data sources, or potential delays. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste, front-loaded with key info. Could include more context but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, return values not required. But description lacks details on aggregation method, timeframes, or reliability; adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description provides no extra meaning beyond 'Coin symbol, e.g. BTC.' Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves on-chain/social sentiment aggregates for a single coin, distinguishing it from global or market-wide sentiment tools like get_market_sentiment and get_global_market.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus siblings like get_coin_risk or lookup_coin. The description implies singular coin focus but lacks alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_alertsFunding alertsARead-onlyInspect
Discrete funding-rate alert events (asset, trigger zone, funding at trigger, fired-at time).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| fields | No | Token-saving: comma-separated top-level fields to keep. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description doesn't need to reiterate safety. It adds context that the tool returns discrete events with specific fields, but no further behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads key information. Every word earns its place with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, the description need not explain return values. It names the key fields. For a simple retrieval tool with good annotations, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully describes the 'top' and 'fields' parameters. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly lists the resource (funding-rate alert events) and the included fields (asset, trigger zone, funding at trigger, fired-at time). This clearly distinguishes it from siblings like get_funding_momentum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving funding alerts but provides no explicit guidance on when to use this tool versus alternatives or when not to use it. No comparison with siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_funding_momentumFunding momentumARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Restrict to one symbol, e.g. BTC. Omit for the market-wide view. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and openWorldHint. The description adds context on what funding rates are, how to interpret positive/negative values, and emphasizes it's not a signal. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff. Front-loaded with the tool's purpose, followed by unit clarification and usage caveat. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description covers what the tool does, its limitations, and parameter semantics. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description restates the parameter behavior (omit for market-wide) with an example. It adds marginal value beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'perpetual funding-rate positioning context' for market-wide or per symbol. It explains APR units and sign meaning, distinguishing it from siblings like get_funding_alerts. The verb 'get' and resource 'funding momentum' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns that funding is 'context only, not a standalone directional, timing, or entry signal,' preventing misuse. It offers market-wide vs single-symbol usage. It doesn't explicitly name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_global_marketGlobal market aggregatesARead-onlyInspect
Global market aggregates: BTC dominance, total market cap, total volume.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, read-only operation. The description complements this by specifying the exact data returned (BTC dominance, total market cap, total volume), providing full behavioral clarity for a zero-parameter tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads essential information. Every word contributes: it names the resource, lists key metrics, and no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an existing output schema, the description is complete. It succinctly covers what the tool does without needing to explain return values, as the output schema handles that. No gaps are evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description effectively adds value by naming the output fields, which is especially helpful when no parameters need explanation. Baseline for 0 parameters is 4, but the descriptive output earns a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides global market aggregates, specifically naming BTC dominance, total market cap, and total volume. This distinguishes it from siblings like get_prices or get_market_health by specifying the exact metrics returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for retrieving high-level market aggregates, but it does not explicitly state when to use it versus alternatives like get_market_health or get_prices. The purpose is clear, but usage boundaries are not delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_healthMarket healthARead-onlyInspect
Overall market health: the UP/HODL/DOWN trend distribution and extreme movers. Set context for the full bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Include the full market-context bundle (breadth velocity, regime age, leadership). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description does not need to reiterate safety. The description adds no behavioral context beyond what annotations provide, but it does not contradict them either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary purpose. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, read-only, with an output schema), the description is largely complete. It mentions key outputs and the purpose of the context parameter, though 'full bundle' could be clarified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single boolean parameter 'context' is fully described in the schema). The description adds no additional meaning to the parameter beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides 'overall market health' including 'trend distribution and extreme movers', which is specific about the resource and outputs. However, it does not differentiate clearly from siblings like 'get_global_market' or 'get_market_sentiment', and the phrase 'full bundle' is ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Set context for the full bundle', implying a usage scenario (use before other tools), but lacks explicit when-to-use or when-not-to-use guidance and does not mention alternatives among the 22 sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_sentimentMarket sentimentARead-onlyInspect
Aggregate market sentiment. view=market/latest/summary (overall), narratives, categories, slopes/entity-slopes (what is trending), health (pipeline status).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| view | No | Which sentiment view to return. | market |
| fields | No | Token-saving: comma-separated top-level fields to keep. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by explaining that views include slopes for trending and health for pipeline status, which clarifies the tool's behavior beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a list, efficiently conveying the aggregate nature and view options. It is front-loaded and contains no waste. Slight improvement could separate views more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description does not need to detail return values. It covers the main functionality and view options adequately. The tool is straightforward; the description is sufficient for an agent to understand its role among many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the views (e.g., 'slopes/entity-slopes (what is trending)') and providing default and usage tips for the 'top' parameter ('default 50', 'raise for more, lower to save tokens'). This enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Aggregate market sentiment' and enumerates specific views, providing a precise verb and resource. This differentiates it from siblings like get_coin_sentiment or get_market_health which focus on specific coins or health only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists available views but does not explicitly state when to use this tool versus alternatives like get_coin_sentiment or list_narratives. Usage context is implied through the view options, but no exclusion criteria or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_narrativeNarrative sentimentARead-onlyInspect
Sentiment and momentum for a single named narrative.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Narrative name, e.g. "AI coins". |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds context about returned data (sentiment and momentum) but doesn't disclose additional behavioral traits like required permissions or output format bounds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence with no waste. Could be slightly improved by front-loading the verb (e.g., 'Gets sentiment and momentum...') but still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with output schema and openWorldHint=true, the description is sufficiently complete. It explains the tool's purpose without needing to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a clear description for the 'name' parameter. The description doesn't add extra semantic value beyond that, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns sentiment and momentum for a single named narrative. It distinguishes from siblings like get_coin_sentiment (coin-level) and list_narratives (listing). Specific verb+resource is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (need sentiment/momentum for one narrative) but gives no explicit guidance on when not to use, nor alternatives like list_narratives or get_coin_sentiment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pair_suggestionsPair / delta-neutral suggestionsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| mode | No | Which pair view to return. | suggestions |
| limit | No | Max results. | |
| fields | No | Token-saving: comma-separated top-level fields to keep. | |
| symbol | No | Filter by symbol (suggestions / delta-neutral). | |
| token_a | No | First token (required for mode="signal"), e.g. ETH. | |
| token_b | No | Second token (required for mode="signal"), e.g. SOL. | |
| dex_only | No | DEX exchanges only (delta-neutral). | |
| exchange | No | Filter by exchange (delta-neutral). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, establishing a safe, dynamic read operation. The description adds behavioral context by detailing mode-specific behavior (e.g., 'signal' requires two tokens) and the type of intelligence provided (pair ideas, funding arb, backtest). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the overall purpose, then succinctly listing modes and their context. It is efficient and avoids redundancy, though a slight restructuring could improve readability (e.g., bullet points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and an output schema present, the description covers the main modes and their required params, hinting at use cases. It does not repeat return value details (handled by output schema) and provides sufficient context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter's intent is already clear from the schema (e.g., 'Required for mode="signal"'). The description adds value by grouping parameters under modes (e.g., mention token_a and token_b for signal) but does not significantly enhance what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'pair-trading and delta-neutral funding-arbitrage intelligence' and enumerates four modes (suggestions, delta-neutral, history, signal) with brief explanations. This verb+resource+scope is distinct from sibling tools like get_global_market or get_coin_risk, which focus on different data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by explaining each mode's purpose (e.g., 'signal' needs token_a & token_b), but it does not explicitly compare with alternative tools or provide when-to-use/ when-not-to-use guidance. Siblings exist, but no direct differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesBulk live pricesARead-onlyInspect
Bulk live prices, optionally with 4h/24h/7d baseline overlays. Omit symbols for the full tracked set.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| fields | No | Token-saving: comma-separated top-level fields to keep. | |
| symbols | No | Comma-separated symbols, e.g. "BTC,ETH,SOL". Omit for all tracked coins. | |
| baselines | No | Include 4h/24h/7d baseline price overlay. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's disclosure of optional baselines and full-set retrieval adds marginal value. No contradictions, but no additional behavioral traits (e.g., pagination, rate limits) are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states the core function, the second clarifies a key usage pattern. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and the tool's simplicity (read-only, bulk prices), the description covers essential usage. Some users might benefit from knowing default 'top' limit or field filtering details, but those are in the schema and not strictly required here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal extra meaning beyond the schema. The phrase 'Omit symbols for the full tracked set' essentially repeats the schema description for the 'symbols' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Bulk live prices' with optional baseline overlays, identifying the tool's purpose as fetching current price data. It does not explicitly contrast with siblings like 'get_coin_historical' or 'get_global_market', but the description is specific enough to distinguish its bulk and live nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by noting optional baselines and that omitting symbols returns the full tracked set, but it does not provide explicit when-to-use vs. alternatives or when-not-to-use. The agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_regimeMarket regimeARead-onlyInspect
Market regime signals. view=active (current positions), signals (all), confidence (scores). Provide symbol to get that symbol's regime history instead.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Which regime view to return (ignored when symbol is set). | active |
| symbol | No | If set, returns regime history for this symbol. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds that it returns regime signals and history, but does not disclose other behavioral traits like data freshness, rate limits, or what happens if both parameters are set. The description is consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the main purpose. It is concise with no wasted words. However, it could be slightly more structured by separating parameter descriptions, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple interface with 2 parameters and an output schema exists, so description need not detail return values. However, it lacks explanation of what 'regime signals' are conceptually, which may leave the agent without full context. The description covers parameter usage adequately but omits higher-level context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by elaborating on the view enum values: 'active (current positions), signals (all), confidence (scores).' This clarifies the meaning beyond parameter names and schema descriptions. The symbol parameter description largely repeats the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns market regime signals and explains the view parameter options. It also notes that providing a symbol returns regime history. The purpose is specific and distinguishable from sibling tools like get_signal or get_market_health, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on using the view parameter and the symbol parameter, but it does not explain when to use this tool over alternatives such as get_signal or get_market_health. No when-not or contextual exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signalSynthesized signalARead-onlyInspect
Synthesized verdict for a coin, combining trend, funding, sentiment and regime.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Coin symbol, e.g. SOL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint. Description adds that the output combines multiple factors, which is useful context but does not disclose additional behavioral traits like aggregation method or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Front-loaded with action and resource. All information is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately explains the tool's functionality. The combination sources are mentioned, making it sufficiently complete for a simple parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'symbol', and the schema provides its description. The tool description does not add further detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns a 'synthesized verdict' for a coin, combining trend, funding, sentiment, and regime. This specific verb+resource combination distinguishes it from siblings like get_coin_sentiment or get_regime.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for a combined analysis but does not explicitly state when to use this tool versus alternatives, nor does it provide usage conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signal_qualitySignal qualityBRead-onlyInspect
Signal validation envelope for an asset: Sharpe ratio, win rate, sample size, reliability tier.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | Asset symbol, e.g. BTC. | |
| signal_type | No | Signal type (default: mean_reversion). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict the annotations (readOnlyHint, openWorldHint). It adds some behavioral context by specifying the output fields, but does not disclose traits like data freshness, error handling, or auth requirements. Annotations already indicate safety, so the description provides minimal extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with all essential information front-loaded. It is efficiently worded with no redundancy or fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, output schema exists), the description is somewhat complete: it lists the output fields. However, it lacks context on how to interpret the metrics (e.g., what constitutes a 'good' Sharpe ratio) or when results might be empty. It is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already described in the schema. The description adds no additional meaning for the parameters themselves (e.g., it does not explain what 'signal_type' defaults to or its possible values). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns a 'signal validation envelope' for an asset, listing the specific metrics (Sharpe ratio, win rate, sample size, reliability tier). This gives a clear verb and resource, but it does not differentiate this tool from siblings like 'get_signal' or 'get_coin_sentiment'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when NOT to use it, or how it compares to sibling tools such as 'get_signal' or 'get_coin_sentiment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-onlyInspect
List all tracked crypto categories (DeFi, Layer 2, memes, …).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| fields | No | Token-saving: comma-separated top-level fields to keep. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, so the description adds minimal behavioral context beyond listing examples. It does not disclose any further behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is perfectly concise and contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of listing categories, the description, combined with the rich schema and output schema, provides complete context for the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (top, fields). The description adds no additional meaning beyond what the schema provides, resulting in baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all tracked crypto categories, providing specific examples (DeFi, Layer 2, memes) that differentiate it from sibling tools like get_category or list_narratives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for listing all categories but gives no explicit guidance on when to use it versus alternatives, nor any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_narrativesList narrativesARead-onlyInspect
List the currently active market narratives (e.g. "AI coins", "DeFi summer").
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| fields | No | Token-saving: comma-separated top-level fields to keep. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. Description adds that narratives are 'currently active' and examples, but no additional behavioral traits (pagination, filtering limits, etc.). Does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, no extraneous words or repetition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple list operation with output schema and comprehensive annotations. Description is complete; return values are covered by output schema. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already documents both parameters ('top' and 'fields') with clear descriptions. The tool description adds no extra meaning beyond what's in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and the resource 'currently active market narratives' with concrete examples ('AI coins', 'DeFi summer'). Distinguishes from siblings like 'get_narrative' which would retrieve details on a single narrative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied use is for browsing active narratives, but no explicit when-to-use or when-not-to-use guidance, nor mention of alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_coinLook up a coinARead-onlyInspect
Look up a single coin and its core metrics (price, trend, metadata) by symbol, name, CoinGecko/internal id, or on-chain contract address.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | How `identifier` is interpreted. | symbol |
| chain | No | Chain for contract lookups (ethereum, bsc, solana, base, …). Required when by="contract". | |
| identifier | Yes | The symbol (BTC), name (Bitcoin), id (bitcoin), or contract address. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and open-world. The description adds transparency by specifying the return includes price, trend, and metadata, which is useful beyond annotations. No behavioral traits contradicted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the purpose, scope, and identifier options without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, full parameter coverage, and informative annotations, the description adequately completes the picture by summarizing the tool's return (core metrics). No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description restates that contract addresses are supported but does not enrich parameter meanings beyond the schema's 'by', 'chain', and 'identifier' descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Look up' and the resource 'a single coin', explicitly listing the core metrics (price, trend, metadata) and multiple identifier types. It distinguishes from siblings like resolve_coin or get_prices by specifying the scope and data returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool by listing identifier types (symbol, name, id, contract), which implies appropriate contexts. However, it does not explicitly state when not to use it or directly compare to siblings like resolve_coin or get_prices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_coinResolve a coin (fuzzy)ARead-onlyInspect
Fuzzily resolve a symbol, name, or contract to canonical coin candidates. Use this first when the user input is ambiguous, before calling other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max candidates to return. | |
| query | Yes | Symbol, name, or contract to resolve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the description adds value by clarifying fuzzy matching and canonical candidates, but does not go beyond annotations significantly. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: first states purpose, second gives usage guidance. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fuzzy resolution tool with an output schema and good annotations, the description covers what it does and when to use it. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents parameters. The description mentions 'symbol, name, or contract' which aligns with the query parameter, but adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fuzzily resolve a symbol, name, or contract to canonical coin candidates' with a specific verb and resource, and it distinguishes itself from siblings by advising to 'Use this first when the user input is ambiguous, before calling other tools.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context for when to use the tool ('when the user input is ambiguous') and positions it as a preliminary step before other tools, but does not explicitly list alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_coinsScan / filter coinsARead-onlyInspect
Filter the tracked universe by trend direction, category, market-cap band, and exchange.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| limit | No | Max results. | |
| trend | No | Filter by trend direction. | |
| fields | No | Token-saving: comma-separated top-level fields to keep. | |
| category | No | Filter by category name, e.g. "Layer 2". | |
| exchange | No | Filter by exchange listing. | |
| interval | No | Trend interval: 1d (daily) or 1w (weekly). | |
| mcap_max | No | Maximum market cap in USD. | |
| mcap_min | No | Minimum market cap in USD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=true, so the safety profile is clear. The description does not add behavioral details beyond the annotations (e.g., no mention of pagination or result format). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 17 words with no redundancy. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and 9 optional parameters, the description provides sufficient high-level context. It could mention that results are a filtered list, but the output schema fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already described in the input schema. The tool description adds no additional meaning beyond summarizing filter dimensions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool filters coins by trend direction, category, market-cap band, and exchange. This distinguishes it from siblings like scan_trends or get_prices by specifying the exact filtering dimensions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering the tracked universe but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among siblings. Some context is given by listing filter criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_trendsScan trendsARead-onlyInspect
Trend scanner. state=fresh (newly started), stale (longest running), aligned (multi-timeframe agreement), extreme (biggest moves), historical.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Keep only the first N items (default 50). Raise for more, lower to save tokens. | |
| limit | No | Max results. | |
| state | No | Which trend slice to return. | fresh |
| fields | No | Token-saving: comma-separated top-level fields to keep. | |
| interval | No | Trend interval: 1d (daily) or 1w (weekly). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context by explaining each state filter (fresh, stale, etc.), which is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence plus a list of state values). It front-loads 'Trend scanner' but lacks structure; still, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (5 parameters, output schema exists), the description covers core purpose but misses usage context and parameter relationships. Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds some value by explaining the 'state' parameter meanings, but does not add new insight for other parameters like 'top' or 'limit'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Trend scanner' and defines each state, providing a specific verb and resource. It distinguishes from siblings like 'scan_coins' by focusing on trend states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., scan_coins, get_global_market). Does not mention when not to use or provide context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_webSearch the webARead-onlyInspect
Search the web for crypto information, or get a direct answer. Backed by Shumi's web-search tool.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to search for. | |
| answer | No | Return a direct synthesized answer instead of raw search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, openWorldHint) already cover safety and non-determinism. Description adds the 'direct answer' mode via the answer parameter, which is a behavioral option beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no unnecessary words. Efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description doesn't explain return format (e.g., list of results, snippets). For a web search tool, this omission could affect an agent's ability to use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both query and answer are described. The tool description restates the direct answer concept but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Search the web for crypto information' – specific verb and resource. Distinguishes from siblings like lookup_coin or get_coin_historical which are specific data lookups, making this the general web search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use for general queries not covered by crypto-specific siblings. No explicit when-not or alternatives provided, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
23 tool updates
v0.1.0- First observed
ask_shumi - First observed
get_category - First observed
get_coin_historical - First observed
get_coin_risk - First observed
get_coin_sentiment - First observed
get_funding_alerts - First observed
get_funding_momentum - First observed
get_global_market - First observed
get_market_health - First observed
get_market_sentiment - First observed
get_narrative - First observed
get_pair_suggestions - First observed
get_prices - First observed
get_regime - First observed
get_signal - First observed
get_signal_quality - First observed
list_categories - First observed
list_narratives - First observed
lookup_coin - First observed
resolve_coin - First observed
scan_coins - First observed
scan_trends - First observed
search_web
TDQS
Scored across 23 tools
Each tool targets a distinct aspect of crypto market analysis, from global metrics to coin-specific risk, sentiment, funding, signals, and natural language queries. Detailed descriptions prevent ambiguity.
All tools follow a consistent verb_noun pattern with lowercase underscores (e.g., get_global_market, scan_trends, list_narratives). No mixing of styles.
23 tools cover the broad domain of crypto market data without being overwhelming. Each tool serves a clear purpose and the count is well-scoped for the server's functionality.
The tool set covers all major areas: market aggregates, individual coins, trends, sentiment, categories, narratives, funding, signals, pairs, and a general query tool. No obvious gaps for the intended use.
Maintenance
Related MCP Connectors
Crypto market intelligence: social sentiment, on-chain, trending narratives & analyst insights.
Crypto market intelligence for Projects, Topics, Intel, Reports, and Clusters.
Agent-to-agent trading intelligence exchange. Publish findings, vote on quality, earn reputation.
Real-time digital asset narrative intelligence from 1,000+ curated media sources.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides cryptocurrency trading signals, market analysis, and portfolio management capabilities across 15+ exchanges with AI-enhanced technical analysis, arbitrage detection, and risk assessment tools.2-
- AlicenseAqualityAmaintenanceAI-native quantitative trading signal engine for crypto and TradFi perpetuals. Multi-factor composite BUY/SELL/HOLD signals, cross-venue funding rate arbitrage scanning, and market regime detection powered by Hyperliquid data.82,182 npm7MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered cryptocurrency trading and analytics across multiple exchanges and blockchains, with integrated Telegram bot and live trading capabilities.3MIT
- AlicenseNot gradedqualityBmaintenanceProvides crypto market intelligence tools, reference resources, and prompt templates for sentiment analysis, mindshare tracking, social intelligence, and more.46 npm5MIT