HTS MetaTrader5 Trading MCP
# HTS(MetaTrader5) Trading MCP
A Model Context Protocol (MCP) server that connects Claude AI with MetaTrader 5 for forex trading operations and market data analysis.
## Features
### Market Data
- **Historical Candles**: Retrieve OHLC data for any forex symbol and timeframe
- **Multi-Timeframe Analysis**: Fetch candle data across multiple timeframes simultaneously
- **Account Information**: View trading account details and metrics
- **Position Tracking**: Monitor all open positions
- **Order Management**: Track pending orders
### Trading Operations
- **Order Placement**: Create market and pending orders (BUY, SELL, LIMIT, STOP)
- **Order Modification**: Update price levels, SL/TP, and expiration times
- **Order Cancellation**: Cancel pending orders
- **Position Management**: Close positions (full/partial) and modify SL/TP levels
## Architecture
The system consists of two components:
1. **MCP Server** (Node.js/TypeScript)
- Exposes tools via Model Context Protocol
- Manages command queue for EA communication
- Provides HTTP API for MT5 integration
2. **MetaTrader 5 EA** (MQL5)
- Executes trading operations
- Retrieves market data
- Communicates with MCP server via HTTP
## Installation
```bash
npm install
npm run build
```
## Configuration
Create a `.env` file:
```env
HTTP_PORT=3000
```
## Usage
### Start the MCP Server
```bash
npm start
```
### Configure Claude Desktop
Add to your Claude desktop config:
```json
{
"mcpServers": {
"mcp-server": {
"command": "node",
"args": ["/path/to/trading-mcp/dist/index.js"]
}
}
}
```
### Deploy MT5 EA
1. Copy `ea/info-bot.mq5` to your MetaTrader 5 `Experts` folder
2. Compile the EA in MetaEditor
3. Attach the EA to any chart
4. Ensure the EA has the correct HTTP endpoint configured
## API Tools
### Market Data Tools
- `get_candles` - Historical candle data for a symbol
- `get_bulk_candles` - Multi-timeframe candle data
- `get_accounts` - All trading accounts
- `get_account` - Specific account by number
- `get_positions` - All open positions
- `get_orders` - All pending orders
### Trading Tools
- `open_order` - Create new trading order
- `modify_order` - Update pending order
- `cancel_order` - Cancel pending order
- `close_position` - Close open position
- `modify_position` - Update position SL/TP
- `get_command_queue` - View pending commands
- `get_handler_queue` - View command results
TDQS
Scored across 14 tools
Each tool targets a distinct resource/action: accounts, candles, positions, orders, and internal queues. Even similar tools like get_accounts vs get_account and get_candles vs get_bulk_candles are clearly differentiated by singular/plural and bulk/single scope.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_accounts, open_order, close_position). The naming is uniform and predictable, with no mixed styles or vague verbs.
14 tools is well-scoped for a trading server, covering account info, market data, order management, position management, and internal queue monitoring. Each tool earns its place without feeling excessive or sparse.
Core trading lifecycle is covered: accounts (get), market data (candles), pending orders (open/modify/cancel/list), and open positions (close/modify/list). Minor gaps include lack of real-time price quotes and historical trade/deal history, but these are workaroundable.