masdevid avatar

MT5-Quant

masdevid/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 tools

Public 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_HOME

Path to MT5-Quant config directory (default: ~/.config/mt5-quant)

Readme

MT5-Quant

OpenSSF Scorecard CII Best Practices Rust CI crates.io License: MIT CodeQL

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?"

View the full README on GitHub

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