MetaTrader 5 MCP Server & Distrobox Automation
用于 EA 优化的 MCP 服务器,以控制 Metatrader5
chymian
README
MetaTrader 5 MCP 服务器 & Distrobox 自动化
本项目提供了一个全自动化的工作流程,用于使用 Distrobox 容器、Flask REST API 和 MCP 服务器运行、优化和记录 MetaTrader 5 (MT5) 智能交易系统 (EA)。
特性
- Wine/Distrobox 中的 MetaTrader 5: 自动化设置和启动。
- Flask REST API: 以编程方式优化 EA,具有用于运行、监控和保存结果的端点。
- MCP 服务器: 用于交易、优化和结果检索的统一接口。
- 自动化文档: 优化结果保存为清晰的 HTML 和 Markdown 报告,每个 EA 对应一个报告。
- Git 版本控制: 所有代码和配置从一开始就进行版本控制。
快速开始
1. Distrobox 容器设置
要组装并进入 Distrobox 容器,请从项目根目录运行以下命令:
distrobox-assemble create --file src/mt5.ini -R
distrobox-enter mt5
- 有关完整的自动化 Distrobox 配置,请参见
src/mt5.ini
。 - 在容器创建时,将安装和配置以下内容:
- Wine、MT5、Python3、pip、Flask、MetaTrader5、pandas、jinja2、git 以及所有必需的工具。
- Flask API 会自动启动。
- 初始化一个 git 仓库并提交所有文件。
2. Flask REST API
- 位于
src/mt5_flask_api.py
。 - 可以从主机访问 API,地址为 http://localhost:5000(默认情况下发布端口 5000;请参见
src/mt5.ini
)。 - 示例:从您的主机系统测试 API:
curl http://localhost:5000/optimization_status/some-id
- 端点:
POST /optimize
: 启动优化运行。GET /optimization_status/<id>
: 检查优化状态。GET /optimization_results/<id>
: 获取结果。POST /save_results
: 将结果保存为 HTML/Markdown/CSV/JSON。
- 结果保存到
~/mt5-dev/result/manual/tuning/<EA_NAME>_tuning.html
和.md
。
3. MCP 服务器
- 有关 MCP 服务器的实现,请参见
src/mt5-server.ts
。 - 工具包括:
- 交易操作(get_account_info、create_order 等)
- 优化操作(run_optimization、get_optimization_status、get_optimization_results、save_optimization_results)
4. 使用示例
- 启动容器(Distrobox 将运行所有设置并启动 Flask API)。
- 使用 MCP 服务器触发优化并生成报告。
- 打开
~/mt5-dev/result/manual/tuning/
中的 HTML/Markdown 报告,以获得清晰的概览。
工作目录 & 配置
默认情况下,所有日志、数据、结果和输出都存储在 ~/mt5-dev
中,以实现可移植性和一致性。
要覆盖本地开发的任何配置值,请将 src/mt5.ini
复制到 src/mt5-dev.ini
并根据需要进行自定义。
src/mt5-dev.ini
文件会被 git 忽略,不会被跟踪或推送。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。