AI Trading Signals
Server Details
Live AI-generated crypto trading signals for agents. Returns coin, direction and confidence with no API key at all; a free account adds full reasoning and verified outcomes, and Pro unlocks entry, stop-loss, take-profit and leverage plus 30-day history.
- Status
- Healthy
- Uptime
- 99.4% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
get_signal (single by ID), get_signals (live list), get_signal_history (resolved historical), and get_stats (aggregates) each target a clearly distinct resource and use case. The singular/plural pair is immediately clarified by 'by ID' vs 'live signals', and the deprecated register is explicitly non-functional.
Four tools follow a consistent get_<noun> pattern (get_signal, get_signals, get_signal_history, get_stats). register is a different verb but represents an action, not a retrieval, so it fits the verb_noun convention without confusion.
Five tools is well-scoped for a read-only trading signals API: live signals, single signal, history, stats, and a signup redirect. No tool feels redundant, and the deprecated register does not inflate the count.
The surface covers the core lifecycle (live signals, single signal detail, historical resolution, aggregate performance) and works without an API key. Minor gap: no explicit endpoint for retrieving a specific resolved/historical signal by ID, though get_signal may cover it.
Available Tools
5 toolsget_signalGet Signal DetailARead-onlyInspect
Get one signal by its ID — live or already resolved — with its reasoning, live price, PnL and verification outcome (status pending, success or failed; whether take-profit or stop-loss was hit). Use it to follow up a signal from get_signals or get_signal_history, or to see how a past signal ended. Needs an API key (free or Pro); on the free plan entry, stop-loss, take-profit and leverage are null. Returns { success, signal, plan }, or { error: 'Signal not found' } for an unknown ID.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | API key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup. | |
| signalId | Yes | The signal ID (the id field returned by get_signals or get_signal_history). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description still adds real context: API-key requirement, the free-plan behavior where entry/stop-loss/take-profit/leverage come back null, and the not-found error path. It stops short of noting rate limits or pagination, but for a single-record read those are largely irrelevant.
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 core action, then routes the agent to siblings, then states auth and plan caveats, then return shapes. Every sentence carries a distinct load and nothing is redundant with the schema.
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?
There is no output schema, so the description's explicit return contract ({ success, signal, plan } and the not-found error) is necessary and present. With annotations covering the safety profile and the schema covering params, an agent has everything needed to call and interpret 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 description coverage is 100% and both parameters (apiKey, signalId) are already documented in the schema, including the signup URL. The description adds little parameter-level detail beyond restating the ID lookup, 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 ('Get one signal by its ID') and immediately scopes it to 'live or already resolved', which distinguishes it from get_signals (list) and get_signal_history. The enumerated contents (reasoning, live price, PnL, verification outcome) tell an agent exactly what a call yields.
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 trigger ('use it to follow up a signal from get_signals or get_signal_history') and the second scenario ('see how a past signal ended'). The alternatives are named rather than left to inference, so selection between the three sibling read tools is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signal_historyGet Signal HistoryARead-onlyInspect
List signals that have already resolved (success or failed), newest first, each with its verification outcome. Use it to review past performance signal by signal; for open signals use get_signals, for one signal by ID get_signal, for totals get_stats. Needs an API key. History depth: last 24 hours on the free plan; on Pro the days argument (up to 90). Entry, stop-loss, take-profit and leverage are null on free. Paginate by passing the last signal ID as cursor. Returns { signals[], nextCursor, hasMore, historyDepthDays, plan }.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Filter by coin symbol (e.g. BTC, ETH). Case-insensitive. | |
| days | No | Lookback window in days | |
| limit | No | Max signals per page (default 10, max 100) | |
| apiKey | No | API key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup. | |
| cursor | No | Pagination cursor (signal ID). Pass the last signal ID from previous page to get next page. | |
| status | No | Filter by verification outcome | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, non-destructive). The description adds substantive context beyond them: API key requirement, plan-dependent history depth (24h free vs. days up to 90 on Pro), fields nulled on free, and cursor-based pagination. It does not disclose rate limits or ordering edge cases, so it falls 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?
Front-loaded with the purpose, followed by routing alternatives, then prerequisites and pagination. Every sentence carries distinct information; no 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?
Covers purpose, alternatives, auth, plan constraints, nulled fields, pagination mechanics, and the response shape (signals[], nextCursor, hasMore, historyDepthDays, plan) — notable because no output schema exists. 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 baseline is 3. The description earns extra by explaining plan-dependent semantics for 'days' and the exact cursor convention (pass the last signal ID from the previous page), which the schema states more tersely.
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 ('List signals that have already resolved... newest first, each with its verification outcome'), and explicitly distinguishes itself from three siblings (get_signals, get_signal, get_stats). An agent can pick the correct tool without opening any 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?
Names the routing condition for each alternative: open signals -> get_signals, single signal by ID -> get_signal, totals -> get_stats. The 'already resolved' scope is stated up front, making the when-to-use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signalsGet Live Trading SignalsRead-onlyInspect
List live crypto trading signals that are still open — coin, direction, confidence and the reasoning behind each. Use it to find current trade ideas; use get_signal for one signal by ID (live or resolved), get_signal_history for signals that already closed, and get_stats for aggregate hit rate. No key: a 3-signal preview. Free key: up to 100 signals, with entry, stop-loss, take-profit and leverage null (the response's announcement.upgradeUrl explains Pro). Pro: all levels. Returns { signals[], returned, totalMatching, filtersApplied, plan }, sorted by live PnL (best first). Optional filters narrow the list: direction, coins, confidence band, risk/reward, stop distance, open interest, 24h volume, tags, the anomaly that triggered it, days/hours to skip, a BTC 24h-return gate. Rate limits: 30 calls/hour per IP without a key, 300/hour on a free key.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Single coin symbol (e.g. BTC). Case-insensitive. Convenience alias for coinInclude=<coin>. | |
| days | No | Lookback window in days (1–30, default 7). Without a key or on the free plan only the last 24 hours are searched. | |
| limit | No | Max signals to return (default 10, max 100) | |
| apiKey | No | Optional. Your Signals API key. Omit it for a 3-signal anonymous preview; get a free key at https://signals.x70.ai/mcp-signup for full metadata. | |
| skipDOW | No | Comma-separated day names to skip (e.g. "Saturday,Sunday"). Mondays toxic, weekends weak. | |
| coinOiMax | No | Maximum open interest in USD. R13 uses $500k-$10M. | |
| coinOiMin | No | Minimum open interest in USD (e.g. 500000 for $500k). OI <$500k coins historically toxic. | |
| direction | No | Filter by signal direction. "bullish" = long. Default = any. | |
| coinVolMin | No | Minimum 24h notional volume in USD. | |
| coinExclude | No | Comma-separated coin blocklist. Hyper-blacklist used by Lean v2-R: "kPEPE,ADA,HYPER,LDO,LINEA,2Z". | |
| coinInclude | No | Comma-separated coin allowlist (e.g. "BTC,ETH,SOL"). | |
| skipHourUtc | No | Comma-separated hours UTC to skip (0..23). EU/US overlap 9-13 weakest. | |
| tagsInclude | No | Comma-separated tags (any-of match). | |
| btcRet24hMax | No | Skip if BTC 24h return % > this (e.g. 1.5). H1 regime gate: BTC rally rotates flow away from alts. | |
| btcRet24hMin | No | Skip if BTC 24h return % < this. | |
| slDistPctMax | No | Maximum stop-loss distance in %. | |
| slDistPctMin | No | Minimum stop-loss distance in % (e.g. 3 = ≥3% to SL). SL≥3 drops the toxic [2,3) bucket. | |
| confidenceMax | No | Maximum confidence (0..1). Best band 0.62-0.76. | |
| confidenceMin | No | Minimum confidence (0..1). Counter-intuitive: >0.76 historically underperforms. | |
| primaryTrigger | No | Sentinel anomaly trigger name (e.g. "vpin_toxicity" for the S9 Vpin Sniper preset). | |
| riskRewardRatioMax | No | Maximum risk/reward ratio. Champion v1 uses RR<1.5. | |
| riskRewardRatioMin | No | Minimum risk/reward ratio. |
get_statsGet Trading Performance StatsARead-onlyInspect
Aggregate performance of signals created in the last N days (default 30) that have since resolved: hit rate, verified count, average leverage and a breakdown by direction; with an API key also average ROI per signal and cumulative ROI. Use it to judge recent reliability before acting — it returns no individual signals (use get_signals or get_signal_history for those). Public: works without a key. Past results don't predict future results.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days (1–90, default 30), counted back from now by signal creation time. | |
| apiKey | No | Optional for this tool — aggregate stats are public. Get a free key at https://signals.x70.ai/mcp-signup. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious context: the tool works without a key, an API key unlocks extra ROI metrics, and it returns aggregates rather than signals. It does not disclose pagination or latency, but for an aggregate read tool in a public API this is solid.
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 the core purpose, and every clause carries information (scope, metrics, key behavior, sibling routing, disclaimer). The opening sentence is long and dense with many sub-clauses, which slightly hurts scannability but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by enumerating the returned metrics and clarifying that individual signals are not returned. Combined with the schema's default/range for days, an agent has everything needed to call and interpret the result.
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 baseline is 3, but the description adds meaning beyond the schema by explaining what the apiKey parameter actually unlocks (average ROI per signal and cumulative ROI) rather than just restating that it is optional.
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 precise verb+resource (aggregate performance of resolved signals) and enumerates the metrics returned (hit rate, verified count, avg leverage, direction breakdown, ROI). It also explicitly distinguishes itself from siblings by noting it returns no individual signals.
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 case ('judge recent reliability before acting') and routes the agent to alternatives for the excluded behavior: 'use get_signals or get_signal_history for those'. When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registerRegister for Trading Signals APIAInspect
Deprecated: returns a sign-up link instead of creating an API key, ignores its arguments and stores nothing. Don't call it to get access — every other tool works without a key (get_signals returns a 3-signal preview, get_stats is public). Users create keys at https://signals.x70.ai/mcp-signup and set them as the X-Api-Key header. Kept only so older clients don't break.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Ignored — kept for backward compatibility | |
| No | Ignored — kept for backward compatibility | ||
| purpose | No | Ignored — kept for backward compatibility | |
| githubUrl | No | Ignored — kept for backward compatibility |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: the tool is a no-op that ignores arguments, stores nothing, and only returns a sign-up link, and no authentication is required anywhere. It also discloses the real key-acquisition workflow and header name, which the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) cannot convey. The readOnlyHint=false flag nominally implies side effects while the description says nothing is stored, but readOnlyHint=false is the non-assertive default and the description correctly warns the agent away, so this is informative rather than misleading.
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 the single most decision-relevant word ('Deprecated') and then packs deprecation reason, actual behavior, routing to alternatives, and the correct auth path into four tight sentences. Nothing is redundant with the annotations, and no sentence could be dropped without losing a decision input.
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 zero-required-parameter, no-output-schema tool, the description covers everything an agent needs: current behavior, absence of side effects, whether a key is needed, where to get one, and which siblings to use instead. It even explains the return value (a sign-up link) in the absence of an 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 coverage is 100% and every property already says 'Ignored — kept for backward compatibility'. The description adds tool-level closure by stating that the tool 'ignores its arguments', so an agent knows no argument combination changes the outcome and none need be constructed; that is meaningful beyond the per-field notes, though no format or syntax detail is added.
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 exactly what the tool is ('Deprecated: returns a sign-up link instead of creating an API key, ignores its arguments and stores nothing'), which is a precise verb+resource+outcome statement. It also distinguishes itself from siblings by naming get_signals and get_stats as the tools that actually work without a key.
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 when-not-to-use ('Don't call it to get access') plus the correct alternative path (create keys at the signup URL and send them via the X-Api-Key header). It even explains why it still exists ('Kept only so older clients don't break'), so the agent knows the call is only warranted for legacy compatibility.
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.
4 tool updates
- Changed
get_signal2 fields changed- changed
Input schema / properties / apiKey / descriptionPrevious value: -"Required. Get a free key at https://signals.x70.ai/mcp-signup."New value: +"API key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup." - changed
Input schema / properties / signalId / descriptionPrevious value: -"Signal ID to look up"New value: +"The signal ID (the id field returned by get_signals or get_signal_history)."
- Changed
get_signal_history1 field changed- changed
Input schema / properties / apiKey / descriptionPrevious value: -"Required. Get a free key at https://signals.x70.ai/mcp-signup."New value: +"API key — omit if your client was installed with it (X-Api-Key header or ?apiKey=). Required for this tool; get one free at https://signals.x70.ai/mcp-signup."
- Changed
get_signals1 field changed- changed
Input schema / properties / days / descriptionPrevious value: -"Lookback window in days"New value: +"Lookback window in days (1–30, default 7). Without a key or on the free plan only the last 24 hours are searched."
- Changed
get_stats1 field changed- changed
Input schema / properties / days / descriptionPrevious value: -"Lookback period in days"New value: +"Lookback window in days (1–90, default 30), counted back from now by signal creation time."
1 tool update
- Changed
register6 fields changed- changed
Input schema / properties / email / descriptionPrevious value: -"Email address"New value: +"Ignored — kept for backward compatibility" - changed
Input schema / properties / githubUrl / descriptionPrevious value: -"GitHub profile URL (https://github.com/...)"New value: +"Ignored — kept for backward compatibility" - changed
Input schema / properties / name / descriptionPrevious value: -"Your full name"New value: +"Ignored — kept for backward compatibility" - changed
Input schema / properties / purpose / descriptionPrevious value: -"What you are building (min 10 chars)"New value: +"Ignored — kept for backward compatibility" - removed
Input schema / properties / purpose / minLengthRemoved value: -10 - removed
Input schema / requiredRemoved value: -[ - "name", - "email", - "githubUrl", - "purpose" -]
5 tool updates
- First observed
get_signal - First observed
get_signal_history - First observed
get_signals - First observed
get_stats - First observed
register
Publisher details
- Operator
- Signals (signals.x70.ai), operated by an individual based in Thailand · Publisher source
- Operator website
- https://signals.x70.ai · Publisher source
- Vendor relationship
- First-party
- Documentation
- https://signals.x70.ai/mcp-docs · Publisher source
- Trust center
- Not available
- Restrictions
- https://signals.x70.ai/pricing
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1624 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs1114 npmMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.