mcpField
M
MetaTrader 5 MCP Server

MetaTrader 5 MCP Server

本地服务
pypi.org金融数据238今天更新

关于 MetaTrader 5 MCP Server

MetaTrader 5 MCP Server 是面向 MetaTrader 5 交易平台的 MCP 服务,供 AI 助手访问行情数据、执行交易操作并分析交易历史。适合需要通过 AI 辅助外汇或交易分析的用户。

主要功能

  1. 01连接 MetaTrader 5 终端与交易账户
  2. 02获取品种、K线和逐笔报价数据
  3. 03下单、查询持仓与挂单
  4. 04查询历史订单与成交记录

适用场景

  1. 01让 AI 助手查询品种行情与历史K线
  2. 02通过自然语言检查并提交交易订单
  3. 03分析一段时间内的交易历史

MCP 相关

该项目是 MCP 服务,将 MetaTrader 5 的连接、行情、交易和历史查询功能以工具与资源的形式提供给 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"metatrader5-server": {
"command": "uvx",
"args": [
"mcp-metatrader5-server"
]
}
}
}
启动命令uvx mcp-metatrader5-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-metatrader5-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

向 DeepWiki 提问

MseeP.ai 安全评估徽章

codecov

PyPI 版本

MetaTrader 5 MCP 服务

一个适用于 MetaTrader 5 的模型上下文协议(MCP)服务,可让 AI 助手与 MetaTrader 5 平台交互,进行交易和市场数据分析。文档

功能

  • 连接到 MetaTrader 5 终端
  • 访问市场数据(交易品种、报价、行情跳动)
  • 下单并管理交易
  • 分析交易历史记录
  • 通过模型上下文协议与 AI 助手集成

安装

从 PyPI 安装
uvx --from mcp-metatrader5-server mt5mcp
从源代码安装
git clone https://github.com/Qoyyuum/mcp-metatrader5-server.git
cd mcp-metatrader5-server
uv sync
uv run mt5mcp

要求

  • uv(推荐)或 pip
  • Python 3.11 或更高版本
  • MetaTrader 5 终端,已安装在 Windows 上
  • MetaTrader 5 账户(模拟或真实账户)

用法

快速开始

默认情况下,服务以 stdio 模式运行,供 Claude Desktop 等 MCP 客户端使用:

uv run mt5mcp
开发模式(HTTP)

如需使用 HTTP 传输进行测试,请创建 .env 文件:

MT5_MCP_TRANSPORT=http
MT5_MCP_HOST=127.0.0.1
MT5_MCP_PORT=8000

然后运行:

uv run mt5mcp

服务将在 http://127.0.0.1:8000 启动

为 MCP 客户端安装
方法 1:使用 uvx(最简单——无需安装)⭐

将以下配置添加到 MCP 客户端的配置文件中:

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-metatrader5-server": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Qoyyuum/mcp-metatrader5-server",
        "mt5mcp"
      ]
    }
  }
}
方法 2:使用 FastMCP 安装(推荐)
git clone https://github.com/Qoyyuum/mcp-metatrader5-server
cd mcp-metatrader5-server

通过 git 克隆仓库后,运行以下命令:

对于 MCP JSON 格式

uv run fastmcp install mcp-json src/mcp_mt5/main.py

对于 Claude Desktop

uv run fastmcp install claude-desktop src/mcp_mt5/main.py

对于 Claude Code

uv run fastmcp install claude-code src/mcp_mt5/main.py

对于 Cursor

uv run fastmcp install cursor src/mcp_mt5/main.py

对于 Gemini CLI

uv run fastmcp install gemini-cli src/mcp_mt5/main.py
方法 3:手动配置

将以下内容添加到 claude_desktop_config.json 或其他大模型配置文件中:

{
  "mcpServers": {
    "mcp-metatrader5-server": {
      "command": "uvx",
      "args": [
        "--from",
        "mcp-metatrader5-server",
        "mt5mcp"
      ]
    }
  }
}

API 参考

连接管理
  • initialize():初始化 MT5 终端
  • login(account, password, server):登录交易账户
  • shutdown():关闭与 MT5 终端的连接
