MetaTrader 5 MCP Server & Distrobox Automation
@chymian
A MCP-Server to control Metatrader5 for EA optimization
Overview
What is MetaTrader 5 MCP Server & Distrobox Automation?
An automated workflow for running, optimizing, and documenting MetaTrader 5 Expert Advisors (EAs) using a Distrobox container, a Flask REST API, and an MCP server. It integrates MetaTrader 5 (via Wine/Distrobox) with programmatic EA optimization and a unified MCP interface for trading, optimization, and result retrieval.
How to use MetaTrader 5 MCP Server & Distrobox Automation?
Create the Distrobox container with distrobox-assemble create --file src/mt5.ini -R and enter it with distrobox-enter mt5. The Flask API starts automatically and is accessible at http://localhost:5000. Use the MCP server (src/mt5-server.ts) to trigger optimizations and generate reports. Results are saved to ~/mt5-dev/result/manual/tuning/.
Key features of MetaTrader 5 MCP Server & Distrobox Automation
- MetaTrader 5 setup and launch via Wine in Distrobox.
- Flask REST API for programmatic EA optimization.
- MCP server for unified trading and optimization interface.
- Automated HTML and Markdown optimization reports.
- Git version control for all code and configuration.
Use cases of MetaTrader 5 MCP Server & Distrobox Automation
- Run and optimize MT5 Expert Advisors in a containerized environment.
- Automate EA tuning and generate human‑readable documentation.
- Integrate MT5 operations into MCP‑compatible AI workflows.
FAQ from MetaTrader 5 MCP Server & Distrobox Automation
What does the MCP server provide?
It provides tools for trading operations (get_account_info, create_order) and optimization operations (run_optimization, get_optimization_status, get_optimization_results, save_optimization_results).
What are the runtime requirements?
A Linux host with Distrobox, Wine, Python3, pip, Flask, MetaTrader5, pandas, jinja2, git, and Node.js/TypeScript for the MCP server. The Distrobox container handles most dependencies automatically.
Where are optimization results stored?
By default, all logs, data, and results are stored in ~/mt5-dev. HTML and Markdown reports are saved to ~/mt5-dev/result/manual/tuning/<EA_NAME>_tuning.html and .md.
Can I customize configuration?
Copy src/mt5.ini to src/mt5-dev.ini and edit as needed. The mt5-dev.ini file is ignored by git and not tracked.
How does the Flask API work?
It runs inside the Distrobox container on port 5000. Endpoints include POST /optimize, GET /optimization_status/<id>, GET /optimization_results/<id>, and POST /save_results.
