Skip to main content
Glama
jordy33

Binance MCP Server

by jordy33
README.md
# Binance MCP Server

A Model Context Protocol (MCP) server for cryptocurrency trading on Binance and Base network interactions. This server provides tools for automated trading, market analysis, and blockchain operations.

## Features

- **Binance Trading Tools**: Place orders, check balances, fetch market data, and calculate technical indicators.
- **Base Network Integration**: Monitor blockchain status and prepare for DeFi operations.
- **Technical Analysis**: Built-in RSI, MACD, Bollinger Bands, and moving averages.
- **Secure API Handling**: Environment variables for API keys.

## Installation

1. Clone or navigate to the project directory.

2. Create a virtual environment:
   ```bash
   python3 -m venv .venv
   ```

3. Activate the virtual environment:
   ```bash
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
   ```

4. Upgrade pip and install dependencies:
   ```bash
   pip install --upgrade pip
   pip install -r requirements.txt
   ```

## Environment Variables

Create a `.env` file in the root directory with your API credentials:

```env
# Binance API Configuration
BINANCE_API_KEY=your_binance_api_key_here
BINANCE_SECRET_KEY=your_binance_secret_key_here
```

**Security Note**: Never commit the `.env` file to version control. It is already included in `.gitignore`.

## Running the MCP Server

Start the server with Server-Sent Events (SSE) transport:

```bash
python mcp_server.py
```

The server will run on `http://127.0.0.1:8080/sse` by default.

## Available Tools

The MCP server exposes the following tools for integration with AI agents:

### Trading Tools
- `get_account_balance(asset="USDT")`: Get balance for a specific asset.
- `get_market_price(symbol="BTCUSDT")`: Get current market price.
- `fetch_chart_data(symbol="BTCUSDT", interval="1h", limit=100)`: Fetch historical OHLCV data.
- `calculate_indicators(symbol="BTCUSDT", interval="1h", limit=100)`: Calculate technical indicators (RSI, MACD, Bollinger Bands, etc.).
- `get_symbol_rules(symbol="BTCUSDT")`: Get trading rules and precision requirements.
- `adjust_leverage(symbol="BTCUSDT", leverage=5)`: Adjust leverage for futures trading.
- `place_order(symbol="BTCUSDT", side="BUY", quantity=0.001)`: Place a market order.

### Blockchain Tools
- `get_base_network_status()`: Check Base network health (block number, gas price).

### Utility Tools
- `read_bot_logs(lines=20, log_type="general")`: Read bot logs for debugging.

## Testing

Run the tests to verify functionality:

```bash
python -m pytest tests/
```

Or run a specific test:

```bash
python tests/test_mcp_registration.py
```

## Configuration

Trading parameters can be adjusted in `config.py`:

- `TRADING_PAIRS`: List of symbols to trade.
- `MIN_ORDER_VALUE`: Minimum order value in USDT.
- `STOP_LOSS_PERCENTAGE`: Stop loss percentage.
- `TAKE_PROFIT_PERCENTAGE`: Take profit percentage.
- `POLLING_INTERVAL`: Time between checks (in seconds).

## Security Considerations

- Use testnet for initial testing.
- Implement proper risk management.
- Monitor API rate limits.
- Keep API keys secure and rotate regularly.

## Contributing

1. Fork the repository.
2. Create a feature branch.
3. Make your changes.
4. Add tests for new functionality.
5. Submit a pull request.

## License

This project is licensed under the MIT License.