Skip to content

MyronKoch/ccxt-mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ CCXT MCP Server

TAPS v1.0 Exchanges License

Universal cryptocurrency exchange access for Claude - Trade on 100+ exchanges through a single MCP interface!

🌟 What This Does

graph LR
    A[Claude Desktop] --> B[CCXT MCP Server]
    B --> C[CCXT Library]
    C --> D[Binance]
    C --> E[Coinbase]
    C --> F[Kraken]
    C --> G[Bybit]
    C --> H[...100+ more]

    style A fill:#f9f,stroke:#333,stroke-width:2px,color:#000
    style B fill:#bbf,stroke:#333,stroke-width:4px,color:#000
    style C fill:#bfb,stroke:#333,stroke-width:2px,color:#000
    style D fill:#fff,stroke:#333,stroke-width:1px,color:#000
    style E fill:#fff,stroke:#333,stroke-width:1px,color:#000
    style F fill:#fff,stroke:#333,stroke-width:1px,color:#000
    style G fill:#fff,stroke:#333,stroke-width:1px,color:#000
    style H fill:#fff,stroke:#333,stroke-width:1px,color:#000
Loading

This MCP server gives Claude the ability to:

  • πŸ“ˆ Get real-time prices from any crypto exchange
  • πŸ“Š Analyze order books and market depth
  • πŸ”„ Compare prices across exchanges instantly
  • πŸ’° Detect arbitrage opportunities automatically
  • πŸ“‰ Fetch historical data for technical analysis
  • πŸ“ Calculate technical indicators (RSI, MACD, Bollinger Bands, ATR, Stochastic, Ichimoku)

⚑ Quick Start (2 minutes)

1️⃣ Install

# Clone the repository
git clone https://github.com/MyronKoch/ccxt-mcp-server.git
cd ccxt-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

2️⃣ Add to Claude Desktop

{
  "mcpServers": {
    "ccxt-mcp-server": {
      "command": "node",
      "args": ["/path/to/ccxt-mcp-server/dist/index.js"]
    }
  }
}

3️⃣ Restart Claude & Trade!

Ask Claude: "What's the price of Bitcoin on Binance?"

πŸ› οΈ Available Tools

πŸ“‹ Exchange Management

Tool Description Example
exchange_list List all 106 supported exchanges "Show me all available exchanges"
exchange_init Connect to specific exchange "Initialize Binance connection"
exchange_status Check if exchange is working "Is Coinbase operational?"
exchange_markets Get trading pairs "What pairs does Kraken support?"

πŸ“Š Market Data (No Auth Required!)

Tool Description Example
market_ticker Current prices "BTC price on Binance"
market_orderbook Bids & asks "Show ETH order book"
market_trades Recent trades "Latest SOL trades"
market_ohlcv Candlestick data "1-hour BTC chart data"

πŸ’Ό Account & Analytics

Tool Description Example
account_balance Check balances (requires env API keys) "My Binance balance"
analytics_compare_prices Multi-exchange comparison "Compare ETH on all exchanges"

πŸ“ Technical Analysis

Tool Description Example
indicators_calculate Calculate technical indicators "Calculate RSI and MACD for BTC/USDT on Binance"

Supported Indicators:

  • RSI - Relative Strength Index (overbought/oversold detection)
  • MACD - Moving Average Convergence Divergence (trend detection)
  • Bollinger Bands - Volatility and price range analysis
  • ATR - Average True Range (volatility measurement)
  • Stochastic - Momentum oscillator
  • Ichimoku Cloud - Comprehensive trend analysis

🎯 Killer Features

πŸ” Arbitrage Detection

graph TD
    A[Check BTC Price] --> B{Price Difference?}
    B -->|Yes| C[Buy on Exchange A]
    C --> D[Sell on Exchange B]
    D --> E[πŸ’° Profit!]
    B -->|No| F[Keep Monitoring]

    style A fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style B fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style C fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style D fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style E fill:#0f0,stroke:#333,stroke-width:2px,color:#000
    style F fill:#fff,stroke:#333,stroke-width:2px,color:#000
