Cheat Engine MCP
FreeNot checkedCheat Engine plugin exposing an HTTP MCP endpoint for AI-driven memory inspection, disassembly, and breakpoint operations on Windows.
About
Cheat Engine plugin exposing an HTTP MCP endpoint for AI-driven memory inspection, disassembly, and breakpoint operations on Windows.
README
Single-DLL Cheat Engine plugin runtime for ce-mcp.
The official delivery model remains one ce_plugin.dll. Version 0.3.0 is a clean rewrite that keeps Rust as the formal product surface and removes historical compatibility debt from the official design. Users do not manually load a separate bridge or manage a second runtime component.
Fork Notice
- This repository is derived from
miscusi-peek/cheatengine-mcp-bridge. - Original project license: MIT.
- Original copyright notice:
Copyright (c) 2025 miscusi-peek.
Delivery Model / 0.3.0 Direction
- Product identity:
ce-mcp / ce_plugin - External artifact: one
ce_plugin.dll - Rust is the only formal product runtime surface
- Historical compatibility debt is not part of the 0.3.0 target
- Legacy Lua materials are reference material only, not a product contract
- External versioning follows
ce_plugin/Cargo.tomland this README
Overview
This project turns Cheat Engine into a local MCP tool host.
Instead of asking an AI model to reason blindly about a target process, the model can call structured tools through MCP and collaborate with Cheat Engine as the actual reversing backend:
- inspect modules, threads, and memory regions
- read and write process memory
- resolve pointer chains and scan patterns
- disassemble code and analyze references
- place breakpoints and collect hit data
- run Lua and Auto Assembler scripts inside CE
The result is a practical workflow where:
- Cheat Engine remains the live debugger and memory-analysis engine
- the MCP client provides transport and tool invocation
- Rust provides the plugin envelope and transport surface
- The 0.3.0 target is a clean Windows-focused Rust product surface with explicit MCP, config, and auth boundaries
- the model handles hypothesis generation, planning, correlation, and iterative reverse-engineering tasks
Reverse Engineering Workflow
Typical AI-assisted workflow with this plugin:
- Load the plugin in Cheat Engine and attach the target process.
- Confirm
/healthandpingare healthy. - Let the model inspect modules, memory regions, symbols, and threads.
- Use scan, pointer, and memory tools to locate runtime data.
- Use disassembly and reference tools to map code paths and calling relationships.
- Use breakpoints or DBVM watch to observe runtime behavior.
- Use Lua or Auto Assembler to validate patches, hooks, and automation logic.
This is designed for dynamic analysis, game reversing, runtime inspection, memory tooling, and operator-guided debugging sessions.
Quick Start
1. Build
cd ce_plugin
cargo build --release
Output DLL:
ce_plugin/target/release/ce_plugin.dll
2. Load in Cheat Engine
- Open Cheat Engine.
- Load
ce_plugin.dllas a plugin. - Attach a target process.
- Confirm the plugin console shows runtime status.
- Do not manually load extra bridge assets; runtime bootstrap is owned by the plugin.
3. Connect MCP Client
- Single-instance fixed-port mode: set
server.port=18765, then connect toGET http://127.0.0.1:18765/healthandPOST http://127.0.0.1:18765/mcp - Multi-instance recommended mode: set
server.port=0, let the plugin allocate a free port, then read the actualbind_addrfrom the local discovery registry
The exact client config depends on whether the MCP client supports HTTP or Streamable HTTP transport.
Runtime Notes
- The official backend direction for process / memory / analysis tooling is CE-first execution through the CE-native runtime bridge exposed by
get_lua_state. Native WinAPI / process-handle paths are no longer the architectural baseline for DMA-oriented scenarios. dispatcher_mode = window-message-hookmeans CE main-window dispatch hook is active.script_runtime_ready = truemeans script-sensitive tools and backend-bootstrap-dependent CE paths are available.- If the hook cannot be installed, the plugin may fall back to
serialized-worker. - Fallback mode is a degraded compatibility path, not the preferred long-term backend for migrated CE-first tools.
/healthandpingreturninstance_id / ce_pid / target_pid / bind_addr / requested_bind_addrfor multi-instance routing and diagnostics.- When
runtime.debug_enabled=true, per-instance debug logs are written asce_plugin.<ce_pid>.<instance_id[:8]>.debug.log.
Tool Surface
The tool surface is organized around the normal stages of dynamic reverse engineering.
Process & Symbols
Used to establish context before analysis starts.
ping: Health probe for plugin liveness, instance identity, bind addresses, dispatcher mode, and script runtime state.get_process_info: Returns the currently attached process summary, architecture, and loaded module count.enum_modules: Lists loaded modules with base addresses, sizes, and paths.get_thread_list: Enumerates target-process threads for runtime inspection.get_symbol_address: Resolves a symbol or module expression into an address.get_address_info: Resolves an address back into module-relative metadata.normalize_address: Normalizes a runtime address intomodule_name / module_base / va / rva.get_module_fingerprint: Returns build-oriented module metadata such as image base, image size, PE timestamp, entry RVA, section hashes, and import hash.get_rtti_classname: Attempts RTTI-based class name recovery from an object address.
Memory Read/Write
Used to confirm data layouts, runtime state, object fields, and patch candidates.
read_memory: Reads raw bytes from process memory.read_integer: Reads numeric values such asbyte,word,dword,qword,float, anddouble.read_string: Reads ANSI or UTF-16 strings from memory.read_pointer: Reads a pointer value and can continue through offsets when provided.read_pointer_chain: Resolves a multi-level pointer chain and reports the traversal path.batch_read_memory: Reads multiple memory regions in one call.write_memory: Writes raw bytes into process memory.write_integer: Writes numeric values into memory.write_string: Writes ANSI or UTF-16 strings into memory.
Scan & Search
Used to find candidate values, signatures, regions, and runtime anchors.
scan_all: Starts an initial value scan and creates a scan session.get_scan_results: Returns the current scan result set.next_scan: Refines the previous scan result set.aob_scan: Searches memory for an AOB signature.search_string: Searches readable memory for text strings.generate_signature: Builds a signature candidate around a target address.get_memory_regions: Returns commonly useful committed memory regions.enum_memory_regions_full: Enumerates the full memory map.checksum_memory: Computes an MD5 checksum for a memory region.
Analysis
Used to move from raw addresses to code structure and behavioral understanding.
disassemble: Disassembles instructions from a target address range.batch_disassemble: Disassembles multiple target ranges in one call.get_instruction_info: Decodes a single instruction with detailed metadata.find_function_boundaries: Heuristically locates function start and end boundaries.analyze_function: Extracts call relationships from a function body.find_references: Finds instructions that reference a target address.find_call_references: Finds call sites that target a function address.dissect_structure: Heuristically infers object or structure field layout from memory.
Debug / DBVM
Used to observe behavior instead of inferring it statically.
set_breakpoint: Sets an execution hardware breakpoint.set_data_breakpoint: Sets a data-access or write breakpoint.remove_breakpoint: Removes a breakpoint by id.list_breakpoints: Lists active breakpoints.clear_all_breakpoints: Clears all active breakpoints.get_breakpoint_hits: Returns captured breakpoint-hit records and structuredevidenceoutput.get_physical_address: Translates a virtual address to a physical address.start_dbvm_watch: Starts a DBVM watch tracing session.poll_dbvm_watch: Polls intermediate DBVM watch results without stopping the session.stop_dbvm_watch: Stops a DBVM watch session and returns final results.
Script
Used to automate CE-side logic, validate ideas quickly, and apply patches during analysis.
evaluate_lua: Executes a Lua snippet inside Cheat Engine.evaluate_lua_file: Executes a local Lua file inside Cheat Engine.auto_assemble: Executes an Auto Assembler script.auto_assemble_file: Executes a local Auto Assembler script file.
Output Conventions
Recent refactors standardize more runtime results for downstream orchestration:
- address-like results increasingly expose
normalized_address - pointer and chain results may also expose normalized pointer targets
- debug and DBVM watch flows now expose structured
evidence - batch endpoints are designed so one failing item does not abort the whole batch
Compatibility Policy
Version 0.3.0 does not preserve historical compatibility aliases as part of the formal product surface. The supported entrypoints are the new MCP methods and the canonical tool names exposed by tools/list.
Requirements
- Windows
- Cheat Engine
7.5 x64or7.6 x64 - Rust toolchain for local builds
Configuration
Version 0.3.0 uses a DLL-side config file as the formal configuration entrypoint.
Supported config filenames:
ce_plugin.jsonce_plugin.config.json
Example config file: examples/ce_plugin.example.json
Example:
{
"server": {
"host": "127.0.0.1",
"port": 0
},
"auth": {
"enabled": false,
"token": ""
},
"runtime": {
"dispatch_timeout_ms": 5000,
"console_log_enabled": true,
"debug_enabled": false,
"console_title": "流云MCP插件"
}
}
0.0.0.0 or public bind targets require auth.enabled=true and a non-empty bearer token.
Recommended configuration:
- Single-instance fixed port: set
server.port=18765or another explicit port and connect directly. - Multi-instance automatic ports: set
server.port=0and let the plugin claim a free local port.
Local discovery registry:
- Directory:
%LOCALAPPDATA%\ce-mcp\instances\ - File model: one live
ce-<ce_pid>.jsonper active CE process - Record fields:
instance_id,ce_pid,target_pid,plugin_id,bind_addr,requested_bind_addr,dll_path,debug_log_path,server_version,last_heartbeat_unix_ms - Lifecycle: register on startup, refresh heartbeat while running, remove on clean shutdown, prune stale entries during startup and heartbeat refresh
Client-facing integration follows the MCP HTTP endpoint (/mcp) and health endpoint (/health) described in this README. Multi-instance clients should enumerate the discovery registry first, then connect to the instance-specific bind_addr.
Project Layout
ce-mcp/
├─ ce_plugin/
│ └─ Cargo.toml
├─ README.md
├─ README.zh-CN.md
└─ LICENSE
License
MIT. See LICENSE.
CE-native inline runtime snippets used by the plugin follow the same repository-level ce-mcp / ce_plugin product identity and fork notice. They are implementation details, not a separately versioned end-user product.
Installing Cheat Engine MCP
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/final0920/ce-mcpFAQ
Is Cheat Engine MCP MCP free?
Yes, Cheat Engine MCP MCP is free — one-click install via Unyly at no cost.
Does Cheat Engine MCP need an API key?
No, Cheat Engine MCP runs without API keys or environment variables.
Is Cheat Engine MCP hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Cheat Engine MCP in Claude Desktop, Claude Code or Cursor?
Open Cheat Engine MCP on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Cheat Engine MCP with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
