Python client library for x64dbg Automate — RPC-based automation of x64dbg debugger via ZMQ/msgpack.
poetry install --extras mcp --with dev # install deps (mcp extra + dev tools)
python -m pytest # run tests (requires running x64dbg with plugin)
python -m mkdocs serve # docs dev serverTEST_BITNESS— 32 or 64 (default: 64)X64DBG_PATH— path to x64dbg executable
An MCP (Model Context Protocol) server is included, exposing x64dbg automation as MCP tools for LLM-based agents (e.g. Claude Code).
- Module:
x64dbg_automate.mcp_server(mcp_server.py) - Entry point:
x64dbg-automate-mcp(console script) - Install:
pip install x64dbg_automate[mcp](adds themcpextra dependency) - Run:
x64dbg-automate-mcp(stdio transport by default) - Pattern: Global
_clientmanaged viastart_session/connect_to_session/disconnect/terminate_sessiontools; all other tools call_require_client().
Mixin chain: XAutoClientBase → XAutoCommandsMixin (low-level RPC) → XAutoHighLevelCommandAbstractionMixin (convenience methods) → X64DbgClient (also mixes in DebugEventQueueMixin).
ZMQ REQ/REP for sync commands, PUB/SUB for async events. Msgpack serialization. Thread-safe via _req_lock.
Keep all commits authored solely as the repo owner (Darius Houle) — do not add Co-Authored-By or other attribution trailers.
Do not add Claude/AI attribution to any GitHub text on this project — commit messages, PR titles and descriptions, PR/issue comments, and issue bodies. This includes the 🤖 Generated with Claude Code footer and any Co-Authored-By: Claude line. All such text must read as authored solely by the repo owner.
- Type hints everywhere, modern union syntax (
X | NonenotOptional[X]) - Pydantic models for data structures (
models.py) - Google-style docstrings (Args/Returns/Raises)
- snake_case functions, PascalCase classes, UPPER_CASE constants
- Private methods prefixed with
_ - Enums use
StrEnum/IntEnum - No unnecessary abstractions — keep it direct