metatrader-mcp
Enables users to capture real MetaTrader 5 chart snapshots with custom indicators and fetch market data through natural language in Claude Desktop.
README
MetaTrader 5 MCP Server
A lightweight Model Context Protocol (MCP) server for MetaTrader 5 that provides real chart snapshots directly from your MT5 terminal - no browser automation needed!
๐ Features
- ๏ฟฝ Real MT5 Screenshots: Captures actual charts from your MetaTrader 5 terminal with ALL your custom indicators
- ๐น Market Data: Fetch current prices, spreads, and symbol information
- ๐ Lightweight: Expert Advisor + file-based communication (no Selenium, no browser)
- ๐ง Easy Integration: Works seamlessly with Claude Desktop
- ๐จ What You See Is What You Get: Captures charts exactly as they appear in MT5
- โก Fast: Direct chart capture via MQL5's ChartScreenShot function
- ๏ฟฝ Secure: File-based communication, no network ports required
๐๏ธ Architecture
This system uses an innovative approach:
- MQL5 Expert Advisor: Runs inside MT5, captures real charts using
ChartScreenShot() - File-Based Protocol: Commands/responses via shared text files (UTF-16 LE encoding)
- Python MCP Server: Communicates with EA, serves charts to Claude Desktop
- MetaTrader5 API: For market data and symbol information
Key Advantage: Captures REAL MT5 charts with all your custom indicators, drawings, and settings - exactly as you see them!
๐ Prerequisites
- Windows OS (MetaTrader 5 requirement)
- MetaTrader 5 installed (download here)
- Python 3.10+
๐ Quick Start
Step 1: Install Dependencies
cd d:\Desktop\metatrader-mcp
pip install -e .
Step 2: Install Expert Advisor
-
Copy the EA:
- Open MT5 โ
FileโOpen Data Folder - Navigate to
MQL5\Experts\ - Copy
expert_advisor\MCPChartCapture.mq5to this folder
- Open MT5 โ
-
Compile the EA:
- In MT5, press
F4to open MetaEditor - Open
MCPChartCapture.mq5 - Press
F7to compile (should show "0 errors")
- In MT5, press
-
Attach to a chart:
- Open any chart in MT5 (e.g., EURUSD H1)
- In Navigator (
Ctrl+N), expandExpert Advisors - Drag
MCPChartCaptureonto the chart - In the dialog, go to
Commontab:- โ Allow automated trading
- Click
OK
-
Enable AutoTrading:
- Click the
AutoTradingbutton in MT5 toolbar (or pressCtrl+E) - You should see a ๐ on the chart
- Click the
Step 3: Test the Setup
python test_ea_connection.py
Expected output:
โ
Connected to MT5 v5370
โ
EA Response: EA is running
โ
Screenshot saved: output\EURUSD_H1_20251101_024101.png
All tests passed! โ
Step 4: Configure Claude Desktop
-
Locate config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
Add MCP server:
{ "mcpServers": { "metatrader5": { "command": "python", "args": ["-m", "metatrader_mcp.server"], "cwd": "d:\\Desktop\\metatrader-mcp" } } } -
Restart Claude Desktop
-
Test it! Ask Claude:
Show me a screenshot of EURUSD H1 chart
๐ ๏ธ Available Tools
1. capture_chart_screenshot
Capture a real screenshot from MT5 terminal with all your indicators.
Parameters:
symbol(string): Trading pair (e.g., "EURUSD", "XAUUSD", "BTCUSD")timeframe(string): Chart timeframe - M1, M5, M15, M30, H1, H4, D1, W1, MN1
Returns: Path to the captured screenshot (PNG, 1920x1080)
Example:
Capture a screenshot of XAUUSD 15-minute chart
2. list_symbols
Get available trading symbols from MT5.
Parameters:
group(string, optional): Filter by group (e.g., "Forex", "Crypto")
Returns: List of symbols with descriptions
Example:
Show me all Forex symbols
3. get_current_price
Get real-time market data for a symbol.
Parameters:
symbol(string): Trading pair
Returns: Current bid, ask, spread, time
Example:
What's the current price of EURUSD?
4. get_timeframes
List all supported timeframes.
Returns: Available timeframe codes
๐ Supported Timeframes
| Code | Description |
|---|---|
| M1 | 1 minute |
| M5 | 5 minutes |
| M15 | 15 minutes |
| M30 | 30 minutes |
| H1 | 1 hour |
| H4 | 4 hours |
| D1 | Daily |
| W1 | Weekly |
| MN1 | Monthly |
๐๏ธ Project Structure
metatrader-mcp/
โโโ expert_advisor/
โ โโโ MCPChartCapture.mq5 # MQL5 Expert Advisor for chart capture
โโโ src/
โ โโโ metatrader_mcp/
โ โโโ server.py # Main MCP server
โ โโโ mt5_handler.py # MT5 connection & market data
โ โโโ chart_generator.py # EA communication & screenshot handling
โโโ output/ # Captured screenshots (auto-created)
โโโ test_ea_connection.py # Test EA connectivity
โโโ pyproject.toml # Python dependencies
โโโ README.md
๐ง Troubleshooting
โ EA not responding / Timeout errors
Solutions:
- Check the EA is attached to a chart (you should see ๐)
- Enable AutoTrading in MT5 (
Ctrl+E) - Check Experts log in MT5 for errors
- Try removing and reattaching the EA
โ "MT5 initialization failed"
Solutions:
- Verify MT5 is installed:
C:\Program Files\MetaTrader 5\terminal64.exe - Open MT5 at least once to initialize
- If custom install path, set
MT5_PATHenvironment variable
โ Screenshot file not found
Solutions:
- Ensure EA is running (check for ๐ on chart)
- Check Experts log for errors
- Verify AutoTrading is enabled
- Try capturing a chart that's already open
โ "Could not fetch data for symbol"
Solutions:
- The symbol must exist in your MT5 (check Market Watch)
- Symbol names are case-sensitive
- Try with "EURUSD" first to test
โ Encoding errors / Garbled text
Solution: This is fixed! The system uses UTF-16 LE encoding for EA communication.
๐ก Usage Examples
Capture Chart with Custom Indicators
Claude, capture a screenshot of my XAUUSD M15 chart
โ Returns actual MT5 chart with all your custom indicators!
Get Multiple Charts
Show me charts for EURUSD H1, GBPUSD H4, and XAUUSD M15
Check Current Prices
What are the current prices for EURUSD, GBPUSD, and USDJPY?
Explore Symbols
List all available Gold symbols
๐งช Testing
Run the test suite:
# Test EA connection
python test_ea_connection.py
# Test chart capture
python take_screenshot.py
# Test specific symbol
python capture_xauusd.py
๐ Configuration (Optional)
Create a .env file for custom settings:
# Custom MT5 installation path
MT5_PATH=C:\Program Files\MetaTrader 5
# Custom output directory for screenshots
OUTPUT_DIR=./charts
๐ค Contributing
Contributions are welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
- Improve documentation
๐ License
MIT License - see LICENSE file for details
๐ Acknowledgments
- MetaTrader 5 Python API - For market data access
- MCP SDK - Model Context Protocol implementation
- MQL5 Community - For Expert Advisor development resources
๐ Support
Having issues? Here's how to get help:
- Run diagnostics:
python test_ea_connection.py - Check MT5 Experts log: Look for error messages in MT5
- Verify setup: EA attached? AutoTrading enabled? ๐ visible?
- Open an issue: Include error messages and system info
Made with โค๏ธ for traders who want to integrate MT5 with Claude AI
No browser automation. No Selenium. Just pure, lightweight MT5 chart capture!
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.