Skip to main content
Glama
ariadng

metatrader-mcp-server

PyPI version Python 3.10+ License: MIT

让 AI 助手使用自然语言为您交易

MetaTrader MCP 服务器


📑 目录


Related MCP server: Financial Datasets MCP Server

🌟 这是什么?

MetaTrader MCP 服务器 是一个连接 AI 助手(如 Claude、ChatGPT)与 MetaTrader 5 交易平台的桥梁。无需点击按钮,您只需告诉您的 AI 助手要做什么:

“查看我的账户余额” “买入 0.01 手 EUR/USD” “平掉所有盈利的仓位”

AI 会理解您的请求并自动在 MetaTrader 5 上执行。

工作原理

You → AI Assistant → MCP Server → MetaTrader 5 → Your Trades

✨ 功能特性

  • 🗣️ 自然语言交易 - 用简单的英语与 AI 对话即可执行交易

  • 🤖 多 AI 支持 - 适用于 Claude Desktop、ChatGPT(通过 Open WebUI)等

  • 📊 全面市场访问 - 获取实时价格、历史数据和品种信息

  • 💼 完整的账户控制 - 查看余额、净值、保证金和交易统计数据

  • ⚡ 订单管理 - 通过简单指令下单、修改和关闭订单

  • 🔒 安全 - 所有凭据均保留在您的本地机器上

  • 🌐 灵活的接口 - 可作为 MCP 服务器、REST API 或 WebSocket 流使用

  • 📖 文档完善 - 提供全面的指南和示例

🎯 适用人群

  • 交易者:希望使用 AI 实现交易自动化

  • 开发者:构建交易机器人或分析工具

  • 分析师:需要快速访问市场数据

  • 任何人:对将 AI 与金融市场结合感兴趣的人

⚠️ 重要免责声明

请仔细阅读:

交易金融工具涉及巨大的亏损风险。本软件按“原样”提供,开发者对使用本软件产生的任何交易损失、收益或后果不承担任何责任

使用本软件即表示您承认:

  • 您了解金融交易的风险

  • 您对通过本系统执行的所有交易负责

  • 您不会因任何结果而追究开发者的责任

  • 您自行承担使用本软件的风险

这不是财务建议。请务必负责任地进行交易。


📋 先决条件

在开始之前,请确保您具备:

  1. Python 3.10 或更高版本 - 在此下载

  2. MetaTrader 5 终端 - 在此下载

  3. MT5 交易账户 - 模拟或真实账户凭据

    • 登录账号

    • 密码

    • 服务器名称(例如:“MetaQuotes-Demo”)

🚀 快速入门

第 1 步:安装软件包

打开您的终端或命令提示符并运行:

pip install metatrader-mcp-server

第 2 步:启用自动交易

  1. 打开 MetaTrader 5

  2. 转到 工具选项

  3. 点击 智能交易系统 选项卡

  4. 勾选 允许自动交易

  5. 点击 确定

第 3 步:选择您的接口

根据您的使用方式选择一种:

选项 A:与 Claude Desktop 一起使用(本地 STDIO)

  1. 找到您的 Claude Desktop 配置文件:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. 打开文件并添加此配置:

{
  "mcpServers": {
    "metatrader": {
      "command": "metatrader-mcp-server",
      "args": [
        "--login",     "YOUR_MT5_LOGIN",
        "--password",  "YOUR_MT5_PASSWORD",
        "--server",    "YOUR_MT5_SERVER",
        "--transport", "stdio"
      ]
    }
  }
}

可选:指定自定义 MT5 终端路径

如果您的 MT5 终端安装在非标准位置,请添加 --path 参数:

{
  "mcpServers": {
    "metatrader": {
      "command": "metatrader-mcp-server",
      "args": [
        "--login",     "YOUR_MT5_LOGIN",
        "--password",  "YOUR_MT5_PASSWORD",
        "--server",    "YOUR_MT5_SERVER",
        "--transport", "stdio",
        "--path",      "C:\\Program Files\\MetaTrader 5\\terminal64.exe"
      ]
    }
  }
}
  1. YOUR_MT5_LOGINYOUR_MT5_PASSWORDYOUR_MT5_SERVER 替换为您的实际凭据

  2. 重启 Claude Desktop

  3. 开始聊天!尝试:“我的账户余额是多少?”

选项 B:与 Open WebUI 一起使用(适用于 ChatGPT 和其他 LLM)

  1. 启动 HTTP 服务器:

metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 0.0.0.0 --port 8000

可选:指定自定义 MT5 终端路径

如果您的 MT5 终端安装在非标准位置,请添加 --path 参数:

metatrader-http-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --path "C:\Program Files\MetaTrader 5\terminal64.exe" --host 0.0.0.0 --port 8000
  1. 在浏览器中打开 http://localhost:8000/docs 查看 API 文档

  2. 在 Open WebUI 中:

    • 转到 设置工具

    • 点击 添加工具服务器

    • 输入 http://localhost:8000

    • 保存

  3. 现在您可以在 Open WebUI 聊天中使用交易工具了!

选项 C:通过 WebSocket 获取实时行情

通过 WebSocket 流式传输实时报价数据(买价、卖价、点差、成交量),用于仪表板、机器人或监控:

metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER

使用任何 WebSocket 客户端连接:

websocat ws://localhost:8765

您将收到一条 connected 消息,随后是作为 JSON 的持续报价更新。详情请参阅 WebSocket 行情服务器

选项 D:远程 MCP 服务器 (SSE)

在 Windows VPS(安装了 MT5 的地方)上运行 MCP 服务器,并从 Claude Desktop 或 Claude Code 远程连接。

服务器端(在 Windows VPS 上):

metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER

默认情况下,这会在 0.0.0.0:8080 上启动 SSE 服务器。使用 --host--port 进行自定义:

metatrader-mcp-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER --host 127.0.0.1 --port 9000

客户端(您本地机器上的 Claude Desktop 配置):

{
  "mcpServers": {
    "metatrader": {
      "url": "http://VPS_IP:8080/sse"
    }
  }
}

VPS_IP 替换为您服务器的 IP 地址。

安全警告:MCP 协议不包含身份验证。当通过网络暴露 SSE 服务器时,请使用防火墙按 IP 限制访问,或将其置于带有身份验证的反向代理之后,或使用 SSH 隧道。


🤖 交易助手技能 (Claude Code / Claude Desktop)

claude-skill/ 目录中包含一个预构建的 交易终端助手 技能。它为 Claude 提供了关于所有 32 个交易工具、输出格式和 MetaTrader 5 领域专业知识的结构化知识。

为 Claude Code 安装

选项 1:符号链接(推荐)

从标准 Claude Code 技能目录创建到 claude-skill/ 的符号链接:

cd metatrader-mcp-server
mkdir -p .claude
ln -s ../claude-skill .claude/skills

该技能将被自动发现并作为 /trading 提供。

选项 2:复制

将技能文件复制到 Claude Code 技能目录:

cd metatrader-mcp-server
mkdir -p .claude/skills
cp -r claude-skill/trading .claude/skills/trading

为 Claude Desktop 安装

对于 Claude Desktop,将技能复制到全局 Claude 技能目录:

# macOS
mkdir -p ~/Library/Application\ Support/Claude/skills
cp -r claude-skill/trading ~/Library/Application\ Support/Claude/skills/trading

# Windows
mkdir "%APPDATA%\Claude\skills"
xcopy /E claude-skill\trading "%APPDATA%\Claude\skills\trading\"

该技能的作用

  • 直接执行:请求时立即执行交易,无需额外确认

  • 工作流:知道如何为复杂操作链接工具(例如,下市价单然后设置止损/止盈)

  • 格式化:以整洁的终端风格表格呈现账户数据、仓位、订单和价格

  • 领域知识:了解 MT5 订单类型、时间周期、品种格式和成交模式

使用方法

安装后,使用 /trading 调用,或者自然地询问与交易相关的问题:

/trading
> Show me my account dashboard
> Buy 0.1 lots of EURUSD with SL at 1.0800
> Close all profitable positions
> Show me GBPUSD H4 candles

📡 WebSocket 行情服务器

WebSocket 行情服务器将实时报价数据从 MetaTrader 5 流式传输到任何 WebSocket 客户端。它非常适合实时仪表板、算法交易前端和实时监控。

启动服务器

metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVER

服务器默认在 ws://0.0.0.0:8765 上启动。

自定义

metatrader-quote-server \
  --login YOUR_LOGIN \
  --password YOUR_PASSWORD \
  --server YOUR_SERVER \
  --host 127.0.0.1 \
  --port 9000 \
  --symbols "EURUSD,GBPUSD,XAUUSD" \
  --poll-interval 200

配置

标志

环境变量

默认值

描述

--host

QUOTE_HOST

0.0.0.0

绑定的主机

--port

QUOTE_PORT

8765

绑定的端口

--symbols

QUOTE_SYMBOLS

XAUUSD,USOIL,GBPUSD,USDJPY,EURUSD,BTCUSD

要流式传输的逗号分隔品种

--poll-interval

QUOTE_POLL_INTERVAL_MS

100

报价轮询间隔(毫秒)

CLI 标志优先于环境变量,环境变量优先于默认值。

消息格式

连接时 — 服务器发送带有品种列表的 connected 消息,随后是任何缓存的报价:

{"type": "connected", "symbols": ["XAUUSD", "EURUSD", "GBPUSD"], "poll_interval_ms": 100}

报价更新 — 每当买价、卖价或成交量发生变化时发送:

{"type": "tick", "symbol": "XAUUSD", "bid": 2345.67, "ask": 2345.89, "spread": 0.22, "volume": 1234, "time": "2026-03-14T10:30:45+00:00"}

错误 — 如果无法获取品种,则发送:

{"type": "error", "symbol": "INVALID", "message": "Symbol not found or data unavailable"}

示例:使用 Python 连接

import asyncio
import json
from websockets.asyncio.client import connect

async def main():
    async with connect("ws://localhost:8765") as ws:
        async for message in ws:
            tick = json.loads(message)
            if tick["type"] == "tick":
                print(f"{tick['symbol']}: {tick['bid']}/{tick['ask']} (spread: {tick['spread']})")

asyncio.run(main())
A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ariadng/metatrader-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server