MetaTrader 5 MCP 部署标准化流程

2026-07-28 100℃

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 服务器在启动时加载配置

 

 MT5_1.jpg

MT5_2.jpg

MT5_3.jpg

 

配置示例:

  端口: 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 实战经验整理

 

 

 

本文档作者为 汇客-黑色 ,转载请注明出处,谢谢。

非特殊说明,本博所有文章均为博主原创。