Token导航 LogoToken导航TokenDH.com
MetaTrader MCP Server logo
搜索检索stdio官方级别未说明来源级核验

MetaTrader MCP Server

MCP Server

Model Context Protocol (MCP) to enable AI LLMs to trade using MetaTrader platform

工具数

25

提示词数

0

GitHub Stars

240

资源数

0
PythonClaude金融数据Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ariadng

提供方

ariadng

最后核验

2026/5/18 02:17

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install metatrader-mcp-server

详细介绍

MetaTrader MCP Server

](https://pypi.org/project/metatrader-mcp-server/) ![Python 3.10+](https://www.python.org/downloads/) ![License: MIT](https://opensource.org/licenses/MIT)

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

MetaTrader MCP Server

______________________________________________________________________

📑 目录

______________________________________________________________________

🌟 这是什么?

MetaTrader MCP服务器 是连接人工智能助手(如Claude、ChatGPT)和MetaTrader 5交易平台的桥梁。你可以简单地告诉你的AI助手该做什么,而不是点击按钮:

“显示我的账户余额” “购买0.01手欧元/美元” “关闭所有盈利头寸”

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

运作原理

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

✨ 特性

  • 🗣️ 自然语言交易 -用简单的英语与人工智能交谈以执行交易
  • 🤖 多AI支持 -适用于Claude Desktop、ChatGPT(通过Open WebUI)等
  • 📊 完全市场准入 -获取实时价格、历史数据和交易品种信息
  • 💼 完全账户控制 -检查余额、权益、保证金和交易统计数据
  • ⚡ 订单管理 -使用简单的命令下达、修改和关闭订单
  • 🔒 安全 -所有凭据都保留在您的计算机上
  • 🌐 灵活的界面 -用作MCP服务器、REST API或WebSocket流
  • 📖 证据充分的 -综合指南和示例

🎯 这是给谁的?

  • 交易者 希望使用人工智能实现交易自动化的人
  • 开发者 构建交易机器人或分析工具
  • 分析师 需要快速访问市场数据的人
  • 任何人 有兴趣将人工智能与金融市场相结合

⚠️ 重要免责声明

请仔细阅读:

交易金融工具涉及重大损失风险。此软件按原样提供,开发人员接受 无责任 对于使用本软件的任何交易损失、收益或后果。

通过使用此软件,您承认:

  • 你了解金融交易的风险
  • 您负责通过此系统执行的所有交易
  • 您不会让开发人员对任何结果负责
  • 您使用此软件的风险由您自行承担

这不是财务建议。始终以负责任的态度进行交易。

______________________________________________________________________

📋 先决条件

在开始之前,请确保您已经:

  1. Python 3.10或更高版本 - 点击此处下载
  2. MetaTrader 5终端 - 点击此处下载
  3. MT5交易账户 -模拟或真实账户凭据

- 登录号码 - 密码 - 服务器名称(例如,“MetaQuotes-Demo”)

🚀 快速开始

步骤1:安装软件包

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

pip install metatrader-mcp-server

步骤2:启用算法交易

  1. 打开MetaTrader 5
  2. 首选 ToolsOptions
  3. 点击 Expert Advisors 标签
  4. 勾选以下框 Allow algorithmic trading
  5. 点击 OK

步骤3:选择您的界面

根据您想如何使用它来选择一个:

选项A:与克劳德桌面(本地STDIO)一起使用

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

- 视窗: %APPDATA%\Claude\claude_desktop_config.json - 苹果电脑: ~/Library/Application Support/Claude/claude_desktop_config.json

  1. 打开文件并添加此配置:
{
  "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_LOGIN, YOUR_MT5_PASSWORD,以及 YOUR_MT5_SERVER 使用您的真实凭证
  1. 重新启动克劳德桌面
  1. 开始聊天!尝试: *“我的账户余额是多少?”*

选项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文档
  1. 在Open WebUI中:

- 首选 设置工具 - 点击 添加工具服务器 - 进入 http://localhost:8000 - 保存

  1. 现在,您可以在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)

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

服务器端 (在Windows VPS上):

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

这将启动SSE服务器 0.0.0.0:8080 默认情况下。自定义 --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隧道。

______________________________________________________________________

🤖 交易助理技能(克劳德代码/克劳德桌面)

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

安装Claude代码

选项1:Symlink(推荐)

从标准的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\"

该技能的作用是什么

  • 直接执行:收到请求后立即执行交易,无需额外确认
  • 工作流:知道如何为复杂的操作链接工具(例如,下市场订单然后设置SL/TP)
  • 格式化:在干净的终端样式表中显示帐户数据、头寸、订单和价格
  • 领域知识:了解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

配置

标志环境变量默认值描述
--hostQUOTE_HOST0.0.0.0要绑定的主机
--portQUOTE_PORT8765要绑定的端口
--symbolsQUOTE_SYMBOLSXAUUSD,USOIL,GBPUSD,USDJPY,EURUSD,BTCUSD要流式传输的逗号分隔符号
--poll-intervalQUOTE_POLL_INTERVAL_MS100勾选轮询间隔(毫秒)

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())

