
MT5 Quant
- 18 repo stars
- Updated July 19, 2026
- masdevid/mt5-quant
MT5-Quant is a MCP server that exposes 87 tools for backtesting, optimizing, and debugging MQL5 Expert Advisors on macOS and Linux.
About
MT5-Quant is a stdio MCP server packing 87 tools so Claude Code and similar agents can drive MetaTrader 5 strategy work—backtests, parameter optimization, and MQL5 EA debugging—on macOS and Linux where native MT5 GUI workflows are awkward. quant developers and traders who code EAs treat it as agent-side integration during Build: you install the released mcpb tarball, point MT5_MCP_HOME at your config, and delegate repetitive compile-test-optimize loops to the agent instead of hand-clicking Strategy Tester all day. It is narrowly focused on trading automation, not general app development; expect intermediate comfort with MT5, symbols, and risk assumptions. The catalog positions it as a dense finance integration MCP rather than a one-shot prompt skill.
- 87 MCP tools for MT5 quant and MQL5 EA workflows
- Backtest, optimize, and debug strategies from the agent
- stdio MCP package (mcpb) for macOS arm64 with pinned fileSha256
- Configurable MT5_MCP_HOME (default ~/.config/mt5-quant)
- Repository version 1.32.4
MT5 Quant by the numbers
- Data as of Jul 20, 2026 (Skillselion catalog sync)
claude mcp add MT5-Quant -- npx -y masdevid/mt5-quantAdd your badge
Show developers this MCP server is listed on Skillselion. Paste this into your README.
| repo stars | ★ 18 |
|---|---|
| Last updated | July 19, 2026 |
| Repository | masdevid/mt5-quant ↗ |
What it does
Let your agent backtest, optimize, and debug MetaTrader 5 Expert Advisors on macOS or Linux without staying inside Windows-only workflows.
Who is it for?
Best when you're shipping MQL5 EAs and already run MT5 and want agent-driven iteration on Apple Silicon or Linux.
Skip if: Skip if you have no MetaTrader 5 setup, casual investors and only want market news, or pure web-SaaS products unrelated to trading bots.
What you get
Your agent can run structured backtest, optimize, and debug steps against MT5 quant workflows from a single MCP-connected session.
- Agent-driven backtest and optimization runs
- Debug assistance on MQL5 EA code paths
- Repeatable quant workflow steps without manual tester clicking
By the numbers
- 87 MCP tools documented in catalog description
- Server package version 1.32.4
- stdio transport via mcpb registry with environment variable MT5_MCP_HOME
README.md
MT5-Quant
MCP server for MT5 strategy development on macOS/Linux. 89 tools to compile, backtest, analyze, optimize, debug crashes, and manage MQL5 Expert Advisors — no Windows required.
You: "Backtest MyEA Jan-Mar, what caused the February drawdown?"
Claude: [compile → clean → backtest → analyze 1,847 deals]
→ Feb 14: BUY grid at L6, locking lot 1.75× base
→ Cutloss fired 17 points later
→ Recommendation: cap locking multiplier to ≤1.2×
Why MT5-Quant
Focus: Backtest organization, reporting, and analytics — capabilities MT5 itself doesn't provide.
| MT5-Quant | Others | |
|---|---|---|
| Platform | macOS/Linux native | Windows only |
| Backtest pipeline | ✅ Full (compile → run → analyze) | ✅ Via MT5 Python package |
| Deal-level analytics | ✅ 19 dimensions, DB-backed | ❌ |
| Report organization | ✅ SQLite (reports + deals) + search + history | ❌ |
| MQL5 compilation | ✅ Headless (MetaEditor via Wine, no GUI) | ⚠️ Via GUI or terminal |
| Optimization | ✅ Background + results parsing + .set generation | ⚠️ Terminal only, no parsing |
| Crash debugging | ✅ Wine/MT5 diagnostics | ❌ |
Others typically run on Windows using the MetaTrader5 Python package, providing full terminal operations. MT5-Quant fills the gap: organizing backtest reports, extracting deal-level insights, and managing optimization workflows — none of which MT5 or its Python API expose natively.
Why Rust
MT5-Quant is built entirely in Rust — one static binary, zero dependencies, instant startup.
| Rust | Python/Node | |
|---|---|---|
| Startup | ~10ms | 200–500ms |
| Deploy | Single binary | venv + pip/npm |
| Memory | <50MB, no GC pauses | Unpredictable spikes |
| Safety | Compile-time guaranteed | Runtime exceptions |
Why this matters for trading:
- No garbage collection — Process 100k+ deal rows without GC pauses during live analysis
- Async via Tokio — Handle multiple tool calls concurrently (poll status while streaming logs)
- Cross-platform — Same source compiles to native macOS arm64 and Linux x86_64
- Type-safe pipelines — MQL5 compilation, Wine path handling, SQLite queries: all checked at compile time
Quick Install
Option 1: Pre-built Binary (Recommended)
curl -L -o mt5.tar.gz https://github.com/masdevid/mt5-quant/releases/latest/download/mcp-mt5-quant-macos-arm64.tar.gz
tar -xzf mt5.tar.gz
bash scripts/setup.sh
Option 2: Cargo Install (if you have Rust)
cargo install mt5-quant
mt5-quant --help
Compiles from source. Takes 2–5 minutes. Requires Rust 1.70+.
Register MCP Server
| Platform | Command / Config | Docs |
|---|---|---|
| Claude Code | claude mcp add mt5-quant -- $(pwd)/mt5-quant |
Setup → |
| Windsurf | Edit ~/.codeium/windsurf/mcp_config.json |
WINDSURF.md → |
| Cursor | Edit ~/.cursor/mcp.json or use Settings → MCP |
CURSOR.md → |
| VS Code | Edit .vscode/mcp.json or run MCP: Add Server |
VSCODE.md → |
| Claude Desktop | Agent Panel → ... → MCP Servers → Edit configuration | CLAUDE.md → |
Note: Use absolute paths like
/Users/name/mt5-quant/mt5-quantor$(pwd)/mt5-quant, not relative paths like./mt5-quant.
Quick Start
Run a backtest on MyEA from 2025.01.01 to 2025.03.31
The AI runs the full pipeline: compile → clean cache → backtest → extract → analyze.
Documentation
| Doc | Purpose |
|---|---|
| QUICKSTART.md | Complete setup for macOS/Linux |
| WINDSURF.md | Windsurf IDE setup |
| CURSOR.md | Cursor IDE setup |
| VSCODE.md | VS Code setup |
| CLAUDE.md | Claude Desktop setup |
| CONFIG.md | Configuration reference |
| TOOLS.md | All 89 tools documented |
| ARCHITECTURE.md | Design and internals |
| TROUBLESHOOTING.md | Common issues |
| REMOTE_AGENTS.md | Linux optimization agents |
MCP Tools (89)
Core workflow
| Tool | Description |
|---|---|
run_backtest |
Full pipeline: compile → clean → backtest → extract → analyze |
run_backtest_quick |
Quick backtest using pre-compiled EA (skip compile) |
run_backtest_only |
Backtest only - just extract raw trades, no analysis |
launch_backtest |
Fire-and-forget: launch MT5 backtest, poll for completion |
get_backtest_status |
Poll running backtest status (MT5 running, report found, elapsed time) |
run_optimization |
Genetic optimization (background, returns immediately) |
get_optimization_results |
Parse optimization results after MT5 finishes |
list_jobs |
List all optimization jobs with status |
analyze_report |
Read analysis.json from any report directory |
compare_baseline |
Compare report vs baseline, return winner/loser verdict |
compile_ea |
Compile MQL5 EA via MetaEditor |
list_experts |
List all EAs in MQL5/Experts directory |
list_indicators |
List all indicators in MQL5/Indicators directory |
list_scripts |
List all scripts in MQL5/Scripts directory |
healthcheck |
Quick server health check |
list_symbols |
List all available symbols in MT5 terminal |
Granular Analytics (individual analysis)
| Tool | Description |
|---|---|
analyze_monthly_pnl |
Monthly P/L breakdown only |
analyze_drawdown_events |
Drawdown events and causes only |
analyze_top_losses |
Worst losing deals only |
analyze_loss_sequences |
Consecutive loss patterns only |
analyze_position_pairs |
Position hold time and P/L pairs |
analyze_direction_bias |
Buy vs Sell performance |
analyze_streaks |
Win/loss streak analysis |
analyze_concurrent_peak |
Peak simultaneous positions |
Use these for targeted analysis, or analyze_report to run all at once.
Deal-Level Analytics (New)
| Tool | Description |
|---|---|
list_deals |
List individual deals with filters (type, profit range, volume, dates) |
search_deals_by_comment |
Full-text search in deal comments (e.g., "Layer #3") |
search_deals_by_magic |
Filter deals by EA magic number |
analyze_profit_distribution |
Profit histogram: small/medium/large wins and losses |
analyze_time_performance |
Performance by hour of day and day of week |
analyze_hold_time_distribution |
Hold time buckets + correlation with profit |
analyze_layer_performance |
Grid/martingale layer analysis from comments |
analyze_volume_vs_profit |
Volume correlation + performance by lot size |
analyze_costs |
Commission and swap impact on profitability |
analyze_efficiency |
Profit per hour/day, annualized return, trade frequency |
Monitoring
| Tool | Description |
|---|---|
verify_setup |
Check Wine/MT5 paths, Wine version, and EA/set file counts |
get_optimization_status |
Check live state of a background optimization job |
list_jobs |
All optimization jobs with compact status in one call |
Reports & logs
| Tool | Description |
|---|---|
list_reports |
Compact table of all runs with key metrics — no full analysis needed |
get_latest_report |
Get most recent report with optional equity chart |
search_reports |
Find reports by EA, symbol, date range, or profit criteria |
get_report_by_id |
Get specific report by ID with equity chart |
get_reports_summary |
Aggregate stats: counts, averages, pass rates |
get_best_reports |
Top N reports sorted by any metric (profit factor, drawdown, etc.) |
search_reports_by_tags |
Find reports by tags |
search_reports_by_date_range |
Query by backtest date range |
search_reports_by_notes |
Full-text search in report notes |
get_reports_by_set_file |
Find all reports using a specific .set file |
get_comparable_reports |
Find comparable reports (same EA/symbol/timeframe) |
tail_log |
Read last N lines of any log; filter=errors to see only failures |
prune_reports |
Delete old report directories, keep last N (skips _opt dirs) |
promote_to_baseline |
Write a history entry or report to baseline.json for compare_baseline |
History & baseline
| Tool | Description |
|---|---|
archive_report |
Convert one report dir → compact JSON entry in backtest_history.json, optionally delete source |
archive_all_reports |
Bulk-archive all report dirs then optionally delete them; keeps N newest safe |
get_history |
Query history with filters (EA, symbol, verdict, profit, DD) and sort options |
annotate_history |
Attach verdict / notes / tags to any history entry |
Cache management
| Tool | Description |
|---|---|
cache_status |
MT5 tester cache size breakdown by symbol — check before cleaning |
clean_cache |
Delete tester cache files; supports per-symbol and dry_run |
Pre-flight & Validation
| Tool | Description |
|---|---|
get_active_account |
Get current MT5 account session (login, server, available symbols) |
check_symbol_data_status |
Validate symbol has sufficient history data for date range |
check_mt5_status |
Check if MT5 terminal is installed and ready |
validate_ea_syntax |
Pre-compile syntax check without running full compilation |
Debugging & Diagnostics (New)
| Tool | Description |
|---|---|
diagnose_wine |
Check Wine installation, version, and prefix health |
get_mt5_logs |
Get MT5 terminal, tester, or MetaEditor logs with filtering |
search_mt5_errors |
Search logs for error patterns (crash, exception, access violation) |
check_mt5_process |
Check if MT5 processes are running, get PID, CPU, memory usage |
kill_mt5_process |
Kill stuck MT5 processes (force=true for wineserver) |
check_system_resources |
Check disk space, memory, CPU availability |
validate_mt5_config |
Validate terminal.ini and tester configuration files |
get_wine_prefix_info |
Get Wine prefix details: Windows version, installed programs, registry |
get_backtest_crash_info |
Investigate backtest failures: incomplete markers, missing deals.csv, errors |
check_update |
Check if a newer version of MT5-Quant is available |
update |
Update MT5-Quant to latest release |
Project Management
| Tool | Description |
|---|---|
init_project |
Scaffold new MQL5 project with templates (scalper/swing/grid/basic) |
create_set_template |
Generate .set parameter file from EA input variables |
export_report |
Export backtest report to CSV, JSON, or Markdown |
History & Comparison
| Tool | Description |
|---|---|
get_backtest_history |
List all backtests for EA/symbol with summary metrics |
compare_backtests |
Compare 2+ backtest results side-by-side with analysis |
.set file — read / write
| Tool | Description |
|---|---|
list_set_files |
All .set files in tester profiles dir with sweep stats and combination counts |
read_set_file |
Parse UTF-16LE .set file → structured JSON params |
write_set_file |
Write full params dict → UTF-16LE .set with chmod 444 |
patch_set_file |
Update specific params in-place, return diff — replaces read→edit→write |
clone_set_file |
Copy .set to new path with optional overrides in one call |
.set file — analysis & generation
| Tool | Description |
|---|---|
describe_sweep |
Swept params, value counts, and total optimization combinations |
diff_set_files |
Side-by-side diff of two .set files — only changed params returned |
set_from_optimization |
Generate a clean backtest .set from get_optimization_results params; optionally narrow sweep |
Search & Discovery
| Tool | Description |
|---|---|
search_experts |
Search EAs by name pattern across all directories |
search_indicators |
Search indicators by name pattern |
search_scripts |
Search scripts by name pattern |
copy_indicator_to_project |
Copy indicator to project directory |
copy_script_to_project |
Copy script to project directory |
Full schema: docs/MCP_TOOLS.md
Troubleshooting
Run verify_setup from Claude first — it checks all paths and returns actionable hints.
For crashes or unexplained failures during backtest/compile/optimization:
diagnose_wine— Check Wine installation and prefix healthsearch_mt5_errors— Find crash causes in logscheck_mt5_process+kill_mt5_process— Detect and kill stuck processesget_backtest_crash_info— Investigate failed backtest reports
Acknowledgements
MT5-Quant stands on the shoulders of exceptional open-source projects:
- Rust — The language that makes zero-cost abstractions, memory safety, and fearless concurrency practical
- Tokio — The async runtime powering all concurrent operations
- Wine — Making MT5 execution possible on macOS and Linux without Windows licensing
- MetaTrader 5 — MetaQuotes' trading platform (trademark of MetaQuotes Software Corp.)
- rusqlite — Ergonomic SQLite bindings for Rust
- serde — The serialization framework making config and report handling painless
- scraper — HTML parsing for MT5 report extraction
- tempfile — Secure temporary file handling
Special thanks to the Model Context Protocol (MCP) team at Anthropic for defining the standard that makes AI-powered development workflows possible.
Disclaimer
Not Financial Advice. MT5-Quant is a development and analysis tool for algorithmic trading strategies. It does not provide investment advice, trading recommendations, or guarantee profitability. All backtest results are historical simulations and do not guarantee future performance.
Use at Your Own Risk. Trading financial instruments carries substantial risk of loss. The authors and contributors of MT5-Quant accept no liability for:
- Trading losses incurred using strategies developed or tested with this tool
- Data loss or corruption from backtest operations
- Bugs, errors, or incorrect analysis results
- System crashes, Wine compatibility issues, or MT5 failures
Software Warranty. This software is provided "as-is" without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. See LICENSE for full terms.
Third-Party Software. MT5-Quant interacts with MetaTrader 5, Wine, and other third-party software. Users are responsible for complying with all applicable licenses and terms of service for these dependencies. MetaTrader is a trademark of MetaQuotes Software Corp. MT5-Quant is not affiliated with, endorsed by, or sponsored by MetaQuotes.
Regulatory Compliance. Users are responsible for ensuring their trading activities comply with applicable financial regulations in their jurisdiction. Automated trading may be restricted or require licensing in some regions.
License
MIT
Recommended MCP Servers
How it compares
87-tool MT5 trading integration MCP, not a generic backtesting Python library skill.
FAQ
Who is MT5 Quant for?
Developers automating MetaTrader 5 strategies who want Claude Code or Cursor to orchestrate backtests and EA fixes on macOS/Linux.
When should I use MT5 Quant?
Use it while writing or optimizing MQL5 EAs, running strategy tester workflows, or debugging execution logic through your agent.
How do I add MT5 Quant to my agent?
Install the mcpb release for your platform, set MT5_MCP_HOME if needed, register the stdio server in your MCP config, and ensure MT5 connectivity per project docs.