Ichimoku Signal
Server Details
Free Ichimoku trend; paid confluence, levels, market scan and liquidity-ranked setups via x402.
- Status
- Healthy
- Uptime
- 100.0% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool has a distinct scope (single-pair Ichimoku, single-pair confluence, broad market scan, trade setups, price levels, pair lookup, feedback) and descriptions explicitly redirect to alternatives, so overlap is minimal. The free daily trend versus paid any-timeframe Ichimoku is clearly delineated.
All names use snake_case with no mixed conventions. The noun/action pattern is predictable across the set (e.g., *_signal, *_scan, *_lookup, *_levels).
Eight tools is well within the ideal range and each covers a distinct free/paid workflow or resource. No redundant or throwaway tools; feedback is the only meta tool but earns its place.
The surface covers pair discovery, free daily trend, single-pair deep dives, broad market scans, ranked trade setups, and price levels with plans. Minor gaps like historical signal performance, alerts, or arbitrary watchlist scans are not covered, but core signal workflows have no dead ends.
Available Tools
8 toolsconfluence_signalConfluence signal: 6 indicators ($0.15 via x402)ARead-onlyInspect
Paid ($0.15 USDC via x402 on Solana or Base): six indicators for a crypto pair in one call (Ichimoku, RSI 14, MACD 12/26/9, EMA 50/200, Bollinger Bands 20/2, volume OBV), each with its values and a bullish/bearish/neutral vote, plus the combined signal, confidence (high/medium/low), score and a summary like "4 of 6 indicators bullish". Same as GET /signals/{pair}. A "news" field flags recent news (hack, delisting, unlock, legal action) that can break the signal. One pair you already chose; to find which coins have a setup, use trade_setups. Invalid pairs are rejected before payment.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP | |
| interval | No | Candle interval, default 1h |
Output Schema
| Name | Required | Description |
|---|---|---|
| news | No | Only when the news check is on: news from the last 72 hours that can break a technical signal (TypeSafe Jev). The signal itself never changes; treat high as a reason to wait. |
| pair | No | The pair, e.g. BTC-USDT |
| price | No | Last price |
| signal | No | Combined signal of six indicators |
| accepts | No | Only on an unpaid call: the x402 payment options |
| summary | No | e.g. 4 of 6 indicators bearish |
| interval | No | Candle interval, e.g. 1h, 4h, 1d |
| timestamp | No | |
| confidence | No | low, medium or high |
| indicators | No | Each indicator with its vote |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint, so the description carries the real burden and delivers: price ($0.15 USDC via x402 on Solana or Base), the no-charge-on-invalid-pair behavior, and the caveat that a 'news' field can invalidate the signal. It doesn't cover rate limits or latency, but the payment/validation behavior is exactly the kind of context annotations can't express.
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?
Front-loads the paid aspect and the payload, then packs outputs, caveats, and routing into a tight block. Dense but nearly every clause carries information; the only mild redundancy is restating output contents when an output schema exists.
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?
Covers cost, payment rails, input format scope, output shape, a risk caveat, and sibling routing. With an output schema present it needn't detail return structure, and nothing an agent needs to invoke it correctly is missing.
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 both parameters (pair format including XRPL DEX syntax, and the interval enum with its default) are already fully documented in the schema. The description adds no syntax or default detail beyond 'for a crypto pair', so the 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?
States a specific verb+resource ('six indicators for a crypto pair in one call') and enumerates exactly which indicators (Ichimoku, RSI 14, MACD, EMA, Bollinger, OBV), so an agent can distinguish it from the sibling single-indicator tools like ichimoku_signal without opening a schema.
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?
Explicitly scopes usage: 'One pair you already chose; to find which coins have a setup, use trade_setups.' That names the alternative and the condition that selects it. It also notes invalid pairs are rejected before payment, which removes a hesitation about calling it speculatively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feedbackSend feedback (free)AInspect
Report a bug, a missing feature or anything else about this service, in a structured way. Free. A person reads every report; nothing is run or changed automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | bug, feature (something missing) or other | |
| contact | No | Optional: how to reach you about it | |
| message | Yes | What happened or what you need | |
| endpoint | No | Optional: the route or tool it is about, e.g. /v1/token |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Report id, to refer to it later |
| note | No | |
| type | No | |
| service | No | |
| received | Yes | true: a person will read it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=false, so the agent already knows this is a self-contained write. The description meaningfully supplements that by stating 'nothing is run or changed automatically' and that a human reviews every report, which reframes the write as non-impacting. It stops short of describing turnaround, rate limits, or error handling.
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 short sentences, zero filler, with the core action front-loaded and the qualifying details (free, human-reviewed, non-automatic) following. The 'Free.' fragment earns its place as a decision-relevant fact.
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, the description need not explain return values, and it covers the essentials of what the tool does and how submissions are handled. A brief note on expected follow-up (e.g., no ticket ID or reply guarantee) would round it out, but nothing needed to invoke it correctly is missing.
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% and one parameter carries an enum, so the schema fully documents type, contact, message, and endpoint. The description's only nod to parameters is the vague phrase 'in a structured way', which adds no detail 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 names a specific verb (report) and a precise resource (a bug, missing feature, or anything else about the service), so an agent immediately knows this is the feedback channel. It is unmistakably distinct from the market-data siblings (market_scan, price_levels, trade_setups), which are all analysis 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 implies usage by enumerating the reportable categories (bug / feature / other), which maps onto when an agent should reach for it, but it never states when-not to use it or any alternative escalation path. The 'Free' and 'a person reads every report' notes add context but not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ichimoku_signalIchimoku Cloud signal ($0.01 via x402)ARead-onlyInspect
Paid ($0.01 USDC via x402 on Solana or Base): the full Ichimoku Cloud signal for a crypto pair on any timeframe (1m to 1M): bullish/bearish/neutral, cloud position, tenkan/kijun cross, price and tenkan, kijun, senkou span A/B values. A "news" field flags recent news (hack, delisting, unlock, legal action) that can break the signal. One pair, Ichimoku only: for six indicators use confluence_signal, for entry/stop/targets price_levels. Requires an x402-capable MCP client; invalid pairs are rejected before payment.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP | |
| interval | No | Candle interval, default 1h |
Output Schema
| Name | Required | Description |
|---|---|---|
| news | No | Only when the news check is on: news from the last 72 hours that can break a technical signal (TypeSafe Jev). The signal itself never changes; treat high as a reason to wait. |
| pair | No | The pair, e.g. BTC-USDT |
| price | No | Last price |
| signal | No | bullish, bearish or neutral (absent on the payment requirement) |
| accepts | No | Only on an unpaid call: the x402 payment options |
| interval | No | Candle interval, e.g. 1h, 4h, 1d |
| kijun_sen | No | |
| timestamp | No | |
| tenkan_sen | No | |
| cloud_position | No | |
| tenkan_kijun_cross | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint and openWorldHint; the description adds far more: the $0.01 USDC x402 payment across Solana or Base, the pre-payment validation behavior ('invalid pairs are rejected before payment'), and the 'news' field that can invalidate the signal. Cost and failure semantics are exactly the behavioral context an agent cannot infer from annotations or schema.
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?
Front-loaded with cost then capability, and every clause carries information (scope, outputs, news caveat, sibling routing, client requirement). It is a dense, run-on single sentence, which slightly hurts scannability, but there is little 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?
Output schema exists so return values need not be explained; despite that, the description still names the key output fields. Combined with payment model, sibling routing, and invalid-pair handling, an agent has everything needed to invoke this 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% and the interval enum is fully specified in the schema, so the description's restatement of 'any timeframe (1m to 1M)' and 'one pair' adds no syntax or format detail beyond it. Baseline 3 applies when the schema already carries parameter documentation.
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?
States a specific verb+resource (Ichimoku Cloud signal for a crypto pair on any timeframe) and enumerates the concrete outputs (bullish/bearish/neutral, cloud position, tenkan/kijun cross, indicator values). It explicitly separates itself from siblings by naming confluence_signal and price_levels as different scopes.
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?
Explicit routing: 'One pair, Ichimoku only: for six indicators use confluence_signal, for entry/stop/targets price_levels.' It also states the client prerequisite ('Requires an x402-capable MCP client'), so the agent knows both when to pick this tool and when it is ineligible to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ichimoku_trendIchimoku daily trend (free)ARead-onlyInspect
Free: the daily (1d) Ichimoku Cloud trend for a crypto pair (top 200 coins, from Binance.US, Kraken, Gate or MEXC): bullish, bearish or neutral, whether price is above, below or in the cloud, and the tenkan/kijun cross. Limited to 20 calls per hour. For other timeframes and the line values use ichimoku_signal; for six indicators use confluence_signal, for support/resistance and targets price_levels, for every top-200 coin at once market_scan, for ranked trade setups across all coins trade_setups.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP |
Output Schema
| Name | Required | Description |
|---|---|---|
| pair | Yes | |
| signal | Yes | The daily trend |
| interval | Yes | |
| timestamp | No | |
| cloud_position | No | above_cloud, below_cloud or in_cloud |
| tenkan_kijun_cross | No | bullish_cross, bearish_cross or none |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only and open-world, but the description adds important runtime context: a hard 20 calls/hour rate limit, the free tier limitation, and the upstream data sources where the free constraint may matter. It doesn't explain fallback behavior if a pair isn't found on the first exchange, which would push it to a 5.
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 first sentence front-loads purpose, output, and source in a dense but readable clause. The second sentence packs five sibling-routing rules efficiently. Slightly long, but every clause 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?
Despite a 1-parameter tool with an output schema, the description covers purpose, output shape, data provenance, rate limits, and sibling boundaries. An agent could correctly select and invoke this tool without opening any other documentation.
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 schema already documents the pair format including xrpl: prefixes and examples. The description repeats the exchange scope (top 200 coins) and examples but adds no format details beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
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?
States a specific verb+resource: daily Ichimoku Cloud trend for a crypto pair, with explicit outputs (bullish/bearish/neutral, cloud position, tenkan/kijun cross) and data sources (Binance.US, Kraken, Gate, MEXC). It clearly distinguishes itself from ichimoku_signal by scoping to the 1d timeframe.
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?
Explicitly routes to alternatives: ichimoku_signal for other timeframes and line values, confluence_signal for six indicators, price_levels for support/resistance, market_scan for all coins, trade_setups for ranked setups. The 20 calls/hour rate limit is also stated, giving concrete usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_scanMarket scan: every top-200 coin ($0.10 via x402)ARead-onlyInspect
Paid ($0.10 USDC via x402 on Solana or Base): the Ichimoku Cloud signal for 148 top-200 coins (stablecoins excluded) in one call, sorted from strongest bullish to strongest bearish by the price's distance from the cloud, with market breadth ("69 of 147 coins bullish") and per coin the signal, price, cloud position, tenkan/kijun cross and exchange. Optional filter on bullish, bearish or neutral. Ichimoku only, no trade plans: for the market's direction at a glance; for coins with entry, stop and targets use trade_setups. Same as GET /scan.
| Name | Required | Description | Default |
|---|---|---|---|
| signal | No | Only return coins with this signal | |
| interval | No | Candle interval, default 1h |
Output Schema
| Name | Required | Description |
|---|---|---|
| coins | No | Every coin, strongest bullish first |
| accepts | No | Only on an unpaid call: the x402 payment options |
| breadth | No | e.g. 71 of 148 coins bearish |
| interval | No | |
| timestamp | No | |
| coins_scanned | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and openWorldHint, but the description adds the crucial non-obvious context: this call is paid ($0.10 USDC via x402 on Solana or Base) and the universe excludes stablecoins. That is real added value beyond structured fields. It stops short of stating rate limits or what happens on payment failure, and the coin count is internally inconsistent (148 vs '69 of 147'), keeping it from a 5.
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 leads with the payment requirement, then the payload, then the alternative-tool routing. Every clause carries information, though the density (payment rails, exclusions, breadth, per-coin fields, filter, sibling contrast all in one breath) makes it slightly hard to scan.
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?
An output schema exists, so return values need not be spelled out, yet the description still conveys the sort order, breadth summary, per-coin fields and optional filter. Combined with the disclosed cost and payment rails for a paid open-world read tool, an agent has everything needed to call it 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 both parameters are already documented in the schema — the baseline is 3. The description restates the signal filter's semantics (bullish/bearish/neutral) but adds nothing about the interval parameter or the interaction between the two, so it does not exceed 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?
States a specific verb and resource (Ichimoku Cloud signal for 148 top-200 coins) with an explicit scope note that stablecoins are excluded and the result is sorted strongest-bullish to strongest-bearish. It also names the sibling it is not (trade_setups) and the endpoint it mirrors (GET /scan), so an agent can distinguish it without opening the schema.
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?
Explicit routing: use this for the market's direction at a glance; use trade_setups when entry, stop and targets are needed. The optional bullish/bearish/neutral filter is also described as a usage condition. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pair_lookupLook up a pair (free)ARead-onlyInspect
Free: before paying, check whether a crypto pair is supported, on which exchange its candles come from (Binance.US, Kraken, Gate or MEXC, or the XRP Ledger DEX for xrpl: pairs) and which intervals the paid tools accept for it. Another dollar quote (USDT, USD, USDC) can stand in for the one you ask. Fetches no candles and returns no signal; for the daily trend use ichimoku_trend. Limited to 60 calls per hour.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP |
Output Schema
| Name | Required | Description |
|---|---|---|
| pair | Yes | The pair as asked, e.g. TAO-USDT |
| market | No | The market used there, e.g. TAOUSD (another dollar quote can stand in for USDT) |
| sources | No | The exchanges that were searched |
| exchange | No | Where the candles come from: Binance.US, Kraken, Gate, MEXC or XRPL DEX |
| intervals | No | Intervals the signal tools accept for this pair |
| supported | Yes | true: the signal tools work for this pair |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint/openWorldHint, it discloses a concrete rate limit (60 calls per hour), that no candles or signals are returned, the acceptable quote substitutions (USDT/USD/USDC), and the underlying data sources. That is substantial operational context the annotations do not carry.
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?
Front-loads the most decision-relevant fact ('Free: before paying') and every clause carries information, but the single long sentence with nested parentheticals is dense and would read better split into two.
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, return values need no explanation, and the description still covers sourcing, intervals, rate limits, and the no-signal caveat. Nothing needed to call it correctly is missing.
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% and the single pair parameter is well documented, so the baseline is 3. The description adds behavioral meaning for that parameter: a different dollar quote can substitute for the one requested, which is not evident from the schema alone.
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?
Names a specific verb and resource ('Look up a pair') and enumerates exactly what the response tells you: support status, candle source (Binance.US, Kraken, Gate, MEXC, XRPL DEX), and accepted intervals. It also differentiates itself from the signal/tooling siblings by stating it fetches no candles and returns no signal.
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?
Gives an explicit call condition ('Free: before paying, check whether a crypto pair is supported') and routes the agent elsewhere for a different need ('for the daily trend use ichimoku_trend'). The free-vs-paid distinction makes the when-to-use decision unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_levelsPrice levels and a long/short plan ($0.05 via x402)ARead-onlyInspect
Paid ($0.05 USDC via x402 on Solana or Base): price levels for a crypto pair: up to 3 supports and resistances (swing highs/lows and pivots), ATR, pivots, Fibonacci retracements and Ichimoku levels, the bias from the confluence signal, and a long and a short plan (entry, stop, two targets, risk/reward). Same as GET /levels/{pair}. Levels from price history, not trade advice. One pair; for ranked plans across all coins use trade_setups. Invalid pairs are rejected before payment.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP | |
| interval | No | Candle interval, default 1h |
Output Schema
| Name | Required | Description |
|---|---|---|
| bias | No | long, short or neutral, from the confluence signal |
| pair | No | The pair, e.g. BTC-USDT |
| price | No | Last price |
| accepts | No | Only on an unpaid call: the x402 payment options |
| interval | No | Candle interval, e.g. 1h, 4h, 1d |
| supports | No | |
| timestamp | No | |
| resistances | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, but the description adds substantial context: the $0.05 USDC x402 payment on Solana or Base, that validation happens before payment is charged, and the 'levels from price history, not trade advice' disclaimer. This is meaningful disclosure beyond the annotations, though payment-failure/refund behavior isn't detailed.
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?
Front-loads the payment cost and the core resource, then packs output details into one dense sentence. Every clause carries information, though the single run-on sentence is heavy 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?
With an output schema present, return values needn't be re-explained, yet the description helpfully summarizes the payload. Payment model, alternative tool, and rejection behavior are covered; only edge cases like timeout or partial-failure handling are absent.
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% and both parameters (pair, interval) are thoroughly documented in the schema itself, so the schema carries the burden. The description only adds the 'one pair' constraint and the GET /levels/{pair} mapping, which is minor added value.
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?
States a specific resource (price levels for a crypto pair) and enumerates the concrete outputs — supports/resistances, ATR, pivots, Fibonacci, Ichimoku, bias, and long/short plans — so an agent knows exactly what this returns. It also distinguishes itself from the sibling trade_setups by scoping to one pair.
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?
Explicitly names the alternative ('for ranked plans across all coins use trade_setups') and states the single-pair constraint, plus that invalid pairs are rejected before payment. It gives clear context for use but doesn't spell out when-not conditions beyond the pair scoping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trade_setupsTrade setups: every top-200 coin, ranked ($0.50 via x402)ARead-onlyInspect
Paid ($0.50 USDC via x402 on Solana or Base): which crypto coins have a trade setup right now. For 148 top-200 coins: the six-indicator confluence signal (Ichimoku, RSI, MACD, EMA 50/200, Bollinger, OBV) and a trade plan in that direction (entry, stop, two take profit targets, risk/reward), ranked by signal strength x risk/reward, lower for high volatility, for support/resistance right after the entry and for thinly traded coins. Filters: direction (long/short/both), min_rr, top, liquid_top (only the N most traded coins). The screener across all coins; for one pair you already chose use confluence_signal and price_levels. Same as GET /setups. Levels from price history, not trade advice. A screener, not a strategy: in our backtest these setups did no better than random entries after fees.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | How many setups to return (default 10) | |
| min_rr | No | Minimum risk/reward to target 1 (default 1.5) | |
| interval | No | Candle interval, default 4h | |
| direction | No | Only long or only short setups (default both) | |
| liquid_top | No | Only the N most traded coins, e.g. 30 (default all) |
Output Schema
| Name | Required | Description |
|---|---|---|
| setups | No | Ranked setups with entry, stop and targets |
| accepts | No | Only on an unpaid call: the x402 payment options |
| interval | No | |
| timestamp | No | |
| setups_found | No | |
| coins_scanned | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld annotations by disclosing the x402 payment ($0.50 USDC on Solana or Base), the ranking formula (signal strength x risk/reward, penalized for volatility, nearby support/resistance, thin liquidity), and a candid backtest caveat that the setups did no better than random after fees. This is unusually rich behavioral context.
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?
Front-loads the paid access and core purpose, then packs filters, ranking logic, and caveats efficiently. The middle clause is dense and run-on, but nearly every sentence carries information; minor tightening possible.
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, return values need not be described. The description covers payment, scope, ranking rationale, alternatives, and a critical expectation-setting caveat, leaving no significant gap for an agent deciding whether to call it.
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 already documents all five parameters. The description restates four of them (direction, min_rr, top, liquid_top) without adding format or syntax detail beyond what's in the schema, and omits interval entirely. Baseline 3 applies when the schema does the heavy lifting.
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?
States a specific verb+resource: it returns 'which crypto coins have a trade setup right now' across 148 top-200 coins, using a six-indicator confluence signal plus a trade plan. It explicitly distinguishes itself from siblings by naming confluence_signal and price_levels for the single-pair case.
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?
Names the alternatives (confluence_signal, price_levels) and the condition that selects them ('for one pair you already chose'). Also enumerates the available filters (direction, min_rr, top, liquid_top) so the caller knows how to scope the result.
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.
1 tool update
- Added
pair_lookup
2 tool updates
- Changed
confluence_signal1 field changed- added
Output schema / properties / newsAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "properties": { + "checked_headlines": { + "type": "number" + }, + "headlines": { + "description": "Up to 3 recent headlines naming the coin, with url and published", + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + "probability": { + "type": [ + "number", + "null" + ] + }, + "risk": { + "description": "high: a headline reports a hack, delisting, unlock, legal action or similar for this coin; elevated: maybe; none: nothing found", + "enum": [ + "high", + "elevated", + "none" + ], + "type": "string" + } + }, + "required": [ + "risk" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Only when the news check is on: news from the last 72 hours that can break a technical signal (TypeSafe Jev). The signal itself never changes; treat high as a reason to wait." +}
- Changed
ichimoku_signal1 field changed- added
Output schema / properties / newsAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "properties": { + "checked_headlines": { + "type": "number" + }, + "headlines": { + "description": "Up to 3 recent headlines naming the coin, with url and published", + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + "probability": { + "type": [ + "number", + "null" + ] + }, + "risk": { + "description": "high: a headline reports a hack, delisting, unlock, legal action or similar for this coin; elevated: maybe; none: nothing found", + "enum": [ + "high", + "elevated", + "none" + ], + "type": "string" + } + }, + "required": [ + "risk" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Only when the news check is on: news from the last 72 hours that can break a technical signal (TypeSafe Jev). The signal itself never changes; treat high as a reason to wait." +}
7 tool updates
- Changed
confluence_signal1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "accepts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Only on an unpaid call: the x402 payment options" + }, + "confidence": { + "description": "low, medium or high", + "type": [ + "string", + "null" + ] + }, + "indicators": { + "anyOf": [ + { + "additionalProperties": {}, + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Each indicator with its vote" + }, + "interval": { + "description": "Candle interval, e.g. 1h, 4h, 1d", + "type": [ + "string", + "null" + ] + }, + "pair": { + "description": "The pair, e.g. BTC-USDT", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Last price", + "type": [ + "number", + "null" + ] + }, + "signal": { + "anyOf": [ + { + "enum": [ + "bullish", + "bearish", + "neutral" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Combined signal of six indicators" + }, + "summary": { + "description": "e.g. 4 of 6 indicators bearish", + "type": [ + "string", + "null" + ] + }, + "timestamp": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
feedback1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "id": { + "description": "Report id, to refer to it later", + "type": "string" + }, + "note": { + "type": "string" + }, + "received": { + "description": "true: a person will read it", + "type": "boolean" + }, + "service": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "received", + "id" + ], + "type": "object" +}
- Changed
ichimoku_signal1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "accepts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Only on an unpaid call: the x402 payment options" + }, + "cloud_position": { + "type": [ + "string", + "null" + ] + }, + "interval": { + "description": "Candle interval, e.g. 1h, 4h, 1d", + "type": [ + "string", + "null" + ] + }, + "kijun_sen": { + "type": [ + "number", + "null" + ] + }, + "pair": { + "description": "The pair, e.g. BTC-USDT", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Last price", + "type": [ + "number", + "null" + ] + }, + "signal": { + "anyOf": [ + { + "enum": [ + "bullish", + "bearish", + "neutral" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "bullish, bearish or neutral (absent on the payment requirement)" + }, + "tenkan_kijun_cross": { + "type": [ + "string", + "null" + ] + }, + "tenkan_sen": { + "type": [ + "number", + "null" + ] + }, + "timestamp": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
ichimoku_trend1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "cloud_position": { + "description": "above_cloud, below_cloud or in_cloud", + "type": "string" + }, + "interval": { + "type": "string" + }, + "pair": { + "type": "string" + }, + "signal": { + "description": "The daily trend", + "enum": [ + "bullish", + "bearish", + "neutral" + ], + "type": "string" + }, + "tenkan_kijun_cross": { + "description": "bullish_cross, bearish_cross or none", + "type": "string" + }, + "timestamp": { + "type": "string" + } + }, + "required": [ + "pair", + "interval", + "signal" + ], + "type": "object" +}
- Changed
market_scan1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "accepts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Only on an unpaid call: the x402 payment options" + }, + "breadth": { + "description": "e.g. 71 of 148 coins bearish", + "type": [ + "string", + "null" + ] + }, + "coins": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Every coin, strongest bullish first" + }, + "coins_scanned": { + "type": [ + "number", + "null" + ] + }, + "interval": { + "type": [ + "string", + "null" + ] + }, + "timestamp": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
price_levels1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "accepts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Only on an unpaid call: the x402 payment options" + }, + "bias": { + "description": "long, short or neutral, from the confluence signal", + "type": [ + "string", + "null" + ] + }, + "interval": { + "description": "Candle interval, e.g. 1h, 4h, 1d", + "type": [ + "string", + "null" + ] + }, + "pair": { + "description": "The pair, e.g. BTC-USDT", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Last price", + "type": [ + "number", + "null" + ] + }, + "resistances": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "supports": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "timestamp": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
trade_setups1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "properties": { + "accepts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Only on an unpaid call: the x402 payment options" + }, + "coins_scanned": { + "type": [ + "number", + "null" + ] + }, + "interval": { + "type": [ + "string", + "null" + ] + }, + "setups": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Ranked setups with entry, stop and targets" + }, + "setups_found": { + "type": [ + "number", + "null" + ] + }, + "timestamp": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
4 tool updates
- Changed
confluence_signal1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP"
- Changed
ichimoku_signal1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP"
- Changed
ichimoku_trend1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP"
- Changed
price_levels1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins). For the XRP Ledger DEX: xrpl:XRP-RLUSD, xrpl:SOLO-XRP, or with the issuer, xrpl:SOLO.rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz-XRP"
1 tool update
- Added
feedback
1 tool update
- Changed
trade_setups1 field changed- added
Input schema / properties / liquid_topAdded value: +{ + "description": "Only the N most traded coins, e.g. 30 (default all)", + "maximum": 200, + "minimum": 1, + "type": "integer" +}
1 tool update
- Added
trade_setups
1 tool update
- Added
market_scan
4 tool updates
- Changed
confluence_signal1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, then Gate: covers the top 100 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"
- Changed
ichimoku_signal1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, then Gate: covers the top 100 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"
- Changed
ichimoku_trend1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, then Gate: covers the top 100 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"
- Changed
price_levels1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, then Gate: covers the top 100 coins)"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, Gate and MEXC: covers the top 200 coins)"
2 tool updates
- Added
confluence_signal - Added
price_levels
2 tool updates
- Changed
ichimoku_signal1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Binance.US spot pair, e.g. BTC-USDT, SOL-USDT or ETHUSDT"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, then Gate: covers the top 100 coins)"
- Changed
ichimoku_trend1 field changed- changed
Input schema / properties / pair / descriptionPrevious value: -"Binance.US spot pair, e.g. BTC-USDT, SOL-USDT or ETHUSDT"New value: +"Crypto pair, e.g. BTC-USDT, SOL-USDT, TAO-USDT or ETHUSDT (Binance.US, then Kraken, then Gate: covers the top 100 coins)"
2 tool updates
- First observed
ichimoku_signal - First observed
ichimoku_trend
Related MCP Connectors
Stock market trading signals: regime, ranked buy list, stock + sector reads. Free tier + x402 live.
Verified market data for AI trading agents: quality-flagged candles, funding, OI, order flow. x402.
Crypto market intelligence for AI agents: sentiment, flow, Oracle readings. x402. NFA.
81x402 market intel + $1 trade decisions: crypto, US & EU stocks, order flow, perps, macro, filings
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceGraded trading signals and market analysis for FX, crypto, sports, and prediction markets, with a public machine-graded track record. Free track-record and quote tools; paid tools via API key or per-call x402 USDC-
- AlicenseAqualityBmaintenanceReal-time DEX token momentum, orderbook liquidity depth, and whale flows on Base Mainnet gated with gasless x402 micropayments.3MIT
- AlicenseAqualityDmaintenanceReal-time crypto intelligence for AI agents. Technical analysis, liquidation heatmaps, sentiment, and funding rates for 50+ Hyperliquid perpetuals via x402 micropayments.1568 PyPI1MIT
- AlicenseBqualityFmaintenanceCross-exchange crypto orderflow for AI agents. 20 exchanges, 26 tokens, 9 tools — CVD, whale activity, funding/OI, 7-year OHLCV, on-chain address risk (EVM + Solana). Pay-per-call USDC via x402, no API key.927 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.