](https://mseep.ai/app/qoyyuum-mcp-metatrader5-server)

](https://pypi.org/project/mcp-metatrader5-server/)
MetaTrader 5 MCP 服务器
MetaTrader 5的模型上下文协议(MCP)服务器,允许AI助手与MetaTrader 5平台进行交互,以进行交易和市场数据分析。 文档
特点/功能
- 连接到MetaTrader 5终端
- 访问市场数据(符号、汇率、交易单位变动)
- 下单并管理交易
- 分析交易历史
- 通过模型上下文协议与AI助手集成
安装
从PyPI(Python软件包索引)
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要求
- 紫外线 (推荐使用)或 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克隆仓库后,运行以下命令:
对于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为克劳德·科德(或根据具体语境,可译为“致克劳德·科德”或“为克劳德·科德而作”等)
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 或者任何大型语言模型(LLM)配置文件:
{
"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)从特定位置获取条形图数据copy_rates_from_date(symbol, timeframe, date_from, count)获取特定日期的条形数据(或“获取特定日期的条”)copy_rates_range(symbol, timeframe, date_from, date_to)获取指定日期范围内的条目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 build这将在(指定目录/路径中)创建wheel包和源代码分发版 dist/ 目录。
发布到PyPI(Python Package Index)
使用紫外线(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)
致谢
- MetaQuotes 适用于MetaTrader 5平台
- FastMCP 用于MCP服务器的实现