设计说明

  • 变化检测:仅在出价、询问或音量实际发生变化时进行广播,以减少不必要的流量。
  • 迟到的加入者:新客户端在连接时立即收到缓存的标记,因此他们不必等待下一次更改。
  • MT5螺纹安全:所有MT5 SDK调用都通过单个线程执行器进行序列化,以防止并发访问问题。
  • 多个客户端:任意数量的WebSocket客户端都可以同时连接。

______________________________________________________________________

💡 用法示例

使用克劳德桌面

配置后,您可以自然聊天:

检查您的帐户:

您:“显示我的帐户信息” 克劳德: *返回余额、股权、保证金、杠杆等。*

获取市场数据:

你:“欧元/美元的当前价格是多少?” 克劳德: *显示出价、要价和点差*

进行交易:

你:“买入0.01手英镑/美元,止损1.2500,止盈1.2700” 克劳德: *执行交易并确认*

管理职位:

你:“关闭我所有亏损的头寸” 克劳德: *关闭头寸并报告结果*

分析历史记录:

你:“显示我上周欧元/美元的所有交易” 克劳德: *以表格形式返回交易历史记录*

使用HTTP API

# Get account info
curl http://localhost:8000/api/v1/account/info

# Get current price
curl "http://localhost:8000/api/v1/market/price?symbol_name=EURUSD"

# Place a market order
curl -X POST http://localhost:8000/api/v1/order/market \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "EURUSD",
    "volume": 0.01,
    "type": "BUY",
    "stop_loss": 1.0990,
    "take_profit": 1.1010
  }'

# Get all open positions
curl http://localhost:8000/api/v1/positions

# Close a specific position
curl -X DELETE http://localhost:8000/api/v1/positions/12345

作为Python库

from metatrader_client import MT5Client

# Connect to MT5
config = {
    "login": 12345678,
    "password": "your_password",
    "server": "MetaQuotes-Demo"
}
client = MT5Client(config)
client.connect()

# Get account statistics
stats = client.account.get_trade_statistics()
print(f"Balance: ${stats['balance']}")
print(f"Equity: ${stats['equity']}")

# Get current price
price = client.market.get_symbol_price("EURUSD")
print(f"EUR/USD Bid: {price['bid']}, Ask: {price['ask']}")

# Place a market order
result = client.order.place_market_order(
    type="BUY",
    symbol="EURUSD",
    volume=0.01,
    stop_loss=1.0990,
    take_profit=1.1010
)
print(result['message'])

# Close all positions
client.order.close_all_positions()

# Disconnect
client.disconnect()

______________________________________________________________________

📚 可用操作

账户管理

  • get_account_info -获取余额、股权、利润、保证金水平、杠杆、货币

市场数据

  • get_symbols -列出所有可用的交易品种
  • get_symbol_price -获取某个交易品种的当前买入价/卖出价
  • get_candles_latest -获取最近的价格蜡烛(OHLCV数据)
  • get_candles_by_date -获取某个日期范围的历史蜡烛
  • get_symbol_info -获取详细的符号信息

订单执行

  • place_market_order -执行即时买入/卖出订单
  • place_pending_order -下达限价/止损订单以备将来执行
  • modify_position -更新止损或止盈
  • modify_pending_order -修改待定订单参数

职位管理

  • get_all_positions -查看所有空缺职位
  • get_positions_by_symbol -按交易对筛选头寸
  • get_positions_by_id -获取具体职位详细信息
  • close_position -关闭特定位置
  • close_all_positions -关闭所有未结头寸
  • close_all_positions_by_symbol -关闭某个符号的所有位置
  • close_all_profitable_positions -只关闭获胜交易
  • close_all_losing_positions -只关闭亏损的交易

待处理订单

  • get_all_pending_orders -列出所有待处理订单
  • get_pending_orders_by_symbol -按符号筛选待处理订单
  • cancel_pending_order -取消特定的待处理订单
  • cancel_all_pending_orders -取消所有待处理订单
  • cancel_pending_orders_by_symbol -取消某个交易品种的待处理订单

交易历史

  • get_deals -获取历史已完成交易
  • get_orders -获取历史订单记录

______________________________________________________________________

🔧 高级配置

使用环境变量

创建一个 .env 文件:

LOGIN=12345678
PASSWORD=your_password
SERVER=MetaQuotes-Demo

# Optional: Specify custom MT5 terminal path (auto-detected if not provided)
# MT5_PATH=C:\Program Files\MetaTrader 5\terminal64.exe

然后在没有参数的情况下启动服务器:

metatrader-http-server

服务器将自动从以下位置加载凭据 .env 文件。

MCP传输配置

MCP服务器支持多种传输模式:

标志环境变量默认值描述
--transportMCP_TRANSPORTsse运输类型: sse, stdio, streamable-http
--hostMCP_HOST0.0.0.0要绑定的主机(仅限SSE/HTTP)
--portMCP_PORT8080要绑定的端口(仅限SSE/HTTP)

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

