ethancod1ng/binance-mcp-server
If you are the rightful owner of binance-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Binance MCP Server is a comprehensive Model Context Protocol server that provides seamless access to Binance exchange API functionality.
get_price
Get current price for a trading pair.
get_orderbook
Get order book depth data.
get_klines
Get K-line/candlestick data.
get_24hr_ticker
Get 24-hour price change statistics.
get_account_info
Get account information and balances.
get_open_orders
Get current open orders.
get_order_history
Get historical orders.
place_order
Place a new order.
cancel_order
Cancel a specific order.
cancel_all_orders
Cancel all open orders for a symbol.
Binance MCP Server
å¤čÆčØę攣 / Multi-language Documentation
- (current)
A comprehensive Model Context Protocol (MCP) server that provides Claude Code with seamless access to Binance exchange API functionality.
Features
- Market Data Tools: Get real-time prices, order book depth, K-line data, and 24-hour statistics
- Account Management: View account information, balances, open orders, and order history
- Trading Operations: Place orders, cancel orders (testnet only)
- Full TypeScript Support: Complete type definitions and validation
- Security First: Environment-based configuration with input validation
- Error Handling: Comprehensive error handling with sanitized logging
Quick Start
Installation
npm install
Configuration
- Copy the environment template:
cp .env.example .env
- Configure your Binance API credentials in
.env
:
BINANCE_API_KEY=your_api_key_here
BINANCE_API_SECRET=your_api_secret_here
BINANCE_TESTNET=true
MCP_SERVER_NAME=binance-mcp-server
MCP_SERVER_VERSION=1.0.0
LOG_LEVEL=info
Running the Server
Development mode:
npm run dev
Production build:
npm run build
npm start
Available Tools
Market Data Tools
get_price
Get current price for a trading pair.
{
"symbol": "BTCUSDT"
}
get_orderbook
Get order book depth data.
{
"symbol": "BTCUSDT",
"limit": 100
}
get_klines
Get K-line/candlestick data.
{
"symbol": "BTCUSDT",
"interval": "1h",
"limit": 500
}
get_24hr_ticker
Get 24-hour price change statistics.
{
"symbol": "BTCUSDT"
}
Account Tools
get_account_info
Get account information and balances.
{}
get_open_orders
Get current open orders.
{
"symbol": "BTCUSDT"
}
get_order_history
Get historical orders.
{
"symbol": "BTCUSDT",
"limit": 500
}
Trading Tools (Testnet Only)
place_order
Place a new order.
{
"symbol": "BTCUSDT",
"side": "BUY",
"type": "LIMIT",
"quantity": "0.001",
"price": "50000"
}
cancel_order
Cancel a specific order.
{
"symbol": "BTCUSDT",
"orderId": 12345
}
cancel_all_orders
Cancel all open orders for a symbol.
{
"symbol": "BTCUSDT"
}
Claude Code Integration
Configuration
Add the following to your Claude Code MCP configuration:
{
"mcpServers": {
"binance": {
"command": "binance-mcp-server",
"env": {
"BINANCE_API_KEY": "your_api_key",
"BINANCE_API_SECRET": "your_api_secret",
"BINANCE_TESTNET": "true"
}
}
}
}
Usage Examples
Ask Claude to:
- "Get the current price of Bitcoin"
- "Show me the order book for ETHUSDT"
- "Get 1-hour candlestick data for BTCUSDT"
- "Check my account balance"
- "Place a limit buy order for 0.001 BTC at $50,000"
Security
Important Security Notes
- API Keys: Never commit API keys to version control
- Testnet Only: Trading functions only work with
BINANCE_TESTNET=true
- Input Validation: All inputs are validated using Zod schemas
- Error Sanitization: Sensitive information is removed from error logs
Environment Variables
Variable | Required | Description |
---|---|---|
BINANCE_API_KEY | Yes | Your Binance API key |
BINANCE_API_SECRET | Yes | Your Binance API secret |
BINANCE_TESTNET | No | Enable testnet mode (default: false) |
MCP_SERVER_NAME | No | Server name (default: binance-mcp-server) |
MCP_SERVER_VERSION | No | Server version (default: 1.0.0) |
LOG_LEVEL | No | Logging level (default: info) |
Development
Project Structure
binance-mcp-server/
āāā src/
ā āāā index.ts # Server entry point
ā āāā server.ts # MCP server core
ā āāā tools/ # Tool modules
ā ā āāā market-data.ts # Market data tools
ā ā āāā account.ts # Account info tools
ā ā āāā trading.ts # Trading tools
ā ā āāā index.ts # Tool exports
ā āāā types/ # TypeScript definitions
ā ā āāā binance.ts # Binance API types
ā ā āāā mcp.ts # MCP input schemas
ā āāā config/
ā ā āāā binance.ts # Configuration management
ā āāā utils/
ā āāā validation.ts # Input validation
ā āāā error-handling.ts # Error handling
āāā dist/ # Compiled JavaScript
āāā .env.example # Environment template
āāā package.json
āāā tsconfig.json
āāā README.md
Scripts
npm run build
- Compile TypeScript to JavaScriptnpm run dev
- Run in development mode with hot reloadnpm run start
- Run the compiled servernpm run lint
- Run ESLintnpm run typecheck
- Run TypeScript type checking
Adding New Tools
- Define input schema in
src/types/mcp.ts
- Create tool implementation in appropriate file under
src/tools/
- Export from
src/tools/index.ts
- Update documentation
Troubleshooting
Common Issues
-
API Connection Failed
- Verify API credentials are correct
- Check network connectivity
- Ensure testnet flag matches your API key type
-
Permission Denied
- Verify API key has required permissions
- Check if IP is whitelisted on Binance
-
Invalid Symbol
- Use correct symbol format (e.g., BTCUSDT, not BTC/USDT)
- Verify symbol exists on Binance
-
Trading Disabled
- Set
BINANCE_TESTNET=true
for trading functions - Verify testnet API credentials
- Set
Debug Mode
Set LOG_LEVEL=debug
for detailed logging:
LOG_LEVEL=debug npm run dev
API Rate Limits
The server respects Binance API rate limits:
- Market data: 1200 requests per minute
- Account data: 180 requests per minute
- Orders: 10 orders per second, 100,000 orders per 24 hours
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Update documentation
- Submit a pull request
License
MIT License - see LICENSE file for details
Support
For issues and questions:
- Check the troubleshooting section
- Review Binance API documentation
- Open an issue on GitHub
Disclaimer
This software is for educational and development purposes. Use at your own risk. Always test with testnet before using real funds.