Skip to main content

MQL4/MQL5 MCP server - 6 tools for docs lookup, code validation, and code generation

Project description

MQL MCP

PyPI Python ChromaDB MCP License: MIT Tests

Complete MQL4/MQL5 reference documentation MCP server with 4853 entries covering 100% of the official MetaTrader 4/5 documentation sitemaps.

Quick Start | Tools | Configuration | Database | Development


One Command. Two Minutes. Fully Functional.

pip install mql-mcp
mqlmcp

That's it. On first run, the server auto-builds the ChromaDB vector store from shipped JSON data (takes 30-60 seconds for embedding model download + indexing). Subsequent runs start instantly.

What you get:

  • 6 MCP tools for MQL4/MQL5 docs lookup, code validation, and code generation
  • 4853 entries indexed in a local ChromaDB vector store (100% offline)
  • Sub-millisecond hot cache for priority lookups
  • MetaEditor compiler integration (local, Wine, or SSH) for mql_compile
  • MQL4-to-MQL5 automatic migration via mql_repair
  • Works with Claude Desktop, Cursor, Windsurf, OpenCode, and any MCP client

What you need:

  • Python 3.10+
  • Any MCP-compatible AI client

Why MQL MCP?

AI coding assistants hallucinate MQL syntax. MQL5 introduced significant changes from MQL4 (handle-based indicators, CTrade class, CopyBuffer pattern, event model) that models trained on older code get wrong.

MQL MCP gives AI assistants authoritative, real-time access to the complete MetaTrader 4/5 reference:

  • 100% coverage: 4136/4136 MQL5 + 657/657 MQL4 sitemap URLs
  • MQL4 + MQL5 unified: Single database with version tagging and filtering
  • Semantic search: Vector embeddings find relevant docs by meaning, not keywords
  • Real compilation: mql_compile validates code via the actual MetaEditor compiler
  • MQL4 to MQL5 migration: mql_repair(mode="migrate") applies all known replacements
  • Code generation: mql_scaffold generates validated EA, indicator, or script templates
  • 100% local: No network calls at runtime (except optional compiler validation)

Tools

+----------------------+---------------------------------------------+
| Tool                 | Description                                 |
+----------------------+---------------------------------------------+
| mql_lookup           | Get complete docs for a symbol by exact name|
| mql_search           | Semantic search across all MQL4/MQL5 docs   |
| mql_browse           | Enumerate all members of a namespace        |
| mql_compile          | Compile MQL code via MetaEditor or syntax   |
| mql_repair           | Fix compiler errors or migrate MQL4 to MQL5 |
| mql_scaffold         | Generate EA, indicator, or script template  |
+----------------------+---------------------------------------------+

Tool Details

mql_lookup(name, kind?, version?) Get complete documentation for an MQL symbol by exact name. Auto-detects function, variable, type, constant, keyword, or operator. Returns syntax, parameters, returns, remarks, and code examples. Filter by version="mql4" or version="mql5".

mql_search(query, category?, namespace?, n_results?, version?) Semantic search across the entire MQL4/MQL5 reference. Supports category filtering, namespace filtering, and version filtering.

mql_browse(namespace, category?, style?, version?) Enumerate every member of a namespace (e.g., trade, indicator, array). style="cheatsheet" produces a compact, box-drawn signature summary.

mql_compile(code?, file_path?, explain?, version?) Compile MQL code via the real MetaEditor compiler. Supports inline code, file paths, and explain=True for error-specific fix hints. Compilation methods (tried in order): local MetaEditor, remote SSH MetaEditor, syntax-only validation fallback.

mql_repair(code, context, mode?, version?) Fix compiler errors (mode="targeted") or migrate MQL4 code to MQL5 (mode="migrate"). Applies all known MQL4->MQL5 breaking change replacements, then recompiles to verify.

mql_scaffold(kind, name, description?, version?, lots?, take_profit?, stop_loss?, magic_number?) Generate a validated MQL EA, indicator, or script template. Pre-wired with standard inputs, risk parameters, and trade logic. Result is compiled before return.