自定义端口和主机(HTTP API)

metatrader-http-server --host 127.0.0.1 --port 9000

连接参数

MT5客户端支持其他配置:

config = {
    "login": 12345678,
    "password": "your_password",
    "server": "MetaQuotes-Demo",
    "path": None,               # Path to MT5 terminal executable (default: auto-detect)
    "timeout": 60000,           # Connection timeout in milliseconds (default: 60000)
    "portable": False,          # Use portable mode (default: False)
    "max_retries": 3,           # Maximum connection retry attempts (default: 3)
    "backoff_factor": 1.5,      # Delay multiplier between retries (default: 1.5)
    "cooldown_time": 2.0,       # Seconds to wait between connections (default: 2.0)
    "debug": True               # Enable debug logging (default: False)
}

配置选项:

  • 登录 (int,必填):您的MT5帐户登录号
  • 密码 (str,必填):您的MT5帐户密码
  • 服务器 (str,必填):MT5服务器名称(例如,“MetaQuotes-Demo”)
  • 路径 (str,可选):MT5终端可执行文件的完整路径。如果未指定,客户端将自动搜索标准安装目录
  • 超时 (int,可选):连接超时(毫秒)。默认值:60000(60秒)
  • 便携的 (bool,可选):为MT5终端启用便携模式。默认值:False
  • 最大重试次数 (int,可选):连接重试尝试的最大次数。默认值:3
  • 退避因子 (浮点数,可选):重试延迟的指数退避因子。默认值:1.5
  • 冷却时间 (float,可选):连接尝试之间的最短时间(秒)。默认值:2.0
  • 调试 (bool,可选):启用详细的调试日志以进行故障排除。默认值:False

______________________________________________________________________

🗺️ 路线图

功能状态
MetaTrader 5连接✅ 完成
Python客户端库✅ 完成
MCP服务器✅ 完成
克劳德桌面集成✅ 完成
HTTP/REST API服务器✅ 完成
打开WebUI集成✅ 完成
OpenAPI文档✅ 完成
PyPI包✅ 已发布
苏格兰和南方能源公司运输支持✅ 完成
谷歌ADK集成🚧 进行中
WebSocket报价服务器✅ 完成
Docker容器📋 计划中

______________________________________________________________________

🛠️ 发展

设置开发环境

# Clone the repository
git clone https://github.com/ariadng/metatrader-mcp-server.git
cd metatrader-mcp-server

# Install in development mode
pip install -e .

# Install development dependencies
pip install pytest python-dotenv

# Run tests
pytest tests/

项目结构

metatrader-mcp-server/
├── src/
│   ├── metatrader_client/      # Core MT5 client library
│   │   ├── account/            # Account operations
│   │   ├── connection/         # Connection management
│   │   ├── history/            # Historical data
│   │   ├── market/             # Market data
│   │   ├── order/              # Order execution
│   │   └── types/              # Type definitions
│   ├── metatrader_mcp/         # MCP server implementation
│   ├── metatrader_openapi/     # HTTP/REST API server
│   └── metatrader_quote/       # WebSocket quote streamer
├── tests/                      # Test suite
├── docs/                       # Documentation
└── pyproject.toml             # Project configuration

______________________________________________________________________

🤝 贡献

欢迎投稿!以下是您可以提供帮助的方式:

  1. 报告Bug - 打开一个问题
  2. 建议功能 -在问题中分享你的想法
  3. 提交拉取请求 -修复错误或添加功能
  4. 改进文档 -帮助使文档更清晰
  5. 分享示例 -展示你是如何使用它的

贡献指南

  • 分叉存储库
  • 创建要素分支(git checkout -b feature/amazing-feature)
  • 进行更改
  • 编写或更新测试
  • 确保测试通过(pytest)
  • 提交您的更改(git commit -m 'Add amazing feature')
  • 推到分支(git push origin feature/amazing-feature)
  • 打开拉取请求

______________________________________________________________________

📖 文档

______________________________________________________________________

🆘 获取帮助

常见问题

“连接失败”

  • 确保MT5终端正在运行
  • 检查是否启用了算法交易
  • 验证您的登录凭据是否正确

“找不到模块”

  • 请确保您已安装该软件包: pip install metatrader-mcp-server
  • 检查你的Python版本是3.10或更高

“订单执行失败”

  • 验证您的经纪商上是否存在该符号
  • 检查市场是否开放
  • 确保你有足够的利润

______________________________________________________________________

📝 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

______________________________________________________________________

🙏 致谢

______________________________________________________________________

📊 项目统计

  • 版本: 0.5.1
  • python: 3.10+
  • 许可证:MIT
  • 状态:积极发展

______________________________________________________________________

制作❤️ 通过 Aria Dhanang

⭐ 如果你觉得这个仓库有用,就把它标上!

目录标签

目录标签

PythonClaude金融数据research-and-datafinanceaitradingmcpquantitative-financeinvestmentmetatraderAI交易本地部署MetaTrader5金融自动化自然语言处理市场数据

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

25

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP