
MT5-Quant
Wraps MetaTrader 5 in 89 MCP tools so you can compile, backtest, and optimize MQL5 Expert Advisors from macOS or Linux without Windows. Ships as a single Rust binary that orchestrates MetaEditor via Wine, runs genetic optimizations in the background, and stores all backtest reports plus individual deal records in SQLite. The deal-level analytics are the standout: you get 19-dimension queries like profit distribution by hour of day, grid layer performance extracted from comments, hold time correlation with P/L, and commission impact analysis. Useful if you're running algorithmic forex strategies and want programmatic access to backtest pipelines and granular trade forensics that MT5's own terminal doesn't expose.
- GitHub stars
- 48
- tools
- 80
- transport
- STDIO
- env var
- 1
- last updated
- Aug 25, 2026
Tools
80 toolsPublic tool metadata for what this MCP can expose to an agent.
run_backtestFull pipeline: compile → clean → backtest → extract → analyze
Full pipeline: compile → clean → backtest → extract → analyze
No parameter schema in public metadata yet.
run_backtest_quickQuick backtest using pre-compiled EA (skip compile)
Quick backtest using pre-compiled EA (skip compile)
No parameter schema in public metadata yet.
run_backtest_onlyBacktest only - just extract raw trades, no analysis
Backtest only - just extract raw trades, no analysis
No parameter schema in public metadata yet.
launch_backtestFire-and-forget: launch MT5 backtest, poll for completion
Fire-and-forget: launch MT5 backtest, poll for completion
No parameter schema in public metadata yet.
get_backtest_statusPoll running backtest status (MT5 running, report found, elapsed time)
Poll running backtest status (MT5 running, report found, elapsed time)
No parameter schema in public metadata yet.
run_optimizationGenetic optimization (background, returns immediately)
Genetic optimization (background, returns immediately)
No parameter schema in public metadata yet.
get_optimization_resultsParse optimization results after MT5 finishes
Parse optimization results after MT5 finishes
No parameter schema in public metadata yet.
list_jobsList all optimization jobs with status
List all optimization jobs with status
No parameter schema in public metadata yet.
analyze_reportRead analysis.json from any report directory
Read analysis.json from any report directory
No parameter schema in public metadata yet.
compare_baselineCompare report vs baseline, return winner/loser verdict
Compare report vs baseline, return winner/loser verdict
No parameter schema in public metadata yet.
compile_eaCompile MQL5 EA via MetaEditor
Compile MQL5 EA via MetaEditor
No parameter schema in public metadata yet.
list_expertsList all EAs in MQL5/Experts directory
List all EAs in MQL5/Experts directory
No parameter schema in public metadata yet.
list_indicatorsList all indicators in MQL5/Indicators directory
List all indicators in MQL5/Indicators directory
No parameter schema in public metadata yet.
list_scriptsList all scripts in MQL5/Scripts directory
List all scripts in MQL5/Scripts directory
No parameter schema in public metadata yet.
healthcheckQuick server health check
Quick server health check
No parameter schema in public metadata yet.
list_symbolsList all available symbols in MT5 terminal
List all available symbols in MT5 terminal
No parameter schema in public metadata yet.
analyze_monthly_pnlMonthly P/L breakdown only
Monthly P/L breakdown only
No parameter schema in public metadata yet.
analyze_drawdown_eventsDrawdown events and causes only
Drawdown events and causes only
No parameter schema in public metadata yet.
analyze_top_lossesWorst losing deals only
Worst losing deals only
No parameter schema in public metadata yet.
analyze_loss_sequencesConsecutive loss patterns only
Consecutive loss patterns only
No parameter schema in public metadata yet.
analyze_position_pairsPosition hold time and P/L pairs
Position hold time and P/L pairs
No parameter schema in public metadata yet.
analyze_direction_biasBuy vs Sell performance
Buy vs Sell performance
No parameter schema in public metadata yet.
analyze_streaksWin/loss streak analysis
Win/loss streak analysis
No parameter schema in public metadata yet.
analyze_concurrent_peakPeak simultaneous positions
Peak simultaneous positions
No parameter schema in public metadata yet.
list_dealsList individual deals with filters (type, profit range, volume, dates)
List individual deals with filters (type, profit range, volume, dates)
No parameter schema in public metadata yet.
search_deals_by_commentFull-text search in deal comments (e.g., "Layer #3")
Full-text search in deal comments (e.g., "Layer #3")
No parameter schema in public metadata yet.
search_deals_by_magicFilter deals by EA magic number
Filter deals by EA magic number
No parameter schema in public metadata yet.
analyze_profit_distributionProfit histogram: small/medium/large wins and losses
Profit histogram: small/medium/large wins and losses
No parameter schema in public metadata yet.
analyze_time_performancePerformance by hour of day and day of week
Performance by hour of day and day of week
No parameter schema in public metadata yet.
analyze_hold_time_distributionHold time buckets + correlation with profit
Hold time buckets + correlation with profit
No parameter schema in public metadata yet.
analyze_layer_performanceGrid/martingale layer analysis from comments
Grid/martingale layer analysis from comments
No parameter schema in public metadata yet.
analyze_volume_vs_profitVolume correlation + performance by lot size
Volume correlation + performance by lot size
No parameter schema in public metadata yet.
analyze_costsCommission and swap impact on profitability
Commission and swap impact on profitability
No parameter schema in public metadata yet.
analyze_efficiencyProfit per hour/day, annualized return, trade frequency
Profit per hour/day, annualized return, trade frequency
No parameter schema in public metadata yet.
verify_setupCheck Wine/MT5 paths, Wine version, and EA/set file counts
Check Wine/MT5 paths, Wine version, and EA/set file counts
No parameter schema in public metadata yet.
get_optimization_statusCheck live state of a background optimization job
Check live state of a background optimization job
No parameter schema in public metadata yet.
list_reportsCompact table of all runs with key metrics — no full analysis needed
Compact table of all runs with key metrics — no full analysis needed
No parameter schema in public metadata yet.
get_latest_reportGet most recent report with optional equity chart
Get most recent report with optional equity chart
No parameter schema in public metadata yet.
search_reportsFind reports by EA, symbol, date range, or profit criteria
Find reports by EA, symbol, date range, or profit criteria
No parameter schema in public metadata yet.
get_report_by_idGet specific report by ID with equity chart
Get specific report by ID with equity chart
No parameter schema in public metadata yet.
get_reports_summaryAggregate stats: counts, averages, pass rates
Aggregate stats: counts, averages, pass rates
No parameter schema in public metadata yet.
get_best_reportsTop N reports sorted by any metric (profit factor, drawdown, etc.)
Top N reports sorted by any metric (profit factor, drawdown, etc.)
No parameter schema in public metadata yet.
search_reports_by_tagsFind reports by tags
Find reports by tags
No parameter schema in public metadata yet.
search_reports_by_date_rangeQuery by backtest date range
Query by backtest date range
No parameter schema in public metadata yet.
search_reports_by_notesFull-text search in report notes
Full-text search in report notes
No parameter schema in public metadata yet.
get_reports_by_set_fileFind all reports using a specific .set file
Find all reports using a specific .set file
No parameter schema in public metadata yet.
get_comparable_reportsFind comparable reports (same EA/symbol/timeframe)
Find comparable reports (same EA/symbol/timeframe)
No parameter schema in public metadata yet.
tail_logRead last N lines of any log; filter=errors to see only failures
Read last N lines of any log; filter=errors to see only failures
No parameter schema in public metadata yet.
prune_reportsDelete old report directories, keep last N (skips _opt dirs)
Delete old report directories, keep last N (skips _opt dirs)
No parameter schema in public metadata yet.
promote_to_baselineWrite a history entry or report to baseline.json for compare_baseline
Write a history entry or report to baseline.json for compare_baseline
No parameter schema in public metadata yet.
archive_reportConvert one report dir → compact JSON entry in backtest_history.json, optionally delete source
Convert one report dir → compact JSON entry in backtest_history.json, optionally delete source
No parameter schema in public metadata yet.
archive_all_reportsBulk-archive all report dirs then optionally delete them; keeps N newest safe
Bulk-archive all report dirs then optionally delete them; keeps N newest safe
No parameter schema in public metadata yet.
get_historyQuery history with filters (EA, symbol, verdict, profit, DD) and sort options
Query history with filters (EA, symbol, verdict, profit, DD) and sort options
No parameter schema in public metadata yet.
annotate_historyAttach verdict / notes / tags to any history entry
Attach verdict / notes / tags to any history entry
No parameter schema in public metadata yet.
cache_statusMT5 tester cache size breakdown by symbol — check before cleaning
MT5 tester cache size breakdown by symbol — check before cleaning
No parameter schema in public metadata yet.
clean_cacheDelete tester cache files; supports per-symbol and dry_run
Delete tester cache files; supports per-symbol and dry_run
No parameter schema in public metadata yet.
get_active_accountGet current MT5 account session (login, server, available symbols)
Get current MT5 account session (login, server, available symbols)
No parameter schema in public metadata yet.
check_symbol_data_statusValidate symbol has sufficient history data for date range
Validate symbol has sufficient history data for date range
No parameter schema in public metadata yet.
check_mt5_statusCheck if MT5 terminal is installed and ready
Check if MT5 terminal is installed and ready
No parameter schema in public metadata yet.
validate_ea_syntaxPre-compile syntax check without running full compilation
Pre-compile syntax check without running full compilation
No parameter schema in public metadata yet.
diagnose_wineCheck Wine installation, version, and prefix health
Check Wine installation, version, and prefix health
No parameter schema in public metadata yet.
get_mt5_logsGet MT5 terminal, tester, or MetaEditor logs with filtering
Get MT5 terminal, tester, or MetaEditor logs with filtering
No parameter schema in public metadata yet.
search_mt5_errorsSearch logs for error patterns (crash, exception, access violation)
Search logs for error patterns (crash, exception, access violation)
No parameter schema in public metadata yet.
check_mt5_processCheck if MT5 processes are running, get PID, CPU, memory usage
Check if MT5 processes are running, get PID, CPU, memory usage
No parameter schema in public metadata yet.
kill_mt5_processKill stuck MT5 processes (force=true for wineserver)
Kill stuck MT5 processes (force=true for wineserver)
No parameter schema in public metadata yet.
check_system_resourcesCheck disk space, memory, CPU availability
Check disk space, memory, CPU availability
No parameter schema in public metadata yet.
validate_mt5_configValidate terminal.ini and tester configuration files
Validate terminal.ini and tester configuration files
No parameter schema in public metadata yet.
get_wine_prefix_infoGet Wine prefix details: Windows version, installed programs, registry
Get Wine prefix details: Windows version, installed programs, registry
No parameter schema in public metadata yet.
get_backtest_crash_infoInvestigate backtest failures: incomplete markers, missing deals.csv, errors
Investigate backtest failures: incomplete markers, missing deals.csv, errors
No parameter schema in public metadata yet.
check_updateCheck if a newer version of MT5-Quant is available
Check if a newer version of MT5-Quant is available
No parameter schema in public metadata yet.
updateUpdate MT5-Quant to latest release
Update MT5-Quant to latest release
No parameter schema in public metadata yet.
init_projectScaffold new MQL5 project with templates (scalper/swing/grid/basic)
Scaffold new MQL5 project with templates (scalper/swing/grid/basic)
No parameter schema in public metadata yet.
create_set_templateGenerate .set parameter file from EA input variables
Generate .set parameter file from EA input variables
No parameter schema in public metadata yet.
export_reportExport backtest report to CSV, JSON, or Markdown
Export backtest report to CSV, JSON, or Markdown
No parameter schema in public metadata yet.
get_backtest_historyList all backtests for EA/symbol with summary metrics
List all backtests for EA/symbol with summary metrics
No parameter schema in public metadata yet.
compare_backtestsCompare 2+ backtest results side-by-side with analysis
Compare 2+ backtest results side-by-side with analysis
No parameter schema in public metadata yet.
list_set_filesAll .set files in tester profiles dir with sweep stats and combination counts
All .set files in tester profiles dir with sweep stats and combination counts
No parameter schema in public metadata yet.
read_set_fileParse UTF-16LE .set file → structured JSON params
Parse UTF-16LE .set file → structured JSON params
No parameter schema in public metadata yet.
write_set_fileWrite full params dict → UTF-16LE .set with chmod 444
Write full params dict → UTF-16LE .set with chmod 444
No parameter schema in public metadata yet.
patch_set_fileUpdate specific params in-place, return diff — replaces read→edit→write
Update specific params in-place, return diff — replaces read→edit→write
No parameter schema in public metadata yet.
Sponsors
Configuration
MT5_MCP_HOMEPath to MT5-Quant config directory (default: ~/.config/mt5-quant)
Readme
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?"
Details
- Repository
- github.com/masdevid/mt5-quant
- Package
https://github.com/masdevid/mt5-quant/releases/download/v1.34.3/mcp-mt5-quant-macos-arm64.tar.gz- Transport
- STDIO
- Registry
- MCP registry, active