MetaTrader MCP Server
Enables LLMs to trade on MetaTrader 5 via REST API or MCP tools, supporting market/pending orders, position management, and account info retrieval.
README
MetaTrader MCP Server
Servidor MCP/HTTP para operar MetaTrader 5 desde LLMs (Claude, Open WebUI, etc.).
Requisitos
- Windows 10/11
- MetaTrader 5 instalado
- Python 3.12
Instalación
python -m venv venv_mt5
.\venv_mt5\Scripts\activate
pip install metatrader-mcp-server
Configuración
Crea un fichero .env en la raíz del proyecto:
MT5_LOGIN=tu_login
MT5_PASSWORD=tu_password
MT5_SERVER=tu_servidor
.envestá en.gitignore— nunca se sube al repositorio.
Arranque manual
.\start_mcp_server.bat
O directamente:
.\venv_mt5\Scripts\python.exe -m metatrader_openapi.main `
--login tu_login --password tu_password --server tu_servidor `
--host 0.0.0.0 --port 8000
Arranque automático como servicio
El servidor está registrado como tarea de Windows y arranca automáticamente al iniciar el sistema.
Para gestionar el servicio manualmente usa mcp_service.ps1:
.\mcp_service.ps1 status # comprobar estado
.\mcp_service.ps1 start # arrancar
.\mcp_service.ps1 stop # parar
.\mcp_service.ps1 restart # reiniciar (si se queda colgado)
El comando status comprueba tres cosas:
- Estado de la tarea en el Programador de Windows
- Si el proceso Python está corriendo
- Si el endpoint HTTP responde
Logs
Los logs se guardan en metatrader_mcp.log en la raíz del proyecto.
2026-06-29 12:52:12 INFO === MetaTrader MCP Server started (login=tu_login server=tu_servidor) ===
2026-06-29 12:52:33 INFO GET /api/v1/account/info 200 7ms client=100.81.112.95
2026-06-29 12:53:01 INFO POST /api/v1/order/market 200 312ms client=100.81.112.95
Cada línea incluye: fecha/hora, nivel, método HTTP, ruta, código de respuesta, tiempo en ms e IP del cliente.
Endpoints HTTP
El servidor expone una API REST en http://localhost:8000. Documentación interactiva en http://localhost:8000/docs.
Cuenta
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/v1/account/info |
Balance, equity, margen, divisa, leverage |
Mercado
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/v1/market/symbols |
Lista de símbolos disponibles |
| GET | /api/v1/market/price/{symbol} |
Precio actual de un símbolo |
| GET | /api/v1/market/candles/{symbol}/{timeframe} |
Últimas N velas |
Posiciones abiertas
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/v1/positions |
Todas las posiciones abiertas |
| GET | /api/v1/positions/symbol/{symbol} |
Posiciones por símbolo |
| GET | /api/v1/positions/{id} |
Posición por ID |
| DELETE | /api/v1/positions/{id} |
Cerrar posición por ID |
| DELETE | /api/v1/positions |
Cerrar todas las posiciones |
| DELETE | /api/v1/positions/profitable |
Cerrar todas las posiciones con beneficio |
| DELETE | /api/v1/positions/losing |
Cerrar todas las posiciones con pérdida |
Órdenes
| Método | Ruta | Descripción |
|---|---|---|
| POST | /api/v1/order/market |
Abrir orden de mercado |
| POST | /api/v1/order/pending |
Colocar orden pendiente |
| GET | /api/v1/order/pending |
Listar órdenes pendientes |
| GET | /api/v1/order/pending/{id} |
Orden pendiente por ID |
| PUT | /api/v1/order/pending/{id} |
Modificar orden pendiente |
| DELETE | /api/v1/order/pending/{id} |
Cancelar orden pendiente |
| DELETE | /api/v1/order/pending |
Cancelar todas las órdenes pendientes |
Ejemplo — orden de mercado con SL y TP
curl -X POST http://localhost:8000/api/v1/order/market \
-H "Content-Type: application/json" \
-d '{"symbol":"EURUSD","volume":0.01,"type":"BUY","stop_loss":1.13500,"take_profit":1.15000}'
Ejemplo — cerrar posición
curl -X DELETE http://localhost:8000/api/v1/positions/9328864980
Historial
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/v1/history/deals |
Historial de deals (acepta from_date, to_date, symbol) |
| GET | /api/v1/history/orders |
Historial de órdenes |
Herramientas MCP
El servidor expone las mismas operaciones como herramientas MCP para uso directo desde Claude u otros LLMs compatibles con MCP.
| Herramienta | Descripción |
|---|---|
get_account_info |
Info de cuenta |
get_symbol_price |
Precio de un símbolo |
get_symbols |
Lista de símbolos (con filtro opcional) |
get_candles_latest |
Últimas N velas |
get_candles_by_date |
Velas por rango de fechas |
get_deals |
Historial de deals como CSV |
get_orders |
Historial de órdenes como CSV |
get_all_positions |
Posiciones abiertas |
place_market_order |
Orden de mercado (con SL/TP opcionales) |
place_pending_order |
Orden pendiente |
modify_position |
Modificar SL/TP de posición abierta |
modify_pending_order |
Modificar orden pendiente |
close_position |
Cerrar posición por ID |
close_all_positions |
Cerrar todas las posiciones |
close_all_profitable_positions |
Cerrar posiciones con beneficio |
close_all_losing_positions |
Cerrar posiciones con pérdida |
cancel_pending_order |
Cancelar orden pendiente por ID |
cancel_all_pending_orders |
Cancelar todas las órdenes pendientes |
Docker
docker-compose up -d
Las credenciales se leen del fichero .env automáticamente.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。