# MCP Binance Connector **Version:** 1.0.0 **Date:** 2026-01-04 **System:** Trading Platform + NEXUS v3.4 + SIMCO --- ## Description MCP Server that exposes Binance cryptocurrency exchange capabilities as tools for AI agents. This service enables AI agents to: - Query market data (prices, order books, candles) - Monitor account balances - View and manage open orders - Execute trades (buy/sell with market, limit, stop orders) Uses [CCXT](https://github.com/ccxt/ccxt) library for Binance API integration. --- ## Installation ```bash # Navigate to the project cd /home/isem/workspace-v1/projects/trading-platform/apps/mcp-binance-connector # Install dependencies npm install # Configure environment cp .env.example .env # Edit .env with your Binance API credentials ``` --- ## Configuration ### Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `PORT` | MCP Server port | 3606 | | `MCP_API_KEY` | API key for MCP authentication | - | | `BINANCE_API_KEY` | Binance API key | - | | `BINANCE_API_SECRET` | Binance API secret | - | | `BINANCE_TESTNET` | Use Binance testnet | true | | `MAX_ORDER_VALUE_USDT` | Max order value limit | 1000 | | `MAX_DAILY_VOLUME_USDT` | Max daily trading volume | 10000 | | `MAX_LEVERAGE` | Max leverage allowed | 20 | | `LOG_LEVEL` | Logging level | info | ### Example .env ```env PORT=3606 BINANCE_API_KEY=your_api_key_here BINANCE_API_SECRET=your_api_secret_here BINANCE_TESTNET=true MAX_ORDER_VALUE_USDT=1000 MAX_DAILY_VOLUME_USDT=10000 LOG_LEVEL=info ``` --- ## Usage ### Start Server ```bash # Development (with hot reload) npm run dev # Production npm run build npm start ``` ### Health Check ```bash curl http://localhost:3606/health ``` ### List Available Tools ```bash curl http://localhost:3606/tools ``` ### Execute a Tool ```bash # Get BTC price curl -X POST http://localhost:3606/tools/binance_get_ticker \ -H "Content-Type: application/json" \ -d '{"parameters": {"symbol": "BTCUSDT"}}' # Get order book curl -X POST http://localhost:3606/tools/binance_get_orderbook \ -H "Content-Type: application/json" \ -d '{"parameters": {"symbol": "ETHUSDT", "limit": 10}}' # Get candlestick data curl -X POST http://localhost:3606/tools/binance_get_klines \ -H "Content-Type: application/json" \ -d '{"parameters": {"symbol": "BTCUSDT", "interval": "1h", "limit": 24}}' # Get account balance (requires API keys) curl -X POST http://localhost:3606/tools/binance_get_account \ -H "Content-Type: application/json" \ -d '{"parameters": {}}' # Create order (requires API keys) - HIGH RISK curl -X POST http://localhost:3606/tools/binance_create_order \ -H "Content-Type: application/json" \ -d '{"parameters": {"symbol": "BTCUSDT", "side": "buy", "type": "market", "amount": 0.001}}' ``` --- ## MCP Tools Available | Tool | Description | Risk Level | |------|-------------|------------| | `binance_get_ticker` | Get current price and 24h stats | LOW | | `binance_get_orderbook` | Get order book depth | LOW | | `binance_get_klines` | Get OHLCV candles | LOW | | `binance_get_account` | Get account balances | MEDIUM | | `binance_get_open_orders` | List open orders | MEDIUM | | `binance_create_order` | Create buy/sell order | HIGH (*) | | `binance_cancel_order` | Cancel pending order | MEDIUM | (*) Tools marked with HIGH risk require explicit confirmation and pass through risk checks. --- ## Project Structure ``` mcp-binance-connector/ ├── README.md # This file ├── package.json # Dependencies ├── tsconfig.json # TypeScript configuration ├── .env.example # Environment template ├── Dockerfile # Container configuration └── src/ ├── index.ts # Server entry point ├── config.ts # Configuration management ├── utils/ │ └── logger.ts # Winston logger ├── services/ │ └── binance-client.ts # CCXT wrapper ├── middleware/ │ └── risk-check.ts # Pre-trade risk validation └── tools/ ├── index.ts # Tool registry ├── market.ts # Market data tools ├── account.ts # Account tools └── orders.ts # Order management tools ``` --- ## Development ### Build ```bash npm run build ``` ### Type Check ```bash npm run typecheck ``` ### Lint ```bash npm run lint npm run lint:fix ``` ### Test ```bash npm run test npm run test:coverage ``` --- ## Docker ### Build Image ```bash docker build -t mcp-binance-connector:1.0.0 . ``` ### Run Container ```bash docker run -d \ --name mcp-binance-connector \ -p 3606:3606 \ -e BINANCE_API_KEY=your_key \ -e BINANCE_API_SECRET=your_secret \ -e BINANCE_TESTNET=true \ mcp-binance-connector:1.0.0 ``` --- ## Integration with Claude ### MCP Configuration Add to your Claude/MCP configuration: ```json { "mcpServers": { "binance": { "url": "http://localhost:3606", "transport": "http" } } } ``` ### Example Agent Prompts ``` "What's the current Bitcoin price?" -> Uses binance_get_ticker({ symbol: "BTCUSDT" }) "Show me the ETH order book" -> Uses binance_get_orderbook({ symbol: "ETHUSDT" }) "Get the last 50 hourly candles for BTC" -> Uses binance_get_klines({ symbol: "BTCUSDT", interval: "1h", limit: 50 }) "Check my Binance balance" -> Uses binance_get_account() "Buy 0.01 BTC at market price" -> Uses binance_create_order({ symbol: "BTCUSDT", side: "buy", type: "market", amount: 0.01 }) ``` --- ## Risk Management The connector includes built-in risk checks: 1. **Maximum Order Value**: Orders exceeding `MAX_ORDER_VALUE_USDT` are rejected 2. **Daily Volume Limit**: Trading stops when `MAX_DAILY_VOLUME_USDT` is reached 3. **Balance Check**: Buy orders verify sufficient balance 4. **Testnet Default**: Testnet is enabled by default for safety 5. **High-Risk Confirmation**: Orders require explicit confirmation flag --- ## Dependencies ### Runtime - `express` - HTTP server - `ccxt` - Cryptocurrency exchange library - `zod` - Input validation - `winston` - Logging - `dotenv` - Environment configuration - `@modelcontextprotocol/sdk` - MCP protocol ### Development - `typescript` - Type safety - `ts-node-dev` - Development server - `jest` - Testing framework - `eslint` - Code linting --- ## Prerequisites 1. **Binance Account** with API keys (optional for public data) 2. **Testnet API Keys** for testing (recommended) 3. **Node.js** >= 20.0.0 ### Getting Binance API Keys 1. Log into [Binance](https://www.binance.com) 2. Go to API Management 3. Create a new API key 4. Enable Spot Trading permissions 5. (Optional) For testnet: [Binance Testnet](https://testnet.binance.vision/) --- ## Troubleshooting ### Cannot connect to Binance ```bash # Check connectivity curl https://api.binance.com/api/v3/ping # If using testnet, check testnet connectivity curl https://testnet.binance.vision/api/v3/ping ``` ### Authentication errors ```bash # Verify API keys are set cat .env | grep BINANCE # Check health endpoint for config status curl http://localhost:3606/health ``` ### Order rejected by risk check The order may exceed configured limits. Check: - `MAX_ORDER_VALUE_USDT` - single order limit - `MAX_DAILY_VOLUME_USDT` - daily trading limit - Available balance for buy orders --- ## References - [MCP Protocol](https://modelcontextprotocol.io) - [CCXT Documentation](https://docs.ccxt.com) - [Binance API](https://binance-docs.github.io/apidocs/) - Architecture: `/docs/01-arquitectura/MCP-BINANCE-CONNECTOR-SPEC.md` - MT4 Connector: `/apps/mcp-mt4-connector/` (reference implementation) --- **Maintained by:** @PERFIL_MCP_DEVELOPER **Project:** Trading Platform