How ariadng/metatrader-mcp-server works
MetaTrader Client is the shared Python interface to a local MetaTrader 5 terminal, exposing account, market, order, and history operations. The principal workflow is an AI assistant calling MCP tools, which obtain a connected client and invoke those operations; the repository also offers REST and WebSocket quote interfaces. Connection management underpins client operations. REST router-to-client calls are not established by the sampled evidence, so those links are omitted; the REST route registration structure is documented by the source index.
Main entry points: client.py Unified client · client_market.py Market data · server.py MCP tools · utils.py MCP client setup
Components 19
User Interfaces
- MCP tools
src/metatrader_mcp/server.py - MCP client setup
src/metatrader_mcp/utils.py - REST application
src/metatrader_openapi/main.py - REST routers
src/metatrader_openapi/routers - Quote stream
src/metatrader_quote/server.py
Trading Client
- Unified client
src/metatrader_client/client.py
Terminal Connection
- Connection manager
src/metatrader_client/client_connection.py
Trading Domains
- Account operations
src/metatrader_client/client_account.py - Market data
src/metatrader_client/client_market.py - Order management
src/metatrader_client/client_order.py - Trade history
src/metatrader_client/client_history.py - Account details
src/metatrader_client/account/get_account_info.py - Symbol discovery
src/metatrader_client/market/get_symbols.py - Order execution
src/metatrader_client/order/send_order.py - Trade result codes
src/metatrader_client/types/trade_return_codes.py
Other components
- AI assistant
- API consumer
- Quote consumer
- MetaTrader 5
Connections 17
- AI assistant → MCP tools: calls tools
README.md - MCP tools → MCP client setup: gets client
src/metatrader_mcp/server.py - MCP client setup → Unified client: creates client
src/metatrader_mcp/utils.py - API consumer → REST application: sends requests
README.md - REST application → REST routers: registers routers
src/metatrader_openapi/routers/__init__.py - Quote consumer → Quote stream: opens stream
README.md - Quote stream → Market data: fetches quotes
src/metatrader_quote/server.py - Unified client → Connection manager: delegates connection
src/metatrader_client/client.py - Unified client → Account operations: creates account API
src/metatrader_client/client.py - Unified client → Market data: creates market API
src/metatrader_client/client.py - Unified client → Order management: creates order API
src/metatrader_client/client.py - Unified client → Trade history: creates history API
src/metatrader_client/client.py - Connection manager → MetaTrader 5: connects terminal
src/metatrader_client/client_connection.py - Account operations → Account details: delegates details
src/metatrader_client/client_account.py - Market data → Symbol discovery: delegates lookup
src/metatrader_client/client_market.py - Order management → Order execution: submits orders
src/metatrader_client/client_order.py - Order execution → Trade result codes: uses result codes