ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
278 lines
5.5 KiB
Markdown
278 lines
5.5 KiB
Markdown
# MCP MT4 Connector
|
|
|
|
**Version:** 0.1.0
|
|
**Date:** 2026-01-04
|
|
**System:** Trading Platform + NEXUS v3.4 + SIMCO
|
|
|
|
---
|
|
|
|
## Description
|
|
|
|
MCP Server that exposes MetaTrader 4 (MT4) trading capabilities as tools for AI agents. This service enables AI agents to:
|
|
- Query account information
|
|
- Monitor open positions
|
|
- Execute trades (BUY/SELL)
|
|
- Manage positions (modify SL/TP, close)
|
|
- Get real-time price quotes
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Navigate to the project
|
|
cd /home/isem/workspace-v1/projects/trading-platform/apps/mcp-mt4-connector
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Configure environment
|
|
cp .env.example .env
|
|
# Edit .env with your MT4 Gateway credentials
|
|
```
|
|
|
|
---
|
|
|
|
## Configuration
|
|
|
|
### Environment Variables
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PORT` | MCP Server port | 3605 |
|
|
| `MT4_GATEWAY_HOST` | MT4 Gateway hostname | localhost |
|
|
| `MT4_GATEWAY_PORT` | MT4 Gateway port | 8081 |
|
|
| `MT4_GATEWAY_AUTH_TOKEN` | Authentication token | secret |
|
|
| `REQUEST_TIMEOUT` | Request timeout (ms) | 10000 |
|
|
| `LOG_LEVEL` | Logging level | info |
|
|
|
|
### Example .env
|
|
```env
|
|
PORT=3605
|
|
MT4_GATEWAY_HOST=localhost
|
|
MT4_GATEWAY_PORT=8081
|
|
MT4_GATEWAY_AUTH_TOKEN=your-secure-token
|
|
REQUEST_TIMEOUT=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:3605/health
|
|
```
|
|
|
|
### List Available Tools
|
|
|
|
```bash
|
|
curl http://localhost:3605/tools
|
|
```
|
|
|
|
### Execute a Tool
|
|
|
|
```bash
|
|
# Get account info
|
|
curl -X POST http://localhost:3605/tools/mt4_get_account \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"parameters": {}}'
|
|
|
|
# Get price quote
|
|
curl -X POST http://localhost:3605/tools/mt4_get_quote \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"parameters": {"symbol": "XAUUSD"}}'
|
|
|
|
# Execute trade
|
|
curl -X POST http://localhost:3605/tools/mt4_execute_trade \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"parameters": {"symbol": "XAUUSD", "action": "buy", "lots": 0.1}}'
|
|
```
|
|
|
|
---
|
|
|
|
## MCP Tools Available
|
|
|
|
| Tool | Description | Risk |
|
|
|------|-------------|------|
|
|
| `mt4_get_account` | Get account balance, equity, margin | Low |
|
|
| `mt4_get_positions` | List open positions | Low |
|
|
| `mt4_get_quote` | Get current bid/ask price | Low |
|
|
| `mt4_execute_trade` | Execute BUY/SELL order | HIGH |
|
|
| `mt4_close_position` | Close a position | HIGH |
|
|
| `mt4_modify_position` | Modify SL/TP | Medium |
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
mcp-mt4-connector/
|
|
├── README.md # This file
|
|
├── package.json # Dependencies
|
|
├── tsconfig.json # TypeScript configuration
|
|
├── .env.example # Environment template
|
|
├── .gitignore # Git ignore rules
|
|
├── docs/
|
|
│ ├── ARCHITECTURE.md # Architecture documentation
|
|
│ └── MCP-TOOLS-SPEC.md # Detailed tool specifications
|
|
└── src/
|
|
├── index.ts # Server entry point
|
|
├── tools/
|
|
│ ├── index.ts # Tool exports
|
|
│ ├── account.ts # mt4_get_account
|
|
│ ├── positions.ts # mt4_get_positions, mt4_close_position
|
|
│ ├── trading.ts # mt4_execute_trade, mt4_modify_position
|
|
│ └── quotes.ts # mt4_get_quote
|
|
└── services/
|
|
└── mt4-client.ts # MT4 Gateway HTTP client
|
|
```
|
|
|
|
---
|
|
|
|
## 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
|
|
```
|
|
|
|
---
|
|
|
|
## Integration with Claude
|
|
|
|
### MCP Configuration
|
|
|
|
Add to your Claude/MCP configuration:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"mt4": {
|
|
"url": "http://localhost:3605",
|
|
"transport": "http"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Example Agent Prompts
|
|
|
|
```
|
|
"Check my MT4 account balance"
|
|
→ Uses mt4_get_account
|
|
|
|
"What's the current gold price?"
|
|
→ Uses mt4_get_quote({ symbol: "XAUUSD" })
|
|
|
|
"Buy 0.1 lots of XAUUSD with stop loss at 2640"
|
|
→ Uses mt4_execute_trade({ symbol: "XAUUSD", action: "buy", lots: 0.1, stopLoss: 2640 })
|
|
|
|
"Close my profitable gold positions"
|
|
→ Uses mt4_get_positions({ symbol: "XAUUSD" }) + mt4_close_position for each
|
|
```
|
|
|
|
---
|
|
|
|
## Dependencies
|
|
|
|
### Runtime
|
|
- `express` - HTTP server
|
|
- `axios` - HTTP client
|
|
- `zod` - Input validation
|
|
- `dotenv` - Environment configuration
|
|
- `@modelcontextprotocol/sdk` - MCP protocol
|
|
|
|
### Development
|
|
- `typescript` - Type safety
|
|
- `ts-node-dev` - Development server
|
|
- `jest` - Testing framework
|
|
- `eslint` - Code linting
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
1. **MT4 Gateway** running on configured host:port
|
|
2. **MT4 Terminal** connected with EA Bridge active
|
|
3. **Node.js** >= 18.0.0
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Cannot connect to MT4 Gateway
|
|
```bash
|
|
# Check if mt4-gateway is running
|
|
curl http://localhost:8081/status
|
|
|
|
# Verify environment variables
|
|
cat .env | grep MT4
|
|
```
|
|
|
|
### Tool execution fails
|
|
```bash
|
|
# Check health endpoint for dependency status
|
|
curl http://localhost:3605/health
|
|
|
|
# Check server logs
|
|
npm run dev # Logs will show in console
|
|
```
|
|
|
|
### Invalid parameters error
|
|
```bash
|
|
# Verify tool schema
|
|
curl http://localhost:3605/tools/mt4_execute_trade
|
|
|
|
# Check parameter names match schema
|
|
```
|
|
|
|
---
|
|
|
|
## References
|
|
|
|
- [MCP Protocol](https://modelcontextprotocol.io)
|
|
- MT4 Gateway: `apps/mt4-gateway/`
|
|
- SIMCO-MCP: `orchestration/directivas/simco/SIMCO-MCP.md`
|
|
- Architecture: `docs/ARCHITECTURE.md`
|
|
- Tool Specs: `docs/MCP-TOOLS-SPEC.md`
|
|
|
|
---
|
|
|
|
**Maintained by:** @PERFIL_MCP_DEVELOPER
|
|
**Project:** Trading Platform
|