Skip to main content
Glama
frankfurtru

bybit-trading-mcp

by frankfurtru

Bybit V5 Trading Bot + Multi-Exchange MCP Server

πŸš€ Unified Trading Bot dengan dual interface: Telegram Bot + MCP Server untuk integration dengan AI tools seperti Claude.

🎯 Overview

Sistem ini menggabungkan:

  • MCP Server (Model Context Protocol) dengan FastAPI framework

  • Telegram Bot untuk mobile trading interface

  • Multi-Exchange Support untuk 6 major exchanges

  • Natural Language Processing untuk trading commands

  • Machine Learning integration untuk market analysis

Related MCP server: All-in-One Crypto Trading MCP Server

✨ Key Features

πŸ€– Dual Interface

  • Telegram Bot: Mobile-first interface dengan natural language support

  • MCP Server: HTTP API untuk integration dengan Claude/AI tools

  • Unified Backend: Same trading engine untuk kedua interface

🌐 Multi-Exchange Support

  • Bybit (Primary): Full V5 API - public + private endpoints

  • Binance: Public market data API

  • KuCoin: Public market data API

  • OKX: Public market data API

  • Huobi: Public market data API

  • MEXC: Public market data API

🧠 Intelligent Features

  • Natural Language: "What's Bitcoin price?" β†’ API calls

  • Price Comparison: Real-time comparison across exchanges

  • API Documentation: Contextual help dalam setiap response

  • Error Handling: User-friendly error messages

πŸš€ Quick Start

1. Requirements

  • Python 3.11+

  • Create .env file (see configuration below)

2. Installation

git clone https://github.com/yourusername/bybit-trading-bot.git
cd bybit-trading-bot
pip install -r requirements.txt

3. Configuration

Create .env file:

# Required
TELEGRAM_BOT_TOKEN=your_telegram_token

# Optional for private endpoints
BYBIT_API_KEY=your_bybit_key
BYBIT_API_SECRET=your_bybit_secret
BYBIT_PUBLIC_ONLY=true  # Set false for trading

# LLM Integration
ZAI_API_KEY=your_llm_api_key
ZAI_BASE_URL=https://api.novita.ai/openai  # Default Novita GPT-OSS

# Optional
BOT_AUTH_REQUIRED=false
LLM_ROUTER_MODEL=your_router_model

4. Run the System

Option 1: Telegram Bot Only

python -m src.main

Option 2: MCP Server Only

python tools/mcp_server.py
# Server: http://localhost:8001

Option 3: Both (Recommended)

# Terminal 1: Start MCP Server
python tools/mcp_server.py

# Terminal 2: Start Telegram Bot
python -m src.main

πŸ“± Telegram Bot Usage

Commands:

/start              # Initialize bot
/help               # Full command guide
/status             # System status

# Market Data
/price BTCUSDT bybit       # Get BTC price from Bybit
/price ETHUSDT binance     # Get ETH price from Binance  
/compare BTCUSDT           # Compare BTC across exchanges
/exchanges                 # List available exchanges

# Account (requires API key)
/balance                   # Wallet balance
/positions                 # Open positions

Natural Language:

"Harga Bitcoin sekarang?"     # β†’ Bybit BTC price
"Compare ETH prices"          # β†’ Multi-exchange comparison  
"Show me SOL on KuCoin"       # β†’ KuCoin SOL price
"What's my balance?"          # β†’ Wallet balance

πŸ”Œ MCP Server Integration

For Claude Desktop:

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "bybit-trading": {
      "command": "python",
      "args": ["/path/to/bybit-trading-bot/tools/mcp_server.py"],
      "env": {
        "BYBIT_PUBLIC_ONLY": "true"
      }
    }
  }
}

Direct HTTP Usage:

# Get Bybit ticker
curl "http://localhost:8001/bybit/tickers?category=spot&symbol=BTCUSDT"

# Compare prices across exchanges  
curl "http://localhost:8001/exchanges/compare-prices?symbol=BTCUSDT&exchanges=bybit,binance,kucoin"

# Get API documentation
curl "http://localhost:8001/api-docs?section=market"

πŸ—οΈ Project Structure

src/
β”œβ”€β”€ main.py                    # Unified Telegram bot dengan MCP integration
β”œβ”€β”€ bybit_client.py           # Bybit V5 API implementation
β”œβ”€β”€ mcp_telegram_client.py    # MCP client untuk Telegram integration
β”œβ”€β”€ llm.py                    # Natural language processing
β”œβ”€β”€ telegram_bot.py           # Telegram bot core
β”œβ”€β”€ exchange_client.py        # Multi-exchange API client
β”œβ”€β”€ strategy.py              # Trading strategies  
β”œβ”€β”€ model.py                 # Machine learning models
└── config.py                # Configuration management

tools/
└── mcp_server.py            # FastAPI-MCP server

scripts/
β”œβ”€β”€ debug_llm.py             # LLM debugging
β”œβ”€β”€ debug_tool_calls.py      # Tool call debugging
β”œβ”€β”€ debug_specific_query.py  # Query testing
└── simple_llm_test.py       # LLM sanity test

