
](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
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_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-servergit克隆repo后,运行以下命令:
对于MCP JSON格式
uv run fastmcp install mcp-json src/mcp_mt5/main.py适用于克劳德桌面
uv run fastmcp install claude-desktop src/mcp_mt5/main.py克劳德代码
uv run fastmcp install claude-code src/mcp_mt5/main.py对于光标
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()资源
服务器提供以下资源,帮助人工智能助手了解如何使用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这将在 dist/ 目录。
发布到PyPI
使用紫外线:
# Build first
uv build
# Publish to PyPI
uv publish
# Or publish to TestPyPI first
uv publish --publish-url https://test.pypi.org/legacy/许可证
麻省理工学院
