CCXT vs Trading Signals

A side-by-side look at the CCXT and Trading Signals MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

CCXT logoCCXTFinance & FintechOfficial CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets64GoodAuth: not declaredTrading Signals logoTrading SignalsFinance & Fintech · Remote HTTP/SSELive AI crypto trading signals for agents. No API key needed to try — 3 signals + hit rate.63GoodAuth: not declared

Verdict: choose CCXT for finance & fintech work; choose Trading Signals for finance & fintech over a hosted endpoint. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

CCXT logoChoose CCXT when

  • You need dedicated capabilities in the Finance & Fintech domain.
  • You want tools like list_exchanges, describe_exchange, describe_method.
Explore CCXT

Trading Signals logoChoose Trading Signals when

  • You need dedicated capabilities in the Finance & Fintech domain.
  • You prefer a remote HTTP/SSE transport.
  • You have the keys it needs: SIGNALS_API_KEY.
  • You want tools like register, get_signals, get_signal.
Explore Trading Signals

Feature & specification comparison

Rows where the two servers differ are marked.

SpecCCXT logoCCXTTrading Signals logoTrading Signals
CategoryFinance & FintechFinance & Fintech
Quality signal64/100 · Good63/100 · Good
Install commandNot confirmed yetConfirmed
Transport—Remote HTTP/SSE
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedSIGNALS_API_KEY
Verified ownerCommunity listingCommunity listing
GitHub stars44,480124
Directory activity 2 views 0 installs 0 upvotes 0 views 0 installs 0 upvotes
Tools325

Tools & capabilities

CCXT tools 32

  • list_exchangesList every exchange this server supports (built from ccxt.exchanges at runtime), with name, websocket and prediction-market availability. Filter by a name query or by support for a unified method.
  • describe_exchangeOne exchange's supported unified methods, market types, timeframes, required credential fields, sandbox availability and documentation URLs. Per-method detail lives in describe_method.
  • describe_methodSearch unified method names by keyword, or get one method's signature and parameter documentation. With "exchange" it adds that exchange's own docs (including supported params.* keys and links to the exchange API reference), per-market-type feature support, and searches its implicit (exchange-specific) endpoints too. Full ccxt manual: https://docs.ccxt.com/
  • search_marketsSearch and filter the markets of one exchange (by text, base, quote, settle currency, market type), paginated. Use this to resolve unified symbols — there is deliberately no list-all-markets tool. On prediction exchanges use search_events instead.
  • get_tickers24h price tickers for one or more unified symbols on an exchange (outcome handles on prediction exchanges).
  • get_orderbookCurrent order book (bids and asks) for one unified symbol.
  • get_ohlcvHistorical OHLCV candlestick data for a symbol and timeframe. Rows are [timestampMs, open, high, low, close, volume]. Page back with "since"; "params.until" bounds the end.
  • get_tradesRecent public trades for one unified symbol.
  • search_eventsSearch events on a prediction-market exchange (polymarket, kalshi, limitless, myriad, hyperliquid with prediction=true). A scoping filter is required: query, tags, or params.eventId/params.slug. Returns events with their markets and outcome handles — outcome handles are what you pass as the symbol to get_tickers/get_orderbook/create_order on prediction exchanges.
  • call_read_methodEscape hatch covering every unified read method not served by a dedicated tool (fetchFundingRate, fetchLedger, fetchOpenInterest, fetchLiquidations, fetchEvent, fetchSettlements, …). Only fetch*/load* methods are accepted — writes are structurally rejected. Get the signature first with describe_method. Docs: https://docs.ccxt.com/
  • call_implicit_getCall an exchange-specific implicit REST endpoint over HTTP GET, for data the unified API does not cover. Pass the implicit method name in the "method" argument (e.g. "publicGetTickerPrice"); these are exchange-specific — find them with describe_method {"query": ..., "exchange": ...} (its results list the name to pass here). The response is the raw exchange payload. Consult the exchange API reference (describe_exchange .urls.doc) and the ccxt manual: https://docs.ccxt.com/
  • get_safety_statusWhat this server is currently allowed to do: configured accounts (names only — never credentials), enabled capability tiers, caps, sandbox/live environments, journal location, unresolved order intents, and any configuration problems.
  • +20 more on the listing page

Trading Signals tools 5

  • registerDeprecated: 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.
  • get_signalsList 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.
  • get_signalGet 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.
  • get_statsAggregate 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.
  • get_signal_historyList 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 }.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

CCXT

No confirmed install command for CCXT yet — follow the setup steps linked from its listing page rather than a guessed package name.

Trading Signals

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "trading-signals": {
      "url": "https://signals.x70.ai/mcp"
    }
  }
}

Frequently asked questions

CCXT is categorized under Finance & Fintech and uses an install path we have not confirmed yet. Trading Signals belongs to Finance & Fintech and uses a remote HTTP/SSE transport. Pick CCXT for finance & fintech work and Trading Signals for finance & fintech.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client. CCXT has no confirmed install command yet — follow its own setup instructions.

CCXT has no declared pricing — check the project's own site. Trading Signals has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add ccxt and trading-signals as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, CCXT has a quality signal of 64/100 (Good) with 2 views, 0 installs and 44,480 GitHub stars. Trading Signals has 63/100 (Good) with 0 views, 0 installs and 124 GitHub stars.