Live AI crypto trading signals for agents. Try 3 signals without a key; sign in from your agent.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
The signal ID (the id field returned by get_signals or get_signal_history).
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.
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.
| Argument | Type | Description |
|---|---|---|
| apiKey | string | 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* | string | The signal ID (the id field returned by get_signals or get_signal_history). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signalId"
],
"properties": {
"apiKey": {
"type": "string",
"description": "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": {
"type": "string",
"description": "The signal ID (the id field returned by get_signals or get_signal_history)."
}
},
"additionalProperties": false
}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 }.
| Argument | Type | Description |
|---|---|---|
| coin | string | Filter by coin symbol (e.g. BTC, ETH). Case-insensitive. |
| days | number | Lookback window in days |
| limit | number | Max signals per page (default 10, max 100) |
| apiKey | string | 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 | string | Pagination cursor (signal ID). Pass the last signal ID from previous page to get next page. |
| status | string | Filter by verification outcome |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Filter by coin symbol (e.g. BTC, ETH). Case-insensitive."
},
"days": {
"type": "number",
"default": 30,
"maximum": 90,
"minimum": 1,
"description": "Lookback window in days"
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Max signals per page (default 10, max 100)"
},
"apiKey": {
"type": "string",
"description": "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": {
"type": "string",
"description": "Pagination cursor (signal ID). Pass the last signal ID from previous page to get next page."
},
"status": {
"enum": [
"success",
"failed",
"all"
],
"type": "string",
"default": "all",
"description": "Filter by verification outcome"
}
},
"additionalProperties": false
}List live crypto trading signals that are still open — coin, direction, confidence and the reasoning or market data 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. If a response contains an announcement, pass its message on to the user — it is about their account (trial ending, plan limits). 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.
| Argument | Type | Description |
|---|---|---|
| coin | string | Single coin symbol (e.g. BTC). Case-insensitive. Convenience alias for coinInclude=<coin>. |
| days | number | Lookback window in days (1–30, default 7). Without a key or on the free plan only the last 24 hours are searched. |
| limit | number | Max signals to return (default 10, max 100) |
| apiKey | string | 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 |
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. byMonth: hit rate this month, the two months before and all time — the figures shown on signals.x70.ai. 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.
| Argument | Type | Description |
|---|---|---|
| days | number | Lookback window in days (1–90, default 30), counted back from now by signal creation time. |
| apiKey | string | Optional for this tool — aggregate stats are public. Get a free key at https://signals.x70.ai/mcp-signup. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "number",
"default": 30,
"maximum": 90,
"minimum": 1,
"description": "Lookback window in days (1–90, default 30), counted back from now by signal creation time."
},
"apiKey": {
"type": "string",
"description": "Optional for this tool — aggregate stats are public. Get a free key at https://signals.x70.ai/mcp-signup."
}
},
"additionalProperties": false
}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). To get the full feed, users sign in from the agent at https://signals.x70.ai/mcp/connect (the client opens the browser), or create a key at https://signals.x70.ai/mcp-signup and set it as the X-Api-Key header. Kept only so older clients don't break.
| Argument | Type | Description |
|---|---|---|
| name | string | Ignored — kept for backward compatibility |
| string | Ignored — kept for backward compatibility | |
| purpose | string | Ignored — kept for backward compatibility |
| githubUrl | string | Ignored — kept for backward compatibility |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"type": "string",
"description": "Ignored — kept for backward compatibility"
},
"email": {
"type": "string",
"format": "email",
"description": "Ignored — kept for backward compatibility"
},
"purpose": {
"type": "string",
"description": "Ignored — kept for backward compatibility"
},
"githubUrl": {
"type": "string",
"format": "uri",
"description": "Ignored — kept for backward compatibility"
}
},
"additionalProperties": false
}| string |
| Comma-separated day names to skip (e.g. "Saturday,Sunday"). Mondays toxic, weekends weak. |
| coinOiMax | number | Maximum open interest in USD. R13 uses $500k-$10M. |
| coinOiMin | number | Minimum open interest in USD (e.g. 500000 for $500k). OI <$500k coins historically toxic. |
| direction | string | Filter by signal direction. "bullish" = long. Default = any. |
| coinVolMin | number | Minimum 24h notional volume in USD. |
| coinExclude | string | Comma-separated coin blocklist. Hyper-blacklist used by Lean v2-R: "kPEPE,ADA,HYPER,LDO,LINEA,2Z". |
| coinInclude | string | Comma-separated coin allowlist (e.g. "BTC,ETH,SOL"). |
| skipHourUtc | string | Comma-separated hours UTC to skip (0..23). EU/US overlap 9-13 weakest. |
| tagsInclude | string | Comma-separated tags (any-of match). |
| btcRet24hMax | number | Skip if BTC 24h return % > this (e.g. 1.5). H1 regime gate: BTC rally rotates flow away from alts. |
| btcRet24hMin | number | Skip if BTC 24h return % < this. |
| slDistPctMax | number | Maximum stop-loss distance in %. |
| slDistPctMin | number | Minimum stop-loss distance in % (e.g. 3 = ≥3% to SL). SL≥3 drops the toxic [2,3) bucket. |
| confidenceMax | number | Maximum confidence (0..1). Best band 0.62-0.76. |
| confidenceMin | number | Minimum confidence (0..1). Counter-intuitive: >0.76 historically underperforms. |
| primaryTrigger | string | Sentinel anomaly trigger name (e.g. "vpin_toxicity" for the S9 Vpin Sniper preset). |
| riskRewardRatioMax | number | Maximum risk/reward ratio. Champion v1 uses RR<1.5. |
| riskRewardRatioMin | number | Minimum risk/reward ratio. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Single coin symbol (e.g. BTC). Case-insensitive. Convenience alias for coinInclude=<coin>."
},
"days": {
"type": "number",
"default": 7,
"maximum": 30,
"minimum": 1,
"description": "Lookback window in days (1–30, default 7). Without a key or on the free plan only the last 24 hours are searched."
},
"limit": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Max signals to return (default 10, max 100)"
},
"apiKey": {
"type": "string",
"description": "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": {
"type": "string",
"description": "Comma-separated day names to skip (e.g. \"Saturday,Sunday\"). Mondays toxic, weekends weak."
},
"coinOiMax": {
"type": "number",
"description": "Maximum open interest in USD. R13 uses $500k-$10M."
},
"coinOiMin": {
"type": "number",
"description": "Minimum open interest in USD (e.g. 500000 for $500k). OI <$500k coins historically toxic."
},
"direction": {
"enum": [
"bullish",
"bearish",
"any"
],
"type": "string",
"description": "Filter by signal direction. \"bullish\" = long. Default = any."
},
"coinVolMin": {
"type": "number",
"description": "Minimum 24h notional volume in USD."
},
"coinExclude": {
"type": "string",
"description": "Comma-separated coin blocklist. Hyper-blacklist used by Lean v2-R: \"kPEPE,ADA,HYPER,LDO,LINEA,2Z\"."
},
"coinInclude": {
"type": "string",
"description": "Comma-separated coin allowlist (e.g. \"BTC,ETH,SOL\")."
},
"skipHourUtc": {
"type": "string",
"description": "Comma-separated hours UTC to skip (0..23). EU/US overlap 9-13 weakest."
},
"tagsInclude": {
"type": "string",
"description": "Comma-separated tags (any-of match)."
},
"btcRet24hMax": {
"type": "number",
"description": "Skip if BTC 24h return % > this (e.g. 1.5). H1 regime gate: BTC rally rotates flow away from alts."
},
"btcRet24hMin": {
"type": "number",
"description": "Skip if BTC 24h return % < this."
},
"slDistPctMax": {
"type": "number",
"description": "Maximum stop-loss distance in %."
},
"slDistPctMin": {
"type": "number",
"description": "Minimum stop-loss distance in % (e.g. 3 = ≥3% to SL). SL≥3 drops the toxic [2,3) bucket."
},
"confidenceMax": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Maximum confidence (0..1). Best band 0.62-0.76."
},
"confidenceMin": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Minimum confidence (0..1). Counter-intuitive: >0.76 historically underperforms."
},
"primaryTrigger": {
"type": "string",
"description": "Sentinel anomaly trigger name (e.g. \"vpin_toxicity\" for the S9 Vpin Sniper preset)."
},
"riskRewardRatioMax": {
"type": "number",
"description": "Maximum risk/reward ratio. Champion v1 uses RR<1.5."
},
"riskRewardRatioMin": {
"type": "number",
"description": "Minimum risk/reward ratio."
}
},
"additionalProperties": false
}