Loading

The server automatically detects when the same asset has different prices across exchanges!

⚑ Real Examples

You: "Compare Bitcoin prices across major exchanges"

Claude: Analyzing BTC/USDT across exchanges...

πŸ“Š Price Comparison:
β€’ Binance:   $67,234.50 
β€’ Coinbase:  $67,256.00 (+$21.50)
β€’ Kraken:    $67,245.75 (+$11.25)
β€’ Bybit:     $67,232.00 (-$2.50)

🎯 Arbitrage Opportunity Detected!
Buy on Bybit at $67,232.00
Sell on Coinbase at $67,256.00
Potential profit: $24.00 per BTC (0.036%)
You: "Calculate RSI and MACD for BTC/USDT on Binance"

Claude: Analyzing Bitcoin technical indicators...

πŸ“ Technical Analysis (1-hour timeframe):

RSI (14): 58.32
β€’ Signal: Neutral
β€’ Not overbought (>70) or oversold (<30)

MACD:
β€’ MACD Line: 234.50
β€’ Signal Line: 198.25
β€’ Histogram: 36.25 (Bullish)
β€’ Trend: Bullish momentum increasing

Bollinger Bands:
β€’ Upper: $67,850
β€’ Middle: $67,234
β€’ Lower: $66,618
β€’ Current price within normal range

πŸ’‘ Interpretation: Moderate bullish momentum with RSI in neutral zone.
MACD showing positive divergence. Consider entry on pullback to middle band.

πŸ—οΈ Architecture

System Design

flowchart TB
    subgraph MCP[MCP Layer]
        A[Tool Definitions]
        B[Request Handler]
    end

    subgraph Core[Core System]
        C[Exchange Manager<br/>Singleton Pattern]
        D[Response Formatter<br/>TAPS Compliance]
        E[Validation Utils<br/>Input Safety]
    end

    subgraph CCXT[CCXT Integration]
        F[106 Exchange APIs]
        G[Normalized Data]
        H[Rate Limiting]
    end

    MCP --> Core
    Core --> CCXT

    style A fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style B fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style C fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    style D fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    style E fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    style F fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style G fill:#fff,stroke:#333,stroke-width:2px,color:#000
    style H fill:#fff,stroke:#333,stroke-width:2px,color:#000
Loading

TAPS v1.0 Response Format

{
  "success": true,
  "data": {
    "symbol": "BTC/USDT",
    "bid": 67234.50,
    "ask": 67235.00,
    "last": 67234.75
  },
  "metadata": {
    "exchange": "binance",
    "timestamp": 1738123456789,
    "rateLimit": { "remaining": 99, "reset": 1738123460 },
    "version": "TAPS-1.0.0"
  }
}

πŸ”’ Security

  • πŸ” Environment-only credentials - API keys MUST be set via environment variables (never in request parameters)
  • ⏱️ Adaptive rate limiting - Automatic exponential backoff prevents exchange bans
  • πŸ”„ Automatic retries - Smart retry logic (up to 5 attempts) with backoff
  • πŸ›‘οΈ Input validation - Prevents costly mistakes and malformed requests
  • 🧹 Credential sanitization - No leaks in logs or responses
  • βœ… Testnet support - Safe development environment

Setting Up API Credentials

For account operations, set credentials as environment variables:

# .env file
BINANCE_API_KEY=your_api_key_here
BINANCE_SECRET=your_secret_here

# For other exchanges, use: EXCHANGEID_API_KEY and EXCHANGEID_SECRET
COINBASE_API_KEY=...
COINBASE_SECRET=...

Security Note: Credentials are NEVER accepted as tool parameters to prevent leakage in MCP logs.

πŸ“ˆ Supported Exchanges (106 Total!)

🌟 Tier 1 - Fully Tested
  • Binance (+ Testnet)
  • Coinbase (+ Sandbox)
  • Kraken
  • Bybit (+ Testnet)
  • OKX
