Skip to main content
Glama
ariadng

metatrader-mcp-server

PyPI version Python 3.10+ License: MIT

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

MetaTrader MCP Server


📑 Содержание


Related MCP server: mt5-mcp

🌟 Что это такое?

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-поток

  • 📖 Хорошая документация — подробные руководства и примеры

🎯 Для кого это?

  • Трейдеры, которые хотят автоматизировать торговлю с помощью ИИ

  • Разработчики, создающие торговых ботов или инструменты анализа

  • Аналитики, которым нужен быстрый доступ к рыночным данным

  • Все, кто интересуется объединением ИИ с финансовыми рынками

⚠️ Важное предупреждение

Пожалуйста, прочитайте это внимательно:

Торговля финансовыми инструментами сопряжена со значительным риском убытков. Это программное обеспечение предоставляется «как есть», и разработчики не несут ответственности за любые торговые убытки, прибыль или последствия использования данного ПО.

Используя это программное обеспечение, вы подтверждаете, что:

  • Вы понимаете риски финансовой торговли

  • Вы несете ответственность за все сделки, совершенные через эту систему

  • Вы не будете возлагать на разработчиков ответственность за любые результаты

  • Вы используете это программное обеспечение на свой страх и риск

Это не финансовая консультация. Всегда торгуйте ответственно.


📋 Предварительные требования

Перед началом убедитесь, что у вас есть:

  1. Python 3.10 или вышеСкачать здесь

  2. Терминал MetaTrader 5Скачать здесь

  3. Торговый счет MT5 — учетные данные демо- или реального счета

    • Номер счета

    • Пароль

    • Имя сервера (например, "MetaQuotes-Demo")

🚀 Быстрый старт

Шаг 1: Установка пакета

Откройте терминал или командную строку и выполните:

pip install metatrader-mcp-server

Шаг 2: Включение алгоритмической торговли

  1. Откройте MetaTrader 5

  2. Перейдите в СервисНастройки

  3. Перейдите на вкладку Советники

  4. Установите флажок Разрешить автоматическую торговлю

  5. Нажмите ОК

Шаг 3: Выбор интерфейса

Выберите вариант в зависимости от того, как вы хотите его использовать:

Вариант А: Использование с Claude Desktop (локальный STDIO)

  1. Найдите файл конфигурации Claude Desktop:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. Откройте файл и добавьте эту конфигурацию:

{
  "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 на ваши реальные учетные данные

  2. Перезапустите Claude Desktop

  3. Начните общение! Попробуйте: "Какой у меня баланс счета?"

Вариант Б: Использование с 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

  2. В Open WebUI:

    • Перейдите в SettingsTools

    • Нажмите Add Tool Server

    • Введите http://localhost:8000

    • Сохраните

  3. Теперь вы можете использовать торговые инструменты в своих чатах 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

Конфигурация

Флаг

Переменная окружения

По умолчанию

Описание

--host

QUOTE_HOST

0.0.0.0

Хост для привязки

--port

QUOTE_PORT

8765

Порт для привязки

--symbols

QUOTE_SYMBOLS

XAUUSD,USOIL,GBPUSD,USDJPY,EURUSD,BTCUSD

Символы для потоковой передачи через запятую

--poll-interval

QUOTE_POLL_INTERVAL_MS

100

Интервал опроса тиков в миллисекундах

Флаги 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/SELL

  • place_pending_order - Разместить отложенные ордера (limit/stop) для будущего исполнения

  • modify_position - Обновить стоп-лосс или тейк-профит

  • modify_pending_order - Изменить параметры отложенного ордера

Управление позициями

  • get_all_positions - Просмотреть

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI applications to interact with MetaTrader 5 terminals via WebSocket MCP protocol for trading operations and account management.
    4
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that lets an AI agent read your MetaTrader 5 account and place trades over the Model Context Protocol, with a configurable human approval gate.
    15
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides AI assistants like Claude with direct access to MetaAPI trading platform. Trade forex, stocks, and commodities through natural language conversations.
    1
  • F
    license
    Not graded
    quality
    B
    maintenance
    Universal MCP server that enables AI assistants to control MetaTrader 5 directly, executing trades, managing data, and automating MT5 operations through natural language.
    2

View all related MCP servers

Related MCP Connectors

  • MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents

  • MCP server for Gainium — manage trading bots, deals, and balances via AI assistants

  • HiveCapital MCP Server — autonomous investment layer for AI agents

View all MCP Connectors

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