Skip to main content
Glama
MCP Bitget Trading Server

MCP Bitget Trading Server

by gagarinyury

šŸš€ MCP Bitget Trading Server

MCP TypeScript Bitget API License

MCP (Model Context Protocol) server for Bitget cryptocurrency exchange. Enables AI assistants to interact with Bitget API for spot & futures trading. Features real-time market data, order management, account balances, leverage control, and position tracking. Supports demo trading with paper trading mode.

✨ Features

šŸ“Š Market Data

  • Real-time Prices - Get current market prices for any trading pair

  • Full Tickers - Complete ticker information with 24h statistics

  • Order Book - Market depth data with configurable depth levels

  • Historical Candles - OHLCV data for technical analysis

šŸ’° Account Management

  • Balance Information - Real-time account balances for all assets

  • Position Tracking - Monitor current futures positions

  • Margin Information - Futures margin account details

  • Order Management - View and manage open orders

šŸŽÆ Trading Operations

  • Place Orders - Execute market and limit orders

  • Cancel Orders - Cancel existing orders by ID

  • Leverage Control - Set leverage for futures positions (1-125x)

  • Demo Trading - Full support for paper trading mode

⚔ Technical Features

  • TypeScript - Fully typed implementation

  • v2 API Support - Latest Bitget API integration

  • Rate Limiting - Built-in protection against API limits

  • Error Handling - Comprehensive error management

  • Zod Validation - Input validation for all parameters

Related MCP server: bybit-mcp-server

šŸ› ļø Installation

Prerequisites

  • Node.js 18+

  • npm or yarn

  • Bitget API credentials (for live/demo trading)

Quick Start

  1. Clone the repository

git clone https://github.com/gagarinyury/MCP-bitget-trading.git
cd MCP-bitget-trading
  1. Install dependencies

npm install
  1. Configure environment

cp .env.example .env
# Edit .env with your Bitget API credentials
  1. Build the project

npm run build
  1. Start the server

npm start

šŸ”§ Configuration

Environment Variables

Create a .env file in the root directory:

# Bitget API Configuration
BITGET_API_KEY=your_api_key_here
BITGET_SECRET_KEY=your_secret_key_here
BITGET_PASSPHRASE=your_passphrase_here

# Environment settings
BITGET_SANDBOX=true  # Set to true for demo trading
BITGET_BASE_URL=https://api.bitget.com
BITGET_WS_URL=wss://wspap.bitget.com/v2/ws/public

# Optional settings
LOG_LEVEL=info
RATE_LIMIT_REQUESTS_PER_SECOND=10

Claude Desktop Integration

Add to your Claude Desktop MCP settings (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "bitget-trading": {
      "command": "node",
      "args": ["/path/to/MCP-bitget-trading/dist/server.js"],
      "env": {
        "BITGET_API_KEY": "your_key",
        "BITGET_SECRET_KEY": "your_secret",
        "BITGET_PASSPHRASE": "your_passphrase",
        "BITGET_SANDBOX": "true"
      }
    }
  }
}

šŸ“š Available Tools

Market Data Tools

Tool

Description

Parameters

getPrice

Get current price

symbol: string

getTicker

Get full ticker info

symbol: string

getOrderBook

Get order book

symbol: string, depth?: number

getCandles

Get OHLCV data

symbol: string, interval: string, limit?: number

Account Tools

Tool

Description

Parameters

getBalance

Get account balance

asset?: string

getPositions

Get futures positions

symbol?: string

getMarginInfo

Get margin info

symbol?: string

getOrders

Get open orders

symbol?: string, status?: string

Trading Tools

Tool

Description

Parameters

placeOrder

Place new order

symbol, side, type, quantity, price?

cancelOrder

Cancel order

orderId: string, symbol: string

setLeverage

Set leverage

symbol: string, leverage: number

šŸŽ® Usage Examples

Basic Price Check

// Get current Bitcoin price
await getPrice({ symbol: "BTCUSDT" })

// Get futures price
await getPrice({ symbol: "BTCUSDT_UMCBL" })

Trading Operations

// Place a limit buy order
await placeOrder({
  symbol: "BTCUSDT",
  side: "buy",
  type: "limit",
  quantity: "0.001",
  price: "50000"
})

// Set leverage for futures
await setLeverage({
  symbol: "BTCUSDT_UMCBL",
  leverage: 10
})

Account Information

// Check balance
await getBalance({ asset: "USDT" })

// Get all positions
await getPositions({})

šŸ—ļø Development

Scripts

npm run dev      # Development with hot reload
npm run build    # Production build
npm run test     # Run tests
npm run lint     # Lint code
npm run format   # Format code

Project Structure

src/
ā”œā”€ā”€ api/
│   └── rest-client.ts    # Bitget REST API client
ā”œā”€ā”€ types/
│   ā”œā”€ā”€ bitget.ts         # Bitget API types
│   └── mcp.ts           # MCP schema definitions
└── server.ts            # Main MCP server