πŸš€ Tier 2 - Major Exchanges
  • Bitfinex
  • Huobi
  • Gate.io
  • KuCoin
  • Bitget
  • Bitstamp
  • Gemini
  • Crypto.com
  • MEXC
  • And 90+ more...

πŸ§‘β€πŸ’» Development

# Install dependencies
npm install

# Development mode with hot reload
npm run dev

# Build for production
npm run build

# Run tests
npm test

Project Structure

ccxt-mcp-server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts                    # Main MCP server
β”‚   β”œβ”€β”€ exchange-manager.ts         # Exchange instance management with rate limiting
β”‚   β”œβ”€β”€ response-formatter.ts       # TAPS response formatting
β”‚   β”œβ”€β”€ arbitrage/
β”‚   β”‚   └── advanced-scanner.ts     # Real-time arbitrage detection
β”‚   β”œβ”€β”€ cache/
β”‚   β”‚   └── lru-cache-manager.ts    # LRU caching for market data
β”‚   β”œβ”€β”€ indicators/
β”‚   β”‚   └── technical-analysis.ts   # RSI, MACD, Bollinger, ATR, Stochastic, Ichimoku
β”‚   β”œβ”€β”€ rate-limiting/
β”‚   β”‚   └── adaptive-limiter.ts     # Exponential backoff retry logic
β”‚   β”œβ”€β”€ risk/
β”‚   β”‚   └── risk-manager.ts         # Kelly Criterion, position sizing
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── validation.ts           # Input validation and sanitization
β”‚   └── types/
β”‚       └── taps.ts                 # TAPS v1.0 type definitions
β”œβ”€β”€ dist/                           # Compiled JavaScript
β”œβ”€β”€ tests/                          # Comprehensive test suite
└── docs/
    β”œβ”€β”€ standards/
    β”‚   └── TAPS-v1.0-STANDARD.md  # Protocol specification
    β”œβ”€β”€ architecture/
    β”‚   └── ARCHITECTURE.md         # System design
    └── guides/
        └── TESTING-GUIDE.md        # Testing documentation

πŸ› Troubleshooting

Issue Solution
"Exchange not found" Check exact exchange ID (lowercase, e.g., binance not Binance)
"Rate limit exceeded" Server auto-retries with exponential backoff (up to 5 attempts)
"Invalid symbol" Use format: BTC/USDT not BTCUSDT
"No balance data" Set EXCHANGEID_API_KEY and EXCHANGEID_SECRET environment variables
"Invalid credentials" Credentials must be in .env file, NOT in tool parameters
Build errors Run npm install to ensure all dependencies are installed
Type errors Run npm run build - TypeScript is configured with Node.js types

πŸ“Š Performance

  • ⚑ Response time: < 2 seconds (< 1ms for cache hits)
  • πŸ”„ Concurrent requests: Unlimited with automatic rate limiting
  • πŸ’Ύ Memory usage: < 100MB
  • 🌐 Exchange connections: Cached & reused
  • πŸ“¦ Smart caching: 100% coverage on market data endpoints
    • Tickers: 10s TTL
    • Order books: 5s TTL
    • Trades: 10s TTL
    • OHLCV: 60s TTL
    • Markets: 1hr TTL
  • πŸ” Auto-retry: Exponential backoff on errors (1s β†’ 2s β†’ 4s β†’ 8s β†’ 16s)

🀝 Contributing

This is a TAPS v1.0 reference implementation. PRs welcome!

  1. Fork the repository
  2. Create your feature branch
  3. Follow TAPS v1.0 standards
  4. Submit a pull request

πŸ“œ License

MIT - Use freely in commercial projects!

πŸ™ Credits

  • CCXT - The amazing library that makes this possible
  • MCP - Anthropic's Model Context Protocol
  • TAPS v1.0 - Trading API Protocol Standard (created for this project)

Built with ❀️ by Myron Koch
First universal crypto exchange MCP server ever created!

CCXT β€’ TAPS v1.0 β€’ MCP

πŸ“š Documentation

About

MCP server providing unified access to 106+ cryptocurrency exchanges via CCXT

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors