MCP Expert Server

# mcp-server-cex-bn This MCP Server provides a robust interface for Binance spot trading operations. [中文说明](README_CN.md) ## Features ### Trading Operations - Configure and store Binance API credentials securely - Execute spot trading operations (LIMIT/MARKET orders) - Monitor account balances - Track and manage open orders - Cancel existing orders ### Tools #### `configure_api_keys` Securely store your Binance API credentials: ```typescript await configureBinanceApiKeys({ apiKey: 'your-api-key', apiSecret: 'your-api-secret' }); ``` #### `create_spot_order` Create LIMIT or MARKET orders: ```typescript // LIMIT order await createSpotOrder({ symbol: 'BTCUSDT', side: 'BUY', type: 'LIMIT', quantity: '0.001', price: '40000' }); // MARKET order await createSpotOrder({ symbol: 'BTCUSDT', side: 'BUY', type: 'MARKET', quantity: '0.001' }); ``` #### `cancel_order` Cancel an existing order: ```typescript await cancelOrder({ symbol: 'BTCUSDT', orderId: '12345678' }); ``` #### `get_balances` Check your account balances: ```typescript const balances = await getBalances(); // Returns: { BTC: '0.1', USDT: '1000', ... } ``` #### `get_open_orders` List all open orders: ```typescript const orders = await getOpenOrders({ symbol: 'BTCUSDT' // Optional: specify symbol }); ``` ## Security Considerations - Never commit your API keys to version control - Use environment variables or secure key storage - Restrict API key permissions to only required operations - Regularly rotate your API keys ## Rate Limits - Respect Binance API rate limits - Default rate limits: - 1200 requests per minute for order operations - 100 requests per second for market data - Implement proper error handling for rate limit errors ## Error Handling Common error scenarios: - Invalid API credentials - Insufficient balance - Invalid order parameters - Rate limit exceeded - Network connectivity issues Example error handling: ```typescript try { await createSpotOrder({ symbol: 'BTCUSDT', side: 'BUY', type: 'LIMIT', quantity: '0.001', price: '40000' }); } catch (error) { if (error.code === -2010) { console.error('Insufficient balance'); } else if (error.code === -1021) { console.error('Rate limit exceeded'); } } ``` ## Project Structure ``` . ├── src/ │ ├── index.ts # Server entry point │ ├── services/ │ │ ├── binance.ts # Binance API integration │ │ ├── keystore.ts # API key management │ │ └── tools.ts # Trading tools implementation │ └── types/ │ ├── binance.ts # Binance types │ └── binance-connector.d.ts # API client types ├── README.md ├── README_CN.md ├── package.json ├── pnpm-lock.yaml └── tsconfig.json ``` ## Development 1. Set up environment variables: create `.env` file in the root directory, and set your Binance API credentials: ```txt BINANCE_API_KEY=your_api_key_here BINANCE_API_SECRET=your_secret_key_here ``` 2. Install dependencies: ```bash pnpm install ``` Build the server: ```bash pnpm build ``` For development with auto-rebuild: ```bash pnpm watch ``` ## Installation 1. Clone the repository 2. Install dependencies: ```bash pnpm install ``` 3. Configure your Binance API credentials in `.env` 4. Build and start the server: ```bash pnpm build pnpm start ``` ``` ### Debugging Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script: ```bash pnpm inspector ``` The Inspector will provide a URL to access debugging tools in your browser. # mcp-server-bn