1. 概述
MT5 内置 MCP(Model Context Protocol)是 MetaQuotes 自 Build 6060 起引入的标准化接口,允许外部客户端通过 streamable HTTP 协议直连 MT5 终端,获取实时账户数据、执行交易操作、查询行情与K线。
当前终局架构:
MT5 (Windows VPS) ↔↔ MCP 直连 ↔↔ Linux(Windows同理适用) / QwenPaw(或其他智能体工具)
端口 22300 Bearer 密钥
优势:仅 3 个组件,无中间层,可实时查询,维护成本极低。
2. 前置条件
2.1 MT5 版本要求
MT5 客户端 Build 编号 ≥ 6060。( https://www.metatrader5.com/zh/releasenotes/terminal/2447 )
2.2 网络要求
|
项目 |
要求 |
备注 |
|
MT5 所在 Windows 主机 |
必须有公网 IP 或通过网关映射端口 |
VPS 通常直接拥有公网 IP |
|
客户端主机 |
可达 MT5 端口 |
例如访问 1.2.3.4:22300 |
|
Windows 防火墙 |
开放 MT5 MCP 端口 |
向内方向开放或允许入站 |
|
VPS 云防火墙 |
开放对应端口 |
AWS/Azure/商家控制面板 |
外部连接场景:
• Linux 客户端 → MT5 (Windows VPS):需配置 Windows 防火墙入站规则 + VPS 云防火墙
同一台 Windows 本地连接:只需 MT5 内置配置,无防火墙问题。
3. MT5 端设置(Windows)
3.1 开启 MCP 功能
1. 打开 MT5 终端
2. 工具 → 选项
3. 相关选项:
○ MCP选项卡, 勾选 启用内部服务器。
○ AI Assistant选项卡,交易选项框 选择 已启用 (启用交易权限,仅在需要交易权限时开启。若仅需查询则设置为禁用,此时为只读模式,更安全。)
○ EA交易选项卡,勾选 允许算法交易。
4. 设置端口号(例如 22300),如果公网使用则填写公网IP或者0.0.0.0
5. 设置认证 Token(强制)—— 建议生成强密码级别字符串
6. 点击 OK 保存
7. 重启 MT5 终端(必须)—— MCP 服务器在启动时加载配置



配置示例:
端口: 22300
URL: http://1.2.3.4:22300/mcp
注意:MCP 服务器的 URL 路径固定为 /mcp,不可自定义。
3.2 配置 Windows 防火墙
允许 MT5 MCP 端口的入站连接(以端口 22300 为例):
PowerShell(推荐):
New-NetFirewallRule -DisplayName "MT5 MCP" -Direction Inbound -Protocol TCP -LocalPort 22300 -Action Allow
netsh:
netsh advfirewall firewall add rule name="MT5 MCP" dir=in protocol=tcp localport=22300 action=allow
Windows Defender 防火墙图形界面:
○ 控制面板 → Windows Defender 防火墙 → 高级设置
○ 新建入站规则 → 端口 → TCP + 22300 → 允许连接
高级建议:限制来源 IP地址
若只有固定的客户端 IP,应在防火墙规则中指定允许的远程 IP,避免将 MCP 端口暴露到整个互联网。
3.3 VPS 云防火墙配置
若使用云服务商(如 AWS/Azure/Vultr 等),还需在云端安全组或网络防火墙中开放相应端口。
4. 连接验证(客户端)
本步骤为可选步骤,故障时测试使用更多。可直接看第5节。
4.1 确认端口可达
telnet 确认网络可达:
telnet 22300
连接成功时显示空白屏幕,Ctrl+] 退出
4.2 未带 Token(期待 401)
curl -v -X POST http://1.2.3.4:22300/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18",
"capabilities":{}}}'
期望结果:
401 Unauthorized —— MCP 服务器正常运行,认证生效。
4.3 带 Token完整握手
curl -v -X POST http://1.2.3.4:22300/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer " \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18",
"capabilities":{}}}'
期望响应:
{ "jsonrpc":"2.0", "id":1, "result":{
"protocolVersion":"2025-06-18",
"serverInfo":{"name":"MetaTrader 5 MCP"},
"capabilities":{"tools":true} }
}
注意保存响应中的 Mcp-Session-Id,后续请求需要使用。
4.4 获取工具列表
notifications/initialized + tools/list 需合并为 batch:
curl -X POST http://1.2.3.4:22300/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer " \
-H "Mcp-Session-Id: " \
-d '['
{"jsonrpc":"2.0","method":"notifications/initialized"},
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
]'
说明:
• streamable_http 下,必须以 batch 发送 initialized + 其他请求
• 每次独立的 HTTP 请求被视为新 session
• MT5 返回约 38 个工具:账户、持仓、交易、行情、回测
4.5 调用工具验证
curl -X POST http://1.2.3.4:22300/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer " \
-H "Mcp-Session-Id: " \
-d '{"jsonrpc":"2.0","id":3,
"method":"tools/call",
"params":{"name":"get_trading_account_info",
"arguments":{}}}'
5. QwenPaw 集成配置
MT5 MCP 添加十分方便,仅两步。
5.1 创建MCP配置
在 QwenPaw 工作区 - MCP设置页面点击添加,根据示例修改提交即可。
5.2 完整示例
{
"mcpServers": {
"mt5-ava-123456": {
"url": "http://1.2.3.4:22300/mcp",
"headers": {
"Authorization": "Bearer ******************************************"
}
}
}
}
6. 多终端部署
同一台 Windows 上多个 MT5 客户端需要独立配置 MCP。
6.1 配置步骤
8. 每个 MT5 客户端分别开启 MCP(见第 3.1 节)
9. 每个客户端使用不同的端口号(例如 22300/22301/22302)
10. 每个客户端设置独立的 Token
11. Windows 防火墙开放所有使用的端口
12. 在智能体工作区的MCP配置中为每个客户端创建新的配置(第5节)
6.2 配置示例(四个客户端)
|
驱动名称 |
端口 |
备注 |
|
mt5-exness-12345 |
22300 |
http://1.2.3.4:22300/mcp |
|
mt5-ava-23456 |
22301 |
http://1.2.3.4:22301/mcp |
|
mt5-ebc-34567 |
22302 |
http://1.2.3.4:22302/mcp |
|
mt5-ebc-45678 |
22303 |
http://1.2.3.4:22303/mcp |
7. 常见问题与排查
7.1 MCP 服务器无法启动
现象:MT5 启动后 MCP 端口未监听
排查步骤:
14. 确认 MT5 Build 编号≥6060
15. 确认 MCP选项卡 已勾选 启动内部服务器
16. 确认 MT5 已重启
17. netstat -ano | findstr : 确认端口是否已监听
7.2 连接被拒绝
现象:telnet 显示 Connection refused
可能原因:
• MT5 未启动或 MCP 服务器未加载
• 端口号不对
• 防火墙未开放
7.3 401 Unauthorized
处理:
• 确认 Authorization header 格式为 Bearer
• 确认 MT5 中配置的 Token 与客户端一致
• Token 不能包含换行符或额外空格
7.4 Session 失败或 tools/list 失败
处理:
• streamable_http 需要 notifications/initialized 后才能调用其他方法
• 必须以 batch 发送 initialized + 其他请求
• 每次独立 HTTP 请求被视为新 session
7.5 工具未出现在工具列表
处理:
• 确认 MT5 终端已开启 MCP
• 用 curl 直连 MT5 端口验证可达
• 若端口可达但工具未暴露,启新会话
7.6 交易操作被拒绝(Read-only)
处理:
• 确认 3.1节处的设置无误
• 重启 MT5后重试
• 只需查询时可保持只读模式(更安全)
8. 工具速查表
MT5 内置 MCP 提供约 38 个工具,核心工具分类:
8.1 账户与持仓
|
工具名 |
用途 |
|
get_trading_account_info |
账户信息(结余、净值、保证金等) |
|
get_trading_open_positions |
当前持仓列表 |
|
get_trading_history_positions |
历史持仓 |
|
get_trading_history_orders |
历史订单 |
8.2 行情与图表
|
工具名 |
用途 |
|
get_marketwatch_symbols |
Market Watch 品种列表 |
|
get_chart_history |
K线历史 |
|
get_chart_ticks |
Tick 历史 |
8.3 交易操作(需权限)
|
工具名 |
用途 |
|
trade_send_market_order |
市价单 |
|
trade_send_pending_order |
挂单 |
|
trade_close_single_position |
平单 |
|
trade_modify_sl_tp |
修改止损/止盈 |
|
trade_delete_order |
删除挂单 |
8.4 回测
|
工具名 |
用途 |
|
tester_run_backtest |
运行回测 |
|
tester_get_status |
回测状态查询 |
9. 附录
9.1 完整配置文件示例
{
"mcpServers": {
"mt5-ava-123456": {
"url": "http://1.2.3.4:22300/mcp",
"headers": {
"Authorization": "Bearer ******************************************"
}
}
}
}
9.2 curl 测试脚本 test_mcp.sh
#!/bin/bash
IP=
PORT=22300
TOKEN=
# Step 1: Initialize
curl -s -X POST http://$IP:$PORT/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18",
"capabilities":{}}}'
# Step 2: List tools (batch)
curl -s -X POST http://$IP:$PORT/mcp \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '['
{"jsonrpc":"2.0","method":"notifications/initialized"},
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
]'
9.3 文档版本历史
|
版本 |
日期 |
说明 |
|
v1.0 |
2026-07-28 |
基于 MetaTrader 5 (MT5) 内置MCP 实战经验整理 |
本文档作者为 汇客-黑色 ,转载请注明出处,谢谢。