Warning
This project is not feature complete and is under development.
Things might break while features are added.
A Model Context Protocol (MCP) server plugin for Cheat Engine that provides access to Cheat Engine functionality.
This project exposes Cheat Engine functionality as MCP tools over Streamable HTTP using the official Model Context Protocol C# SDK.
- MCP Server: Runs on
http://localhost:6300with Streamable HTTP transport at/ - 11 MCP Tool Classes: Lua execution, process management, memory read/write, AOB scanning, disassembly, memory scanning, address list management, and more
- Single DLL Plugin Artifact: NuGet dependencies are embedded into
ce-mcp.dll; .NET shared runtimes still need to be installed on the machine - Distributable AI Skill: Release bundles include
skills/ce-mcp/beside the DLL for AI clients that consume repo skills - Direct MCP Integration: Connect AI clients (Claude Desktop, VS Code Copilot, etc.) directly — no bridge client needed
- Cheat Engine 7.6.2+ (minimum version with .NET Core plugin support)
- .NET 10 SDK for building
- .NET 10 Desktop Runtime (
Microsoft.WindowsDesktop.App 10.0.x) for WPF/plugin UI support - ASP.NET Core 10 Runtime (
Microsoft.AspNetCore.App 10.0.x) for the MCP HTTP server - Windows OS (I don't have a mac but if you can run it then open an issue and let me know.)
For Windows installs, Microsoft publishes these WinGet package IDs:
winget install Microsoft.DotNet.SDK.10
winget install Microsoft.DotNet.DesktopRuntime.10
winget install Microsoft.DotNet.AspNetCore.10Important
Cheat Engine 7.6.2 or newer is required. Older versions do not support .NET Core plugins.
Important
Check ce.runtimeconfig.json in your Cheat Engine install directory. Some Cheat Engine 7.6.x installs target .NET 9.0 by default; this plugin targets .NET 10.0.
If your file targets an older framework, update it to include the .NET 10 frameworks used by this plugin:
{
"runtimeOptions": {
"tfm": "net10.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "10.0.0",
"rollForward": "latestMinor"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "10.0.0",
"rollForward": "latestMinor"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "10.0.0",
"rollForward": "latestMinor"
}
]
}
}Note
If you get Failure executing CESDK.CESDK:CEPluginInitialize (Result=80070002), you are missing the .NET 10.0 runtimes. Install them with:
winget install Microsoft.DotNet.DesktopRuntime.10
winget install Microsoft.DotNet.AspNetCore.10Or download them from https://dotnet.microsoft.com/download/dotnet/10.0
Pre-built Debug and Release bundles are automatically generated by GitHub Actions on every commit:
- Go to the Actions tab on GitHub
- Click on the latest successful workflow run
- Scroll down to the Artifacts section
- Download either:
ce-mcp-debug- Debug build (larger, with debugging info)ce-mcp-release- Release build (optimized, recommended for normal use)
- Extract the downloaded ZIP. It contains
ce-mcp.dlland the distributableskills/ce-mcp/AI skill folder. - Copy
ce-mcp.dllto your Cheat Engine plugins directory. - Keep or distribute
skills/ce-mcp/alongside the DLL bundle for AI clients that consume repo skills. - Enable the plugin in Cheat Engine.
git submodule update --init --recursive
dotnet restore
dotnet buildBuild output is written to bin/x64/Debug/net10.0-windows/. Copy ce-mcp.dll from that folder into your Cheat Engine plugins directory, then restart Cheat Engine and enable the plugin. The same output folder also contains skills/ce-mcp/; keep that folder with the distributable bundle for AI clients.
First, initialize the git submodule (CESDK):
git submodule update --init --recursiveIf you cloned the repo without submodules, this command will download the required CESDK dependency.
# Build the C# plugin
dotnet build
# Run normal tests that do not require Cheat Engine
dotnet test --filter "TestCategory!=Live"
# Build in Release mode
dotnet build -c ReleaseNote: If you encounter a FodyCommon.dll access denied error during restore/build, close your IDE and restart it to release the file lock.
The test project is split by runtime requirements:
tests/CeMCP.Tests/Unit/: normal tests that run without Cheat Engine.tests/CeMCP.Tests/Live/: opt-in runtime tests that call a CE-loadedce-mcp.dllthrough MCP.tests/CeMCP.Tests/Support/: shared test helpers.
Run the normal dev/CI tests:
dotnet restore
dotnet build
dotnet test --filter "TestCategory!=Live"dotnet test without a filter is also safe when Cheat Engine is not running, but the live tests will appear as skipped. CI uses the normal-only filter.
Live tests treat Cheat Engine as the test fixture. Run them only after loading the freshly built DLL into Cheat Engine:
dotnet build
# Copy this DLL into Cheat Engine's plugins directory:
# bin\x64\Debug\net10.0-windows\ce-mcp.dll
#
# Then restart Cheat Engine, enable the plugin, and start the server from the MCP menu.
$env:CE_MCP_LIVE = "1"
$env:CE_MCP_URL = "http://localhost:6300/"
dotnet test --filter TestCategory=LiveCurrent live tests use only safe read/inspection calls: initialize/list tools, get_plugin_version, get_current_process, and execute_lua with a small return script. Tests that write memory, attach debuggers, alter target execution, or require a specific target process must stay opt-in and document their setup clearly.
Manual smoke testing is still useful for UI and CE runtime behavior:
- Build the plugin and copy
ce-mcp.dllto the Cheat Engine plugins directory. - Restart Cheat Engine and enable the plugin.
- Use the
MCPmenu to start the server. - Connect an MCP client to
http://localhost:6300/.
Add the following to your MCP client configuration (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"cheat-engine": {
"url": "http://localhost:6300/"
}
}
}Made with contrib.rocks.