MCP Server

Trading Signals

io.github.roman-rr/trading-signals
Crypto & Web3 Finance & Investing Public & reachable MCP 2026-07-28

What this MCP does

Provides live and historical crypto trading signals, signal outcomes, performance statistics, and signal-level price and PnL details.

get_signal
Get Signal Detail
Fetch a single signal by ID with live price and PnL. Use to check verification status and outcome.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signalId'], 'properties': {'apiKey': {'type': 'string', 'description': 'Required. Get a free key at https://signals.x70.ai/mcp-signup.'}, 'signalId': {'type': 'string', 'description': 'Signal ID to look up'}}, 'additionalProperties': False}
get_signal_history
Get Signal History
Fetch historical (verified) signals with pagination. Returns resolved signals (success/failed) ordered newest-first.
Read only Open world
Input schema
{'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': 'Required. Get a free key 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}
get_signals
Get Live Trading Signals
Fetch live (active) crypto trading signals with entry, SL, TP, leverage, confidence. Optional research-backed filters let you build your own strategy: direction, coin include/exclude, SL distance %, R/R, confidence band, Open Interest range, 24h volume, tags, primary anomaly trigger, day-of-week skips, BTC 24h regime gate. Sorted by live PnL (most profitable first). WORKS WITHOUT AN API KEY: omit apiKey for a free 3-signal preview (coin + direction + confidence); a free account returns up to 100 signals with full reasoning and verified outcomes.
Read only Open world
Input schema
{'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'}, '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 = â\x89¥3% to SL). SLâ\x89¥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}
get_stats
Get Trading Performance Stats
Get aggregated performance: hit rate, average ROI per signal, average leverage, breakdown by direction. No API key required.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'number', 'default': 30, 'maximum': 90, 'minimum': 1, 'description': 'Lookback period in days'}, 'apiKey': {'type': 'string', 'description': 'Optional for this tool â\x80\x94 aggregate stats are public. Get a free key at https://signals.x70.ai/mcp-signup.'}}, 'additionalProperties': False}
register
Register for Trading Signals API
DEPRECATED — no longer issues API keys. Returns a link to https://signals.x70.ai/mcp-signup, where keys are created from a free account. Every other tool works without a key (3-signal preview), so there is no need to call this or to collect anyone's personal details for it.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': 'Ignored â\x80\x94 kept for backward compatibility'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Ignored â\x80\x94 kept for backward compatibility'}, 'purpose': {'type': 'string', 'description': 'Ignored â\x80\x94 kept for backward compatibility'}, 'githubUrl': {'type': 'string', 'format': 'uri', 'description': 'Ignored â\x80\x94 kept for backward compatibility'}}, 'additionalProperties': False}
Changed
get_signal_history
Sept. 29, 2026, 2:56 a.m.
Changed
get_stats
Sept. 29, 2026, 2:56 a.m.
Changed
get_signal
Sept. 29, 2026, 2:56 a.m.
Changed
get_signals
Sept. 29, 2026, 2:56 a.m.
Changed
register
Sept. 29, 2026, 2:56 a.m.
Added
get_signal_history
Sept. 17, 2026, 12:49 p.m.
Added
get_stats
Sept. 17, 2026, 12:49 p.m.
Added
get_signal
Sept. 17, 2026, 12:49 p.m.
Added
get_signals
Sept. 17, 2026, 12:49 p.m.
Added
register
Sept. 17, 2026, 12:49 p.m.