metatrader-mcp-server
Позвольте ИИ-ассистентам торговать за вас, используя естественный язык

📑 Содержание
Related MCP server: Financial Datasets MCP Server
🌟 Что это такое?
MetaTrader MCP Server — это мост, соединяющий ИИ-ассистентов (таких как Claude, ChatGPT) с торговой платформой MetaTrader 5. Вместо того чтобы нажимать кнопки, вы можете просто сказать своему ИИ-ассистенту, что нужно сделать:
"Покажи баланс моего счета" "Купи 0.01 лота EUR/USD" "Закрой все прибыльные позиции"
ИИ понимает ваш запрос и автоматически выполняет его в MetaTrader 5.
Как это работает
You → AI Assistant → MCP Server → MetaTrader 5 → Your Trades✨ Возможности
🗣️ Торговля на естественном языке — общайтесь с ИИ на обычном языке для совершения сделок
🤖 Поддержка нескольких ИИ — работает с Claude Desktop, ChatGPT (через Open WebUI) и другими
📊 Полный доступ к рынку — получайте цены в реальном времени, исторические данные и информацию о символах
💼 Полный контроль счета — проверяйте баланс, средства, маржу и торговую статистику
⚡ Управление ордерами — размещайте, изменяйте и закрывайте ордера простыми командами
🔒 Безопасность — все учетные данные остаются на вашем компьютере
🌐 Гибкие интерфейсы — используйте как MCP-сервер, REST API или WebSocket-поток
📖 Хорошая документация — подробные руководства и примеры
🎯 Для кого это?
Трейдеры, которые хотят автоматизировать торговлю с помощью ИИ
Разработчики, создающие торговых ботов или инструменты анализа
Аналитики, которым нужен быстрый доступ к рыночным данным
Все, кто интересуется объединением ИИ с финансовыми рынками
⚠️ Важное предупреждение
Пожалуйста, прочитайте это внимательно:
Торговля финансовыми инструментами сопряжена со значительным риском убытков. Это программное обеспечение предоставляется «как есть», и разработчики не несут ответственности за любые торговые убытки, прибыль или последствия использования данного ПО.
Используя это программное обеспечение, вы подтверждаете, что:
Вы понимаете риски финансовой торговли
Вы несете ответственность за все сделки, совершенные через эту систему
Вы не будете возлагать на разработчиков ответственность за любые результаты
Вы используете это программное обеспечение на свой страх и риск
Это не финансовая консультация. Всегда торгуйте ответственно.
📋 Предварительные требования
Перед началом убедитесь, что у вас есть:
Python 3.10 или выше — Скачать здесь
Терминал MetaTrader 5 — Скачать здесь
Торговый счет MT5 — учетные данные демо- или реального счета
Номер счета
Пароль
Имя сервера (например, "MetaQuotes-Demo")
🚀 Быстрый старт
Шаг 1: Установка пакета
Откройте терминал или командную строку и выполните:
pip install metatrader-mcp-serverШаг 2: Включение алгоритмической торговли
Откройте MetaTrader 5
Перейдите в
Сервис→НастройкиПерейдите на вкладку
СоветникиУстановите флажок
Разрешить автоматическую торговлюНажмите
ОК
Шаг 3: Выбор интерфейса
Выберите вариант в зависимости от того, как вы хотите его использовать:
Вариант А: Использование с Claude Desktop (локальный STDIO)
Найдите файл конфигурации Claude Desktop:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMac:
~/Library/Application Support/Claude/claude_desktop_config.json
Откройте файл и добавьте эту конфигурацию:
{
"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"
]
}
}
}Замените
YOUR_MT5_LOGIN,YOUR_MT5_PASSWORDиYOUR_MT5_SERVERна ваши реальные учетные данныеПерезапустите Claude Desktop
Начните общение! Попробуйте: "Какой у меня баланс счета?"
Вариант Б: Использование с Open WebUI (для ChatGPT и других LLM)
Запустите 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Откройте в браузере
http://localhost:8000/docs, чтобы увидеть документацию APIВ Open WebUI:
Перейдите в Settings → Tools
Нажмите Add Tool Server
Введите
http://localhost:8000Сохраните
Теперь вы можете использовать торговые инструменты в своих чатах Open WebUI!
Вариант В: Котировки в реальном времени через WebSocket
Потоковая передача тиковых данных (bid, ask, спред, объем) через WebSocket для дашбордов, ботов или мониторинга:
metatrader-quote-server --login YOUR_LOGIN --password YOUR_PASSWORD --server YOUR_SERVERПодключитесь с помощью любого WebSocket-клиента:
websocat ws://localhost:8765Вы получите сообщение connected, за которым последуют непрерывные обновления тиков в формате JSON. Подробности см. в разделе WebSocket-сервер котировок.
Вариант Г: Удаленный MCP-сервер (SSE)
Запустите MCP-сервер на Windows VPS (где установлен MT5) и подключайтесь к нему удаленно из 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-туннель.
🤖 Навык торгового ассистента (Claude Code / Claude Desktop)
Готовый навык Trading Terminal Assistant включен в директорию 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\"Что делает этот навык
Прямое исполнение: Выполняет сделки немедленно по запросу, дополнительное подтверждение не требуется
Рабочие процессы: Знает, как объединять инструменты для сложных операций (например, разместить рыночный ордер, затем установить 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Конфигурация
Флаг | Переменная окружения | По умолчанию | Описание |
|
|
| Хост для привязки |
|
|
| Порт для привязки |
|
|
| Символы для потоковой передачи через запятую |
|
|
| Интервал опроса тиков в миллисекундах |
Флаги CLI имеют приоритет над переменными окружения, которые имеют приоритет над значениями по умолчанию.
Формат сообщений
При подключении — сервер отправляет сообщение connected со списком символов, за которым следуют любые кэшированные тики:
{"type": "connected", "symbols": ["XAUUSD", "EURUSD", "GBPUSD"], "poll_interval_ms": 100}Обновления тиков — отправляются при каждом изменении bid, ask или объема:
{"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())Заметки по проектированию
Обнаружение изменений: Транслирует данные только тогда, когда bid, ask или объем действительно меняются, что снижает ненужный трафик.
Поздние подключения: Новые клиенты получают кэшированные тики сразу при подключении, поэтому им не нужно ждать следующего изменения.
Потокобезопасность MT5: Все вызовы MT5 SDK сериализуются через однопоточный исполнитель для предотвращения проблем с одновременным доступом.
Несколько клиентов: Любое количество WebSocket-клиентов может подключаться одновременно.
💡 Примеры использования
С Claude Desktop
После настройки вы можете общаться естественным образом:
Проверка счета:
Вы: "Покажи информацию о моем счете"
Claude: Возвращает баланс, средства, маржу, кредитное плечо и т.д.
Получение рыночных данных:
Вы: "Какая текущая цена EUR/USD?"
Claude: Показывает bid, ask и спред
Размещение сделки:
Вы: "Купи 0.01 лота GBP/USD со стоп-лоссом на 1.2500 и тейк-профитом на 1.2700"
Claude: Выполняет сделку и подтверждает
Управление позициями:
Вы: "Закрой все мои убыточные позиции"
Claude: Закрывает позиции и сообщает о результатах
Анализ истории:
Вы: "Покажи все мои сделки за прошлую неделю по EUR/USD"
Claude: Возвращает историю сделок в виде таблицы
С 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- Получить текущую цену bid/ask для символаget_candles_latest- Получить последние свечи (данные OHLCV)get_candles_by_date- Получить исторические свечи за диапазон датget_symbol_info- Получить подробную информацию о символе
Исполнение ордеров
place_market_order- Выполнить мгновенные ордера BUY/SELLplace_pending_order- Разместить отложенные ордера (limit/stop) для будущего исполненияmodify_position- Обновить стоп-лосс или тейк-профитmodify_pending_order- Изменить параметры отложенного ордера
Управление позициями
get_all_positions- Просмотреть
This server cannot be installed
Maintenance
Appeared in Searches
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