市场数据函数
  • get_symbols():获取所有可用交易品种
  • get_symbols_by_group(group):按组获取交易品种
  • get_symbol_info(symbol):获取特定交易品种的信息
  • get_symbol_info_tick(symbol):获取某交易品种的最新行情跳动
  • copy_rates_from_pos(symbol, timeframe, start_pos, count):从特定位置获取 K 线柱
  • copy_rates_from_date(symbol, timeframe, date_from, count):从特定日期获取 K 线柱
  • copy_rates_range(symbol, timeframe, date_from, date_to):获取指定日期范围内的 K 线柱
  • copy_ticks_from_pos(symbol, start_pos, count):从特定位置获取行情跳动
  • copy_ticks_from_date(symbol, date_from, count):从特定日期获取行情跳动
  • copy_ticks_range(symbol, date_from, date_to):获取指定日期范围内的行情跳动
交易函数
  • order_send(request):向交易服务发送订单
  • order_check(request):检查是否可以使用指定参数下单
  • positions_get(symbol, group):获取未平仓头寸
  • positions_get_by_ticket(ticket):根据票号获取未平仓头寸
  • orders_get(symbol, group):获取活动订单
  • orders_get_by_ticket(ticket):根据票号获取活动订单
  • history_orders_get(symbol, group, ticket, position, from_date, to_date):从历史记录中获取订单
  • history_deals_get(symbol, group, ticket, position, from_date, to_date):从历史记录中获取成交记录

示例工作流

连接并获取市场数据
# Initialize MT5
initialize()

# Log in to your trading account
login(account=123456, password="your_password", server="your_server")

# Get available symbols
symbols = get_symbols()

# Get recent price data for EURUSD
rates = copy_rates_from_pos(symbol="EURUSD", timeframe=15, start_pos=0, count=100)

# Shut down the connection
shutdown()
下单交易
# Initialize and log in
initialize()
login(account=123456, password="your_password", server="your_server")

# Create an order request
request = OrderRequest(
    action=mt5.TRADE_ACTION_DEAL,
    symbol="EURUSD",
    volume=0.1,
    type=mt5.ORDER_TYPE_BUY,
    price=mt5.symbol_info_tick("EURUSD").ask,
    deviation=20,
    magic=123456,
    comment="Buy order",
    type_time=mt5.ORDER_TIME_GTC,
    type_filling=mt5.ORDER_FILLING_IOC
)

# Send the order
result = order_send(request)

# Shut down the connection
shutdown()

资源

该服务提供以下资源,帮助 AI 助手了解如何使用 MetaTrader 5 API:

  • mt5://getting_started:使用 MetaTrader 5 API 的基本工作流
  • mt5://trading_guide:下单和管理交易的指南
  • mt5://market_data_guide:访问和分析市场数据的指南
  • mt5://order_types:订单类型信息
  • mt5://order_filling_types:订单成交类型信息
  • mt5://order_time_types:订单有效时间类型信息
  • mt5://trade_actions:交易请求操作信息

提示词

该服务提供以下提示词,帮助 AI 助手与用户互动:

  • connect_to_mt5(account, password, server):连接 MetaTrader 5 并登录
  • analyze_market_data(symbol, timeframe):分析特定交易品种的市场数据
  • place_trade(symbol, order_type, volume):针对特定交易品种下单
  • manage_positions():管理未平仓头寸
  • analyze_trading_history(days):分析交易历史

开发

项目结构
mcp-metatrader5-server/
├── src/
│   └── mcp_mt5/
│       ├── __init__.py      # Entry point with main()
│       ├── main.py          # FastMCP server with all tools
│       └── test_client.py   # Test client for development
├── docs/
│   ├── getting_started.md
│   ├── market_data_guide.md
│   ├── trading_guide.md
│   └── publishing.md
├── .env                     # Environment configuration (create from .env.example)
├── README.md
├── pyproject.toml           # Project metadata (using hatchling)
└── uv.lock                  # Dependency lock file
构建软件包

使用 uv(推荐):

uv build

这将在 dist/ 目录中创建 wheel 和源代码分发包。

发布到 PyPI

使用 uv:

# Build first
uv build

# Publish to PyPI
uv publish

# Or publish to TestPyPI first
uv publish --publish-url https://test.pypi.org/legacy/

许可证

MIT

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。