mt5-mcp

mt5-mcp

An MCP server for AI agents to inspect and trade against MetaTrader 5, with offline mock mode for CI and demos.

Category
Visit Server

README

mt5-mcp

Python 3.11+ Version License: MIT MCP

mt5-mcp is an MCP server so AI agents can inspect and trade against a MetaTrader 5 terminal — account, symbols, quotes, orders/positions, history — with a full offline mock for CI and demos.


Modes

Mode When Behavior
mock (default) Windows / CI / no terminal Seeded demo account, FX/CFD symbols, orders, history
live Host has a bridge configured Optional file/HTTP bridge (see env vars); fails closed if unavailable

Highlights

Capability Description
Offline demo mt5-mcp demo exercises doctor, quotes, market order, history
MCP stdio serve Plug into Cursor / Claude / Grok as an MCP server
One-shot call mt5-mcp call … without a full MCP host
Safety Mock never talks to a real broker; live needs explicit env

Quick start

cd mt5-mcp
python -m venv .venv
.\.venv\Scripts\activate
pip install -e ".[dev]"

mt5-mcp version
mt5-mcp demo
mt5-mcp tools list
pytest -q

Mock mode needs no MetaTrader install.


CLI reference

Command Purpose
mt5-mcp version Version + mode
mt5-mcp status Mode, balance, equity, positions, orders
mt5-mcp demo Offline smoke of core backend APIs
mt5-mcp doctor Backend health
mt5-mcp serve MCP server over stdio
mt5-mcp call … One-shot tool call
mt5-mcp tools list List MCP tools
mt5-mcp serve

MCP tools

Tool Purpose
mt5_mode Get/set mock|live
mt5_doctor Connectivity / account health
mt5_seed_demo Reset mock account
mt5_account Balance, equity, margin, trade mode
mt5_symbols Symbol list
mt5_quote Bid/ask / last
mt5_positions Open positions (filled market orders)
mt5_orders Pending orders (limit/stop, not yet filled)
mt5_order_send Market/pending
mt5_position_close Close position by ticket
mt5_history_deals Deal history
mt5://account (resource) Account + positions snapshot

MCP host config

{
  "mcpServers": {
    "mt5-mcp": {
      "command": "python",
      "args": ["-m", "mt5_mcp"],
      "env": {
        "MT5_MCP_MODE": "mock"
      }
    }
  }
}

Also see examples/cursor_mcp.json.


Live bridge (optional)

Set env (never commit secrets):

Variable Meaning
MT5_MCP_MODE mock or live
MT5_MCP_MAGIC Optional magic number for live orders
MT5_MCP_MAX_VOLUME Max order volume cap
MT5_MCP_SYMBOL_ALLOWLIST Comma-sep allowlisted symbols
MT5_MCP_BRIDGE_URL Optional HTTP bridge base URL
MT5_MCP_BRIDGE_FILE Optional request/response JSON file path

Without a working bridge, live mode returns structured errors; demos stay on mock.


Safety

Rule Detail
Mock-only env Copy examples/env.mock.example → .env and keep MT5_MCP_MODE=mock
No secrets in git Add .env to .gitignore — never commit live broker credentials
Max volume Set MT5_MCP_MAX_VOLUME to cap any single order in live mode
Symbol allowlist Restrict tradeable symbols via MT5_MCP_SYMBOL_ALLOWLIST (comma-sep)

Deal history

Deal history fields

Field Type Description
ticket int Deal ID
time str Timestamp
symbol str Instrument
type str Deal type (buy/sell)
volume float Lot size
price float Execution price
commission float Broker commission (mock)
swap float Overnight swap (mock)
profit float Net P&L (mock)

Development

pip install -e ".[dev]"
ruff check src tests
pytest -q
mt5-mcp demo

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured