Ichimoku Signal
Server Details
Free Ichimoku trend; paid signals, levels, scan, setups and Telegram signal alerts via x402.
- Status
- Healthy
- Uptime
- 100.0% over 47 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Tools split mostly by scope (single-pair signal, single-pair levels/setup, market-wide scan, ranked screener), and descriptions explicitly cross-reference alternatives. However, ichimoku_signal, ichimoku_trend, and confluence_signal overlap on pair-level Ichimoku/signal output, and pair_setup and price_levels both return trade plans, so some boundaries require reading carefully.
All names are snake_case and mostly descriptive domain noun phrases, with recognizable families like _signal, _setup, and _scan. It is not a uniform verb_noun pattern and feedback is a lone outlier, but the naming is readable and consistent overall.
Nine tools is well-scoped for this API: free and paid tiers, pair lookup, single-pair detail, market-wide scan, ranked screener, and feedback all have distinct jobs. No tool feels redundant enough to remove.
Coverage spans pair discovery, free daily trend, detailed Ichimoku, six-indicator confluence, price levels, multi-horizon setup, and market-wide screening, so core signal workflows have no major dead ends. Minor gaps remain for raw candle/history data or alerting, but those are outside the apparent signal/trade-setup scope.
Available Tools
10 toolsconfluence_signalConfluence signal: 6 indicators ($0.15 via x402)ARead-onlyInspect
Paid ($0.15 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer): 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 cover readOnly and openWorld, so the description carries the weight and does so well: it discloses the $0.15 x402 price, the accepted chains and stablecoins, and that validation happens before payment. It stops short of describing response pagination or latency, but for a single-call read tool that is minor.
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?
One dense paragraph, front-loaded with price and the indicator list so the value proposition lands immediately. The payment-chain enumeration is long but earns its place for a paid tool; the news-field caveat is a useful addendum rather than filler.
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 two-parameter read tool with an output schema, the description covers cost, payment mechanics, prerequisites, failure behavior, and even a caveat about the news field breaking signals. Nothing an agent needs to decide or invoke 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 coverage is 100% and both parameters (pair with format examples, interval enum with default) are documented in the schema itself. The description adds only the high-level constraint that the pair must already be chosen; it contributes no format or syntax detail beyond the schema, so 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?
Names a concrete resource ('six indicators for a crypto pair in one call') and enumerates every indicator (Ichimoku, RSI 14, MACD 12/26/9, EMA 50/200, Bollinger 20/2, OBV) plus the aggregation logic, so an agent knows exactly what it gets and how it differs from single-indicator siblings like ichimoku_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?
Explicitly states the precondition ('One pair you already chose') and routes the agent to the right alternative ('to find which coins have a setup, use trade_setups'), plus a when-not note that invalid pairs are rejected before payment.
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?
Beyond the annotations, the description discloses that the service is free, that a human reads every report, and that nothing is automatically run or changed. This adds meaningful behavioral context for a submission tool and is consistent with readOnlyHint=false.
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 tightly written sentences. Purpose, scope, and key behavioral traits are front-loaded with no wasted text.
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 low-complexity feedback submission tool with full schema coverage, an output schema, and annotations, the description covers what the tool does and how it behaves. Nothing an agent needs in order 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%, so the schema already documents all four parameters. The description mentions structured reporting and the bug/feature/other categories but adds no syntax or format details beyond what the schema provides.
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 a specific verb ('Report') and resources ('a bug, a missing feature or anything else about this service'), and explicitly frames it as structured feedback. Sibling tools are unrelated market-analysis tools, so no sibling differentiation is needed.
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 clearly implies when to use the tool: for bugs, missing features, or other service-related feedback. It does not explicitly name when not to use it or list alternatives, but the context is unambiguous.
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 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer): 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 already declare readOnlyHint and openWorldHint, so the description's remaining job is the paid-invocation behavior, and it does disclose cost, accepted chains/tokens, and pre-payment validation. However, the payment enumeration is mixed into the same breath as the signal output, and it never states what a failed or unpaid call returns versus a successful one, so a critical behavioral detail is left implicit for a paid endpoint.
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 core purpose is buried behind a ~40-word parenthetical listing eight chains and three stablecoins, so the agent reads pricing before learning what the tool returns. The remainder is tight and the sibling routing sits at the end where it is useful, but the front-loading is inverted.
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 fully documented, yet the description still names the signal fields and the 'news' flag that can invalidate the signal. With two parameters, a 100%-covered schema, and clear sibling routing, nothing an agent needs to invoke this 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 coverage is 100%, so the schema already documents 'pair' examples (including xrpl: syntax) and the interval enum with its 1h default. The description only restates the timeframe range (1m to 1M) and adds no format or edge-case meaning beyond the schema, which is the baseline case.
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 ('the full Ichimoku Cloud signal for a crypto pair on any timeframe') and enumerates the returned fields: bullish/bearish/neutral, cloud position, tenkan/kijun cross, and span values. It also differentiates itself from siblings by declaring 'Ichimoku only' with explicit pointers to confluence_signal and price_levels.
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 exclusions and the alternatives explicitly: six indicators means confluence_signal, entry/stop/targets means price_levels. It also states prerequisites (an x402-capable MCP client) and that invalid pairs are rejected before payment, which tells the agent what happens when input is bad.
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 |
| exchange | No | Where the candles come from |
| interval | Yes | |
| timestamp | No | |
| candle_time | No | Opening time (UTC) of the latest daily candle; it is still forming, so price is the latest trade |
| 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 already declare readOnlyHint=true and openWorldHint=true, yet the description still adds real behavioral context: a 20 calls/hour rate limit, the four upstream exchanges, the top-200 coin universe, and the explicit absence of line values. It stops short of saying what happens when the rate limit is hit, but the added context is well 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?
Purpose is front-loaded ahead of the sibling routing, and every clause carries information. The exchange enumeration and the five-way routing list make it dense, but nothing is redundant with the schema or title.
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 explained, and annotations cover the safety profile. The description covers scope, rate limit, sources and alternatives. The only gap is a small stylistic one: the 'free' designation is stated but its practical consequence beyond the rate limit is left implicit.
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%, including xrpl: issuer formats, so the schema already carries the syntax burden. The description still adds meaning by scoping the pair universe to the top 200 coins across four venues, which tells the agent when a pair will resolve. Marginal but genuine value over the schema, so one notch above the high-coverage 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?
States a specific verb and resource — the daily Ichimoku Cloud trend for a crypto pair — and enumerates the exact outputs (bullish/bearish/neutral, cloud position, tenkan/kijun cross). It explicitly distinguishes itself from ichimoku_signal by timeframe and by not returning line values.
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 five sibling tools and the precise condition that selects each: other timeframes/line values → ichimoku_signal, six indicators → confluence_signal, support/resistance → price_levels, all coins at once → market_scan, ranked setups → trade_setups. Routing is explicit with no inference required.
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 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer): 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 only declare readOnly and openWorld; the description adds substantial context beyond that: a $0.10 x402 payment in specified tokens across nine chains, stablecoins excluded, the sort key (distance from cloud), and the breadth summary format. It doesn't cover rate limits or failure behavior on payment, which keeps it short of 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?
Dense and front-loaded, but the payment clause enumerating nine chains and three tokens occupies most of the opening sentence and slows the agent reaching the actual function. The core purpose, sort order and alternative follow efficiently.
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, yet the description still summarizes the per-coin payload and breadth string. Combined with the cost/payment requirements, sorting, exclusions and sibling routing, an agent has everything needed to decide and call 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 coverage is 100%, so the schema already documents both enum parameters. The description restates the signal filter as optional but says nothing about the interval parameter or its default, so no meaning is added 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?
States a specific verb and resource: returns the Ichimoku Cloud signal for 148 top-200 coins in one call, sorted strongest bullish to strongest bearish, with market breadth. It also names the sibling it is not (trade_setups) so an agent can route immediately.
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 scope: 'for the market's direction at a glance', with the alternative named — 'for coins with entry, stop and targets use trade_setups'. The optional signal filter is also flagged as optional.
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?
Adds substantial context beyond the readOnly and openWorld annotations: the possible candle sources including Binance.US, Kraken, Gate, MEXC and the XRP Ledger DEX, the dollar-quote substitution behavior, and a 60-calls-per-hour rate limit. It also clearly disclaims candle fetching and signal generation, which prevents a common misuse.
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 pricing context is front-loaded and the exclusion and rate limit are placed where an agent will see them. It is dense but every clause carries useful information; slightly more separation between the exchange list and the interval statement would improve scanability.
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 lookup tool with a full output schema and annotations, this is complete: it covers supported pair sources, quote substitution, excluded capabilities, the sibling alternative, and the rate limit. Nothing needed to call it correctly appears to be 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 the schema already documents accepted pair formats well. The description still adds meaning by explaining that another dollar quote such as USDT, USD or USDC can stand in for the requested quote, which is resolution behavior the schema does not state.
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: checks whether a crypto pair is supported, which exchange supplies its candles, and which intervals the paid tools accept. It explicitly separates itself from sibling ichimoku_trend and from the paid tools, so an agent can choose it without opening another 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?
Gives an explicit use condition ("before paying") and names the alternative for a different need ("for the daily trend use ichimoku_trend"). It also states what the tool does not do, fetches no candles and returns no signal, which narrows usage further.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pair_setupTrade setup for one pair: 1h, 4h and 1d ($0.10 via x402)ARead-onlyInspect
Paid ($0.10 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer): the trade setup for one crypto pair on three horizons at once: short term (1h candles), medium (4h) and long term (1d). Per horizon the six-indicator confluence signal (bias: long, short or none, with confidence) and, when the risk/reward to target 1 is at least 1.5, a plan (entry, stop, two take profit targets, risk/reward); otherwise the reason there is none. Plus alignment: how many horizons point the same way ("3 of 3 horizons short; a setup on 1 of 3"). Same as GET /setup/{pair}. Top-200 coins and XRPL DEX pairs. Not trade advice: in our backtest these setups did no better than random entries after fees. For the ranked list 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| pair | No | |
| accepts | No | Only on an unpaid call: the x402 payment options |
| horizons | No | short (1h), medium (4h) and long (1d): bias, setup direction and the plan |
| alignment | No | How many horizons point the same way, and on how many there is a setup |
| timestamp | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint and openWorldHint; the description adds the material behavior an agent cannot infer: a $0.10 x402 charge, the accepted chains and stablecoins, the coverage universe (top-200 coins plus XRPL DEX pairs), the conditional rule for when a plan is emitted (risk/reward to target 1 of at least 1.5), and an explicit efficacy disclaimer. That is well beyond the structured fields and directly affects whether and how the agent should call it.
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 price and core purpose are front-loaded and every clause carries information, but the parenthetical enumeration of eight chains plus two stablecoins makes the opening sentence heavy and slows the agent's scan. It is dense rather than padded, so a 4 rather than a lower score.
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 single-parameter paid read with an output schema, the description covers purpose, cost, coverage, the conditional structure of the response (bias, plan or reason, alignment), and a sibling alternative. Nothing an agent needs before calling it is missing, and return-value detail is appropriately delegated to the output schema.
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 the pair parameter, its examples and the xrpl: issuer syntax are already fully documented in the schema. The description only echoes the coverage universe ('Top-200 coins and XRPL DEX pairs') without adding new syntax or format guidance, 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 and resource: the trade setup for one crypto pair across three horizons (1h/4h/1d), with named outputs (six-indicator confluence bias plus conditional plan and alignment). It also maps itself to the underlying endpoint (GET /setup/{pair}) and explicitly distinguishes itself from the sibling trade_setups, which returns the ranked list across all coins.
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 single-pair scope is stated up front and the alternative is named explicitly: 'For the ranked list across all coins use trade_setups.' It also states the pre-condition that invalid pairs are rejected before payment, so the agent knows bad input costs nothing and how to avoid the paid path.
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 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer): 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 only say readOnly and openWorld; the description adds the things that actually change agent behavior: it is paid ($0.05 via x402) across a list of chains and stablecoins, invalid pairs are rejected before payment, and levels are derived from price history rather than being trade advice. That is real cost, failure-mode, and liability context beyond the structured fields.
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 core purpose is strong but is buried behind a long parenthetical enumerating nine payment chains and three stablecoins, which is bulk that does not help tool selection. The single mega-sentence mixes payment mechanics, output inventory, disclaimers, and routing, when the purpose and the trade_setups alternative deserve to lead.
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 two-parameter read tool with an output schema and annotations covering safety, this is nearly complete: cost, invocation constraints, output inventory, and error handling are all covered. The only shortfall is that related-signal siblings (confluence_signal, ichimoku_signal, pair_setup) are not positioned relative to 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% and the pair parameter already documents accepted formats down to XRPL issuer syntax, so the description only reinforces the single-pair constraint rather than adding new parameter meaning. It says nothing extra about the interval parameter or its default beyond what the schema provides.
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 resource (price levels for a crypto pair) and enumerates the concrete outputs: up to 3 supports/resistances, ATR, pivots, Fib retracements, Ichimoku levels, bias, and long/short plans. It also anchors to the underlying endpoint (GET /levels/{pair}) and explicitly distinguishes itself from trade_setups, so an agent can separate it from siblings 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?
States a clear scoping rule ("One pair") and routes the multi-coin/ranked-plan case to trade_setups, plus notes invalid pairs are rejected before payment, which affects whether an agent should call it speculatively. It does not differentiate from the other closely-named siblings such as pair_setup or confluence_signal, so the alternative mapping is only partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signal_alertSignal alert: Telegram or webhook, 7 days ($0.05 via x402)Inspect
Paid ($0.05 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer), once for 7 days: instead of calling ichimoku_signal again and again, an alert whenever the Ichimoku Cloud signal of a crypto pair turns bullish, bearish or neutral on the timeframe you pick (15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w; checked every 5 minutes). Delivery: "telegram": true gives a t.me link in the answer; your owner opens it once and presses Start, and every turn is then a Telegram message with the price, the plan in the new direction (entry, stop, two targets with risk/reward) and the nearest support and resistance; /levels in that chat shows the levels and targets at any time. And/or webhook_url (https): a POST signed with HMAC-SHA256 on every turn. "on" limits it to one direction (default any). Same as POST /watch. Keep the returned id and secret: status and cancel are free at GET/DELETE /watch/{id} with header X-Watch-Secret. Invalid input (pair, timeframe, webhook) is rejected before payment. Signals from price history, not trade advice.
| Name | Required | Description | Default |
|---|---|---|---|
| on | No | any (default): every turn; or only turns to this signal | |
| 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 | Timeframe of the signal to watch, default 1h | |
| telegram | No | true: alerts in Telegram (the answer has the link to open and press Start) | |
| webhook_url | No | https URL that gets a signed POST on every turn |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | The watch id, for GET/DELETE /watch/{id} |
| on | No | any, or the one signal that triggers an alert |
| pair | No | |
| secret | No | Shown once: header X-Watch-Secret for status and cancel, and the webhook signing key |
| accepts | No | Only on an unpaid call: the x402 payment options |
| current | No | The signal right now |
| webhook | No | Events, signature header and retries, when a webhook_url was given |
| interval | No | Timeframe of the watched signal |
| telegram | No | |
| expires_at | No |
trade_setupsTrade setups: every top-200 coin, ranked ($0.50 via x402)ARead-onlyInspect
Paid ($0.50 via x402 in USDC on Base, Solana, Monad, Polygon, Arbitrum, Avalanche, Algorand or Stellar, in RLUSD on the XRP Ledger, or in USD₮0 on X Layer): 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 readOnlyHint/openWorldHint: it discloses the paid access model ($0.50 via x402, with the full list of chains and payment tokens), the ranking formula, the down-weighting factors for volatility, nearby support/resistance and thin liquidity, and an honest backtest caveat. Minor gap: no mention of rate limits, retries or failure behavior when payment fails.
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?
Dense but purposeful, with no filler sentences. However, the long parenthetical enumerating eight chains and three stablecoins occupies the very front of the description, pushing the actual purpose into second position; a short purpose statement before the payment detail would improve front-loading.
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 5 optional params, full schema coverage, and an output schema that carries the return shape, the description supplies everything an agent needs: what it screens, how results are ranked, cost/payment mechanism, and a candid accuracy disclaimer.
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 the schema already documents top, min_rr, interval, direction and liquid_top. The description names the filters and gives one example ('e.g. 30' for liquid_top is in the schema) but adds no new meaning such as how min_rr interacts with the two take-profit targets, and interval is never mentioned. 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 and resource ('which crypto coins have a trade setup right now') plus scope ('for 148 top-200 coins' and the six indicators behind the signal). It explicitly separates itself from siblings: 'The screener across all coins; for one pair you already chose use confluence_signal and price_levels.'
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 explicit when-to-use and when-not-to-use guidance with named alternatives (confluence_signal, price_levels for an already-chosen pair), and even frames the tool's limits ('A screener, not a strategy'). The filter list (direction, min_rr, top, liquid_top) shows how to narrow usage without opening the schema.
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
signal_alert
2 tool updates
- Changed
ichimoku_trend2 fields changed- added
Output schema / properties / candle_timeAdded value: +{ + "description": "Opening time (UTC) of the latest daily candle; it is still forming, so price is the latest trade", + "type": "string" +} - added
Output schema / properties / exchangeAdded value: +{ + "description": "Where the candles come from", + "type": "string" +}
- Added
pair_setup
8 tool updates
- Changed
confluence_signal5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{} - changed
Output schema / properties / accepts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / indicators / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "checked_headlines": { + "type": "number" + }, + "headlines": { + "description": "Up to 3 recent headlines naming the coin, with url and published", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "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" + } +]
- Changed
feedback2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
ichimoku_signal4 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{} - changed
Output schema / properties / accepts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "checked_headlines": { + "type": "number" + }, + "headlines": { + "description": "Up to 3 recent headlines naming the coin, with url and published", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "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" + } +]
- Changed
ichimoku_trend2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
market_scan4 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{} - changed
Output schema / properties / accepts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / coins / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
pair_lookup2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
price_levels5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{} - changed
Output schema / properties / accepts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / resistances / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / supports / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
trade_setups4 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +{} - changed
Output schema / properties / accepts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / setups / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
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
Related MCP Connectors
Crypto/stock trade setups, signal bias, levels, regime, odds. Free track record. Pay per call, x402.
Signals, technicals, regime and news for 1,000+ US/TR symbols. Data only, not investment advice.
Bias-free crypto backtests (399 coins), signals, token scam checks. Free samples; pay via x402 USDC.
Live LinReg fan charts, 64-setup playbook, 11-section MTF TA. Remote MCP, no API key.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceGraded 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-
- AlicenseAqualityBmaintenanceKronos crypto signals + trade decisions + 819 automation prompts. x402 micropayments, USDC/Base.11359 npm1MIT
- AlicenseNot gradedqualityCmaintenanceLive crypto and gold institutional market structure analysis (FVGs, Equilibrium, ATR volatility sizing) and algorithmic code auditor for AI agents using Base Mainnet x402 micropayments.MIT
- AlicenseAqualityAmaintenanceInstitutional-grade zero-lookahead Technical Analysis scanner with quantitative confluence scoring & native Model Context Protocol (MCP) server for AI trading agents.6142 PyPI1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.