Skip to main content
Glama
therichkidcl-spec

MT5 Multi-Account MCP

MT5 Multi-Account MCP

An MCP server that gives an AI assistant (Claude, etc.) direct read and optional execution access to multiple MetaTrader 5 accounts at once — positions, P&L, prices, indicators, history and logs, plus opening and closing trades — without screenshots.

⚠️ Disclaimer — read this. This software can place, modify and close REAL orders in MetaTrader 5. Use it entirely at your own risk. Test on a DEMO account first. It is provided "AS IS", without warranty of any kind; the authors are not liable for any financial loss. Execution is OFF by default — every account is read-only unless you explicitly set permitir_ejecucion: true.

Why this exists

The official MetaTrader5 Python package is a singleton per process: one initialize() connects to exactly one terminal, so you cannot read two accounts from a single process. This server solves that by launching one worker subprocess per account, each holding its own live connection. A parent process (FastMCP over stdio) routes every call to the right account's worker and reads CSV/log files directly.

MCP client ──stdio──▶ parent (FastMCP)
                       ├── router ──▶ worker(Account A) ──▶ MT5 terminal A
                       └── router ──▶ worker(Account B) ──▶ MT5 terminal B

Related MCP server: MetaTrader 5 MCP Server

Features

Read tools: account info, open positions, pending orders, deal history, P&L by channel/symbol/day, live price/candles/spread, locally-computed indicators (RSI/MACD/ATR/Bollinger/EMA/SMA), the EA's CSV files and the Experts logs.

Execution tools (opt-in): open market order, open pending order, modify SL/TP, close position (full or partial), cancel pending order.

Requirements

  • Windows, with one or more MetaTrader 5 terminals open and logged in (the worker attaches to the running terminal; it never asks for your password).

  • Python 3.11+ (tested on 3.14).

Install

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt

Configure

Copy the template and edit it with your accounts:

copy mt5_mcp\cuentas.example.json mt5_mcp\cuentas.json

Each account entry:

Field

Meaning

nombre

Label you use in the tools (e.g. "Broker1")

terminal_path

Full path to that terminal's terminal64.exe

simbolo

Default symbol for that account (brokers name it differently, e.g. XAUUSD, XAUUSD.r)

sufijo_csv

Suffix of the EA's CSV files in Common\Files (optional)

terminal_hash

The terminal's folder under ...\Terminal\<hash> (for reading Experts logs)

permitir_ejecucion

true enables execution tools for that account. Default false (read-only)

max_lotes

Optional per-order volume cap. If omitted, no cap

Root keys: magic_ejecucion (the magic number this server stamps on its orders) and common_files / terminals_root paths.

cuentas.json is gitignored so you never commit real accounts.

Register in your MCP client

.mcp.json (or your client's config):

{
  "mcpServers": {
    "mt5": {
      "command": "C:\\path\\to\\repo\\.venv\\Scripts\\python.exe",
      "args": ["-m", "mt5_mcp.server"],
      "cwd": "C:\\path\\to\\repo"
    }
  }
}

Restart the client; tools appear as mt5 / mcp__mt5__*.

Tools

Read-only: cuentas, health, account_info, positions, orders, comparar, deals, pnl_por_canal, pnl_por_simbolo, stats_dia, precio, velas, spread, indicadores, leer_csv_ea, experts_log.

Execution (require permitir_ejecucion: true): ejecutar_abrir_mercado, ejecutar_abrir_pendiente, ejecutar_modificar_sltp, ejecutar_cerrar, ejecutar_cancelar_pendiente.

Tool names and code comments are in Spanish (the project's original language). Functionality is language-independent.

Security model

  • Read-only by default: an account without permitir_ejecucion cannot execute.

  • Explicit, auditable execution: execution tools are separate, prefixed ejecutar_, gated per account, with an optional max_lotes cap and their own magic number.

  • Your MCP client asks for approval before each execution tool call.

  • No credentials: it connects to the already-open terminal.

  • No outbound network: only the local terminal and files.

Tests

.\.venv\Scripts\python.exe -m pytest mt5_mcp/tests -v

Unit tests (config, router, gating, analytics, indicators, file readers) run without MetaTrader 5. Live checks require the terminals open.

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with the MetaTrader 5 trading platform for market data analysis, placing trades, and managing trading positions. Provides comprehensive access to forex and financial market operations through the Model Context Protocol.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables comprehensive access to the MetaTrader 5 trading platform for retrieving market data, managing accounts, and executing trading operations. It provides 32 specialized tools for interacting with MT5 functionalities, including historical OHLCV data access, real-time position monitoring, and automated order management.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to connect to MetaTrader 5 for trading, market data access, and account management through the Model Context Protocol.
    67 PyPI
    220
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to trade on MetaTrader 5 using natural language, supporting account management, order placement, and real-time market data.
    1
    MIT