MCP Client Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "mql-mcp": {
      "command": "mqlmcp",
      "transport": "stdio"
    }
  }
}

Cursor / Windsurf / OpenCode

Add to your project's .mcp.json or global MCP config:

{
  "mcpServers": {
    "mql-mcp": {
      "command": "mqlmcp",
      "transport": "stdio"
    }
  }
}

SSE (HTTP)

mqlmcp serve --transport sse --port 8080

Or via environment variable:

TRANSPORT=sse PORT=8080 mqlmcp

Connect to http://localhost:8080.

Configuration

+------------------------+---------------------+----------------------------------+
| Env Var                | Default             | Description                      |
+------------------------+---------------------+----------------------------------+
| TRANSPORT              | stdio               | Transport: stdio or sse          |
| PORT                   | 8080                | Port for SSE transport           |
| MQL_DB_PATH            | ./mql_db            | ChromaDB path                    |
| MQL_COLLECTION         | mql_reference       | ChromaDB collection name         |
| MQL_EMBED_MODEL        | all-MiniLM-L6-v2    | Sentence transformer model       |
| METAEDITOR_PATH        | (empty)             | Path to metaeditor64.exe         |
| METAEDITOR_SSH_HOST    | (empty)             | SSH host for remote compilation  |
| METAEDITOR_REMOTE_PATH | metaeditor64.exe    | Remote MetaEditor executable     |
| MQL_COMPILE_TIMEOUT    | 60                  | Compilation timeout in seconds   |
| LOG_LEVEL              | INFO                | Logging level                    |
| LAZY_MODEL             | 0                   | Set to 1 to defer model loading  |
+------------------------+---------------------+----------------------------------+

Database

  • 4853 entries (MQL4 + MQL5 unified)
  • MQL5: 4136/4136 sitemap URLs (100%)
  • MQL4: 657/657 sitemap URLs (100%)
  • 37 documentation sections + 33 MetaTrader5 Python API pages
  • Hot cache for sub-millisecond priority lookups
  • Auto-built on first run from shipped JSON data (7.5MB)

To rebuild the database:

mqlmcp build

Development

git clone https://github.com/TheFractalyst/mql-mcp.git
cd mql-mcp
pip install -e ".[dev]"
pytest tests/ -v

Re-scrape from MQL Docs

pip install -e ".[pipeline]"
python -m playwright install chromium
python pipeline/scrape_mql5.py
python pipeline/scrape_mql4.py
python pipeline/merge_and_index.py --reset --output-json data/mql_merged_entries.json

Docker

docker build -t mql-mcp .
docker run -p 8080:8080 -e TRANSPORT=sse mql-mcp

Tech Stack

  • FastMCP 3.4 - MCP server framework with FileSystemProvider auto-discovery
  • ChromaDB - Local vector database for semantic search (cosine, 384-dim)
  • SentenceTransformers - all-MiniLM-L6-v2 embedding model
  • RapidFuzz - Fuzzy string matching for name lookups
  • Loguru - Structured logging with daily rotation (SSE mode)

Links

License

MIT - see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mql_mcp-1.0.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mql_mcp-1.0.1-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file mql_mcp-1.0.1.tar.gz.

File metadata

  • Download URL: mql_mcp-1.0.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for mql_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 7d127cbb2752fe55a004821f0629bcb284a9eabdc4289c0209fc44d913a93797
MD5 d6e1cd4607288654cfc3f20b61f40089
BLAKE2b-256 b8e36db9ef838fb6e3bc07208b0d58d934bc66d05361ff18bdcd0d6d18a19cdf

See more details on using hashes here.

File details

Details for the file mql_mcp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: mql_mcp-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for mql_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e246498204d2ea8167c96801218af2bc33732351724187e7b938e0195b2697b4
MD5 4fb6b6d56676c3a765abbf484c60d147
BLAKE2b-256 ee47bf6a0604093fb14f7d8638d98f5d438bd70f5fc9cab0b61aab46414a4ffb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page