MetaTrader 5 MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MetaTrader 5 MCP Servershow me the current price of EURUSD"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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
Related MCP server: Stock Analysis MCP Server
Installation
From Source
git clone https://github.com/Qoyyuum/mcp-metatrader5-server.git
cd mcp-metatrader5-server
pip install -e .Requirements
uv
Python 3.11 or higher
MetaTrader 5 terminal installed
MetaTrader 5 account (demo or real)
Usage
Running the Server
To run the server in development mode:
uv run mt5mcp devThis will start the server at http://127.0.0.1:8000 by default.
You can specify a different host and port:
uv run mt5mcp dev --host 0.0.0.0 --port 8080Installing for Claude Desktop
To install the server for Claude Desktop:
git clone https://github.com/Qoyyuum/mcp-metatrader5-server
cd mcp-metatrader5-server
uv run fastmcp install src\mcp_metatrader5_server\server.pyCheck your claude_desktop_config.json file. It should look something like this:
{
"mcpServers": {
"MetaTrader 5 MCP Server": {
"command": "uv",
"args": [
"run",
"--with",
"MetaTrader5",
"--with",
"fastmcp",
"--with",
"numpy",
"--with",
"pandas",
"--with",
"pydantic",
"fastmcp",
"run",
"C:\\FULL_PATH_TO\\src\\mcp_metatrader5_server\\server.py"
]
}
}
}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
# Initialize MT5
initialize()
# Log in to your trading account
login(account=123456, password="your_password", server="your_server")
# Get available symbols
symbols = get_symbols()
# Get recent price data for EURUSD
rates = copy_rates_from_pos(symbol="EURUSD", timeframe=15, start_pos=0, count=100)
# Shut down the connection
shutdown()Placing a Trade
# Initialize and log in
initialize()
login(account=123456, password="your_password", server="your_server")
# Create an order request
request = OrderRequest(
action=mt5.TRADE_ACTION_DEAL,
symbol="EURUSD",
volume=0.1,
type=mt5.ORDER_TYPE_BUY,
price=mt5.symbol_info_tick("EURUSD").ask,
deviation=20,
magic=123456,
comment="Buy order",
type_time=mt5.ORDER_TIME_GTC,
type_filling=mt5.ORDER_FILLING_IOC
)
# Send the order
result = order_send(request)
# Shut down the connection
shutdown()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
mcp-metatrader5-server/
├── src/
│ └── mcp_metatrader5_server/
│ ├── __init__.py
│ ├── server.py
│ ├── market_data.py
│ ├── trading.py
│ ├── main.py
│ └── cli.py
├── run.py
├── README.md
└── pyproject.tomlBuilding the Package
To build the package:
python -m pip install build
python -m buildOr using uv:
uv buildPublishing to PyPI
To publish the package to PyPI:
python -m pip install twine
python -m twine upload dist/*Or using uv:
uv publishLicense
MIT
Acknowledgements
MetaQuotes for the MetaTrader 5 platform
FastMCP for the MCP server implementation
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/sameerasulakshana/mcpmt5'
If you have feedback or need assistance with the MCP directory API, please join our Discord server