asymptomatik-cheatengine
Provides tools for inspecting Mono/IL2CPP (Unity) games at runtime: initializing the Mono runtime, listing assemblies, classes, fields and methods, reading field values, reading statics, dumping the game's class structure, and searching for live object instances in memory.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
asymptomatik-cheatengine
Drive Cheat Engine from Claude Code: attach to a game, scan for values, read and write memory, follow pointers, watch what code touches an address, patch code, inspect Mono / IL2CPP (Unity) objects, take screenshots — by asking Claude in plain language.
You: find my health in the tutorial, it's 100 and drops when I click "Hit me"
Claude: [unknown scan] → [decreased] → [between 1 and 99] → 0x015887E0 = 85
[watchpoint] → written by "sub [rbx+00000800],edx" at Tutorial-x86_64.exe+47F6D
[pointer scan] → ["Tutorial-x86_64.exe"+346C10]+800 (static, survives restarts)Everything runs on your machine: the plugin talks to Cheat Engine through a local named pipe; nothing is sent anywhere else.
Use it on games and programs you own, single-player or offline. Online games' terms of service usually forbid memory editing, and anti-cheat systems can ban you.
Requirements
Windows
Cheat Engine 7.7 or later (the plugin refuses older versions: it relies on 7.7's scan API)
Node.js 22 or later on your
PATH(node --version). Built for Node 22; tested on the latest Node 22 (CI) and on Node 23Claude Code
Related MCP server: ce-mcp
Installation
In Claude Code:
/plugin marketplace add djethino/asymptomatik-claude-plugins /plugin install asymptomatik-cheatengine@asymptomatikRestart Claude Code.
Install the Cheat Engine side, once:
/ce-installIt finds Cheat Engine (registry or Program Files) and writes a small loader into its
autorunfolder. A Windows administrator prompt appears if that folder is not writable.Restart Cheat Engine. Its main window now has an MCP menu and a status label.
Ask Claude to check: "ce_status" — it should say
Connected: Lua 5.3 - CE 7.7 ...andloader installed.
Updates of the plugin reach Cheat Engine by themselves: the loader runs a per-user copy of the CE script (%LOCALAPPDATA%\cheatengine-mcp\) that the plugin refreshes at every start. A running Cheat Engine keeps the script it started with: ce_status says when it runs an older copy, and ce_restart restarts it. /ce-install is only needed again if ce_status reports the loader as missing or outdated.
Safety
Two independent locks, plus an anti-cheat guard:
What it locks | Default | Change it | |
SAFE mode | The tools that can crash the game or Cheat Engine: | On at every start |
|
Anti-cheat guard | Every tool on a process that embeds an anti-cheat (EasyAntiCheat, BattlEye, Vanguard, XIGNCODE (Wellbia), nProtect GameGuard, ACE, mhyprot, EQU8, FACEIT, Denuvo Anti-Cheat, or Unity's Anti-Cheat Toolkit): even attaching | On, in SAFE mode | Claude must first tell you why (your account can be banned); only |
Read-only option | Everything that changes the game or writes a file (memory writes, freezes, hotkeys, patches, table saves...) | Off |
|
Reading, scanning, writing values and freezing are what Cheat Engine is for: they stay available in SAFE mode.
Every tool parameter reaches Cheat Engine's Lua as data, never as code, so no input — a process name with a quote, a string read from the game — can run commands of its own.
What you can ask
Area | Tools |
Connection |
|
Cheat Engine itself |
|
Processes and memory |
|
Value scans |
|
Pointers |
|
Address list (cheat table) |
|
Code and debugging |
|
Mono / IL2CPP (Unity) |
|
Screen |
|
Long operations |
|
Setup |
|
Some details worth knowing:
Dialogs never leave Claude waiting blind. When a call opens a dialog in Cheat Engine (an auto assembler error, a Mono failure...), the call stops at once and says what the dialog is. Claude may close a dialog that only informs (one button) after reading it; a dialog that asks something (Yes/No) is always yours to answer. Dialogs you open yourself in CE's window do not get in the way.
Long operations do not freeze Cheat Engine. Scans, AOB scans, pointer scans, value sampling and instance searches run in the background with a progress window (with a Cancel button) in CE, and send progress notifications to Claude Code. Most take
wait=falseto get a job id at once and check it later.Scans are Claude's own: they never touch the scan you run by hand in CE's main window. Several named scans can run side by side (
scan_name).Code changes go through the address list:
ce_asm_inject,ce_asm_scriptandce_code_entrycreate auto assembler entries you can see and toggle in CE; disabling one restores the original code.Unity fields by name:
ce_mono_read_field/ce_mono_write_fielduse the field's real .NET type. Values protected by the Anti-Cheat Toolkit (ObscuredInt,ObscuredFloat...) are decrypted, and written back encrypted with their honeypot kept in step; a decoding that the honeypot does not confirm is never written. On such a game the anti-cheat guard applies first.Screenshots stay off the disk by default: the image goes straight to Claude. They show the game's picture without the window frame (
client_only), andregionzooms on a part at full resolution. Givesave_pathto keep the PNG. The game window must not be minimized.Lists are paginated (
offset,limit,filter), and long outputs end with a line telling Claude how to read the rest.
Troubleshooting
Not connected: Cannot connect to \\.\pipe\ce-mcp — Cheat Engine is not running (Claude can start it with ce_launch), or its MCP plugin is not loaded. Check ce_status (loader state), run /ce-install if needed, restart CE, and check that CE's MCP menu shows the server as started.
Status label MCP: OFF (other CE) — another Cheat Engine already serves Claude Code: only one does, so that an unlock and a lock never land in different Cheat Engines. Work in that one, or close it and use Start Server in this one's MCP menu. ce_status warns when several Cheat Engines run.
Cheat Engine 7.7 or later is required — update Cheat Engine.
ce_status: "Cheat Engine runs an older copy of the plugin script" — the plugin was updated while Cheat Engine was running: restart Cheat Engine to load the new script.
BLOCKED: anti-cheat detected in ... — the game embeds an anti-cheat (see Safety). Using Cheat Engine on it can get your account banned; if you accept the risk (offline game, no account), run /unsafe-ce and confirm in Cheat Engine.
Cheat Engine is blocked by a dialog — a call opened a dialog in Cheat Engine and waits for it. The message says whether it only informs (Claude closes it after reading it with ce_dialogs) or asks you something (answer it in CE). The result of that call is lost: Claude checks the state afterwards.
Cheat Engine did not answer within ... s — the operation is still running in CE, or CE is stuck. The next call reconnects by itself; ce_restart restarts CE.
Another Claude Code session is using Cheat Engine — two Claude Code sessions cannot drive the same Cheat Engine at once (their calls would mix). The message tells Claude how to take it over if you want this session to.
Overlays do not show — CE's D3D hook only supports DirectX 9, 10 and 11, and does not work with every game. The overlay tool warns when the hook has not seen any frame of the game.
Mono tools fail — run ce_mono_init first (it injects CE's collector DLL, so it needs /unsafe-ce, and can take a minute); Mono tools only apply to .NET / Unity games.
How it works
The MCP server (dist/index.js, Node.js, no runtime dependency) connects to the Lua server Cheat Engine opens on a named pipe (openLuaServer, started by the CE-side plugin). Each tool call becomes one Lua chunk that also applies the SAFE gate and the anti-cheat guard, so the checks cannot be skipped; results come back through CE's pipe protocol. Calls are serialized: Cheat Engine runs every pipe script on its single Lua state.
Development: npm run build (type check + bundle; dist/ is committed because Claude Code does not build plugins), npm test (offline, against a fake Cheat Engine that runs the generated Lua in a real Lua interpreter).
License
MIT — Copyright (c) 2025 ASymptOmatik
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to programmatically control Cheat Engine for memory scanning, editing, cheat table management, and reverse engineering tasks.42MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI to directly control Cheat Engine for process attachment, memory scanning, reading/writing, address list management, speed hack, Lua/Auto Assembler execution, and CT file management via the MCP protocol.5MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Cheat Engine 7.6 that enables AI agents to perform memory scanning, reading/writing, process manipulation, debugging, and code injection via a Lua named pipe bridge.4GPL 3.0
- FlicenseNot gradedqualityBmaintenanceEnables structured dynamic analysis of authorized Windows processes via Cheat Engine 7.7, exposing bounded tools for process inspection and debugging without arbitrary code execution or memory writes.-