Provides access to Django database for managing trade history, performance metrics, and bot configuration settings through REST API endpoints
Connects to Flask API server for MetaTrader 5 connectivity, enabling real-time market data retrieval and trade execution
Integrates with TensorFlow/MLP AI models for generating trading signals with confidence levels and automated model retraining
MetaTrader 5 MCP Server
A Model Context Protocol (MCP) server for MetaTrader 5, allowing AI assistants to interact with the MetaTrader 5 platform for trading and market data analysis. Documentation
Features
Connect to MetaTrader 5 terminal
Access market data (symbols, rates, ticks)
Place and manage trades
Analyze trading history
Integrate with AI assistants through the Model Context Protocol
Installation
From PyPI
From Source
Requirements
uv (recommended) or pip
Python 3.11 or higher
MetaTrader 5 terminal installed on Windows
MetaTrader 5 account (demo or real)
Usage
Quick Start
The server runs in stdio mode by default for MCP clients like Claude Desktop:
Development Mode (HTTP)
For testing with HTTP transport, create a .env file:
Then run:
The server will start at http://127.0.0.1:8000
Installing for MCP Clients
Method 1: Using uvx (Simplest - No Installation Required) ⭐
Add this configuration to your MCP client's config file:
For Claude Desktop (claude_desktop_config.json):
Method 2: Using FastMCP Install (Recommended)
After git cloning the repo, run the following commands:
For MCP JSON format
For Claude Desktop
For Claude Code
For Cursor
For Gemini CLI
Method 3: Manual Configuration
Add this to your claude_desktop_config.json or whatever LLM config file:
API Reference
Connection Management
initialize(): Initialize the MT5 terminallogin(account, password, server): Log in to a trading accountshutdown(): Close the connection to the MT5 terminal
Market Data Functions
get_symbols(): Get all available symbolsget_symbols_by_group(group): Get symbols by groupget_symbol_info(symbol): Get information about a specific symbolget_symbol_info_tick(symbol): Get the latest tick for a symbolcopy_rates_from_pos(symbol, timeframe, start_pos, count): Get bars from a specific positioncopy_rates_from_date(symbol, timeframe, date_from, count): Get bars from a specific datecopy_rates_range(symbol, timeframe, date_from, date_to): Get bars within a date rangecopy_ticks_from_pos(symbol, start_pos, count): Get ticks from a specific positioncopy_ticks_from_date(symbol, date_from, count): Get ticks from a specific datecopy_ticks_range(symbol, date_from, date_to): Get ticks within a date range
Trading Functions
order_send(request): Send an order to the trade serverorder_check(request): Check if an order can be placed with the specified parameterspositions_get(symbol, group): Get open positionspositions_get_by_ticket(ticket): Get an open position by its ticketorders_get(symbol, group): Get active ordersorders_get_by_ticket(ticket): Get an active order by its tickethistory_orders_get(symbol, group, ticket, position, from_date, to_date): Get orders from historyhistory_deals_get(symbol, group, ticket, position, from_date, to_date): Get deals from history
Example Workflows
Connecting and Getting Market Data
Placing a Trade
Resources
The server provides the following resources to help AI assistants understand how to use the MetaTrader 5 API:
mt5://getting_started: Basic workflow for using the MetaTrader 5 APImt5://trading_guide: Guide for placing and managing tradesmt5://market_data_guide: Guide for accessing and analyzing market datamt5://order_types: Information about order typesmt5://order_filling_types: Information about order filling typesmt5://order_time_types: Information about order time typesmt5://trade_actions: Information about trade request actions
Prompts
The server provides the following prompts to help AI assistants interact with users:
connect_to_mt5(account, password, server): Connect to MetaTrader 5 and log inanalyze_market_data(symbol, timeframe): Analyze market data for a specific symbolplace_trade(symbol, order_type, volume): Place a trade for a specific symbolmanage_positions(): Manage open positionsanalyze_trading_history(days): Analyze trading history
Development
Project Structure
Building the Package
Using uv (recommended):
This will create wheel and source distributions in the dist/ directory.
Publishing to PyPI
Using uv:
License
MIT
Acknowledgements
MetaQuotes for the MetaTrader 5 platform
FastMCP for the MCP server implementation