šŸ“‹ Symbol Formats

Spot Trading

  • Format: BTCUSDT, ETHUSDT, ADAUSDT

  • No suffix required

Futures Trading

  • Format: BTCUSDT_UMCBL, ETHUSDT_UMCBL

  • _UMCBL suffix for USDT-margined contracts

šŸ”’ Security

  • API Keys: Store in environment variables, never commit to code

  • Demo Mode: Use BITGET_SANDBOX=true for paper trading

  • Rate Limiting: Built-in protection (10 requests/second default)

  • Validation: All inputs validated with Zod schemas

šŸ› Troubleshooting

Common Issues

  1. Error 40009 - Sign signature error

    • Check API key configuration

    • Ensure timestamp is synchronized

  2. Error 40099 - Exchange environment incorrect

    • Verify demo/live mode settings

    • Check paptrading header for demo mode

  3. Error 400172 - Parameter verification failed

    • Check required parameters

    • Verify symbol format

šŸ¤ Contributing

  1. Fork the repository

  2. Create feature branch (git checkout -b feature/amazing-feature)

  3. Commit changes (git commit -m 'Add amazing feature')

  4. Push to branch (git push origin feature/amazing-feature)

  5. Open Pull Request

šŸ“„ License

MIT License - see LICENSE file for details

āš ļø Disclaimer

This software is for educational and development purposes. Use at your own risk. Always test in demo mode before live trading. The authors are not responsible for any financial losses.

šŸ”— Resources

šŸ“ž Support


Made with ā¤ļø for the crypto trading community

Available Tools

17 tools
cancelOrderC

Cancel an existing order

Inputs: orderId (required), symbol (required).

connectWebSocketB

Connect to WebSocket for real-time data

Inputs: no named parameters.

disconnectWebSocketB

Disconnect from WebSocket

Inputs: no named parameters.

getBalanceC

Get account balance information

Inputs: asset.

getCandlesC

Get historical candlestick/OHLCV data

Inputs: symbol (required), interval (required), limit.

getMarginInfoC

Get margin account information

Inputs: symbol.

getOrderBookC

Get order book (market depth) for a trading pair

Inputs: symbol (required), depth.

getOrdersC

Get current open orders

Inputs: symbol, status.

getPositionsC

Get current futures positions

Inputs: symbol.

getPriceB

Get current price for a trading pair (spot or futures)

Inputs: symbol (required).

getTickerB

Get full ticker information for a trading pair

Inputs: symbol (required).

getWebSocketStatusB

Get WebSocket connection status

Inputs: no named parameters.

placeOrderC

Place a new buy or sell order (automatically detects spot vs futures)

Inputs: symbol (required), side (required), type (required), quantity (required), +6 more.

setLeverageC

Set leverage for futures trading

Inputs: symbol (required), leverage (required).

subscribeToOrderBookC

Subscribe to real-time order book updates

Inputs: symbol (required), instType.

subscribeToTickerC

Subscribe to real-time ticker updates

Inputs: symbol (required), instType.

unsubscribeFromChannelC

Unsubscribe from a WebSocket channel

Inputs: channel (required), symbol (required), instType.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 17 tools

    Disambiguation5/5

    Each tool has a distinct purpose with clear boundaries: order management (cancelOrder, placeOrder, getOrders), account data (getBalance, getMarginInfo, getPositions), market data (getCandles, getOrderBook, getPrice, getTicker), and WebSocket operations (connectWebSocket, disconnectWebSocket, subscribeToOrderBook, subscribeToTicker, unsubscribeFromChannel, getWebSocketStatus). There is no overlap or ambiguity between tools.

    Naming Consistency5/5

    All tool names follow a consistent camelCase verbNoun pattern (e.g., cancelOrder, getBalance, subscribeToOrderBook). The naming is uniform across the entire set, making it predictable and easy to understand.

    Tool Count5/5

    With 17 tools, the count is well-suited for a trading server covering order execution, account management, market data, and real-time WebSocket functionality. Each tool serves a specific and necessary role without redundancy, fitting within the typical 3-15 range for such a domain.

    Completeness5/5

    The tool set provides comprehensive coverage for cryptocurrency trading: full CRUD for orders (place, cancel, get), account data (balance, margin, positions), market data (historical and real-time via WebSocket), and futures-specific operations (leverage setting). There are no obvious gaps, enabling agents to handle complete trading workflows.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      Enables cryptocurrency trading on Bybit exchange through comprehensive market data access, account management, and automated trading operations. Features smart position validation, trailing stop losses, and risk management tools with demo mode support for safe testing.
      21
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with the Bybit cryptocurrency exchange via the V5 API, supporting market data, trading, and account management with both local and remote OAuth-authenticated connections.
      28
      1
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables LLM agents to access BingX cryptocurrency exchange market data and execute trades through the official API, with support for account management, order creation, and technical indicators.
      -