docs/
β”œβ”€β”€ MCP_TELEGRAM_INTEGRATION.md  # Detailed system documentation
β”œβ”€β”€ natural_language_implementation.md
└── multi_exchange.md

data/
└── auth.json                # Local runtime data

πŸ§ͺ Testing & Debugging

Test Individual Components:

# Test LLM integration
python scripts/debug_llm.py
python scripts/simple_llm_test.py

# Test tool calls
python scripts/debug_tool_calls.py

# Test specific queries
python scripts/debug_specific_query.py

# Test natural language
python test_true_natural.py

Test MCP Server:

# Start server
python tools/mcp_server.py

# Test endpoints
curl http://localhost:8001/
curl "http://localhost:8001/bybit/tickers?category=spot"
curl "http://localhost:8001/exchanges/compare-prices?symbol=BTCUSDT"

🎯 What's New in This Version

βœ… Complete MCP Rewrite: Migrated dari custom implementation ke FastAPI-MCP framework
βœ… Multi-Exchange Integration: 6 major exchanges dengan unified interface
βœ… Dual Interface: Telegram Bot + MCP Server dalam satu system
βœ… API Documentation Context: Contextual help dalam setiap response
βœ… Enhanced Error Handling: User-friendly error messages
βœ… Natural Language: Advanced LLM integration untuk command parsing

πŸ”’ Security & Best Practices

API Key Management:

  • Use environment variables untuk API keys

  • Never commit keys to repository

  • Use testnet untuk development

  • BYBIT_PUBLIC_ONLY=true untuk safe testing

Rate Limiting:

  • Built-in rate limiting untuk semua exchanges

  • Auto-retry dengan exponential backoff

  • Request queueing untuk high-volume usage

πŸ“„ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Telegram Bot  │◄──►│   MCP Client     │◄──►│   MCP Server   β”‚
β”‚                 β”‚    β”‚                  β”‚    β”‚                β”‚
β”‚ β€’ Commands      β”‚    β”‚ β€’ HTTP Client    β”‚    β”‚ β€’ FastAPI      β”‚
β”‚ β€’ Natural Lang  β”‚    β”‚ β€’ Response Formatβ”‚    β”‚ β€’ Multi-CEX    β”‚
β”‚ β€’ LLM Chat      β”‚    β”‚ β€’ Error Handling β”‚    β”‚ β€’ API Docs     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                        β”‚
                                                        β–Ό
                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                              β”‚         Exchange APIs              β”‚
                              β”‚ β€’ Bybit (V5)  β€’ Binance          β”‚
                              β”‚ β€’ KuCoin      β€’ OKX               β”‚
                              β”‚ β€’ Huobi       β€’ MEXC              β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🀝 Contributing

  1. Fork the repository

  2. Create feature branch

  3. Implement changes dengan proper tests

  4. Update documentation

  5. Submit pull request

πŸ“„ License

MIT License - see LICENSE file for details.

⚠️ Disclaimer

This software is for educational purposes. Trading cryptocurrencies involves substantial risk. Always do your own research and never invest more than you can afford to lose.


πŸš€ Happy Trading with Multi-Exchange MCP Integration!

  • To enable trading and other private endpoints, set BYBIT_PUBLIC_ONLY=false and provide valid API keys.

  • For faster small-talk replies, consider a lighter LLM_ROUTER_MODEL and smaller LLM_MAX_TOKENS (e.g., 512–2048).

Run MCP Server (optional)

  • Install deps: pip install -r requirements.txt

  • Start server: python -m tools.mcp_server

  • The server exposes two example tools: health_check and echo. Extend to call ZaiClient or Bybit.

Telegram Commands

  • /start and /help: Info bantuan.

  • /time: Server time Bybit (public, production).

  • /ticker <category> [symbol]: Ticker market V5, kategori spot|linear|inverse|option.

  • /balance [COIN]: Wallet balance V5 (private, default accountType=UNIFIED).

  • /signal <category> <symbol> <interval> <mode>: Prediksi XGBoost (scalping/swing) dari kline terkini.

  • /ask <pertanyaan>: Natural language router β†’ LLM memilih aksi (tickers, kline, orderbook, trades, balance, positions, orders, create/cancel order) dan bot mengeksekusi.

License Issues

docs: polish README + add examples

  • Added badges (License, Issues)

  • Added Quickstart and examples/get_price.py

  • Added CHANGELOG and CONTRIBUTING

Quickstart

python examples/get_price.py

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server connecting AI assistants to OKX exchange, enabling trading, market data, account management, and more via 150+ tools across 11 modules.
    423
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP-compatible AI clients to access live crypto market data and AI-driven quantitative analysis, with structured outputs and full observability.
    -
  • A
    license
    B
    quality
    B
    maintenance
    Provides 31 AI-powered crypto trading tools for Claude, Cursor, and any MCP client, enabling strategy creation, backtesting, bot deployment, copy trading, and portfolio management across multiple exchanges.
    34
    23 npm
    MIT