Skip to content

ShadowNineX/ce-mcp

Repository files navigation

Cheat Engine MCP Server

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.

FOSSA

Architecture

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:6300 with 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

Requirements

  • 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.10

Important

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.10

Or download them from https://dotnet.microsoft.com/download/dotnet/10.0

Installation

Option 1: Download Pre-built DLLs (Recommended)

Pre-built Debug and Release bundles are automatically generated by GitHub Actions on every commit:

  1. Go to the Actions tab on GitHub
  2. Click on the latest successful workflow run
  3. Scroll down to the Artifacts section
  4. Download either:
    • ce-mcp-debug - Debug build (larger, with debugging info)
    • ce-mcp-release - Release build (optimized, recommended for normal use)
  5. Extract the downloaded ZIP. It contains ce-mcp.dll and the distributable skills/ce-mcp/ AI skill folder.
  6. Copy ce-mcp.dll to your Cheat Engine plugins directory.
  7. Keep or distribute skills/ce-mcp/ alongside the DLL bundle for AI clients that consume repo skills.
  8. Enable the plugin in Cheat Engine.

Option 2: Build from Source

git submodule update --init --recursive
dotnet restore
dotnet build

Build 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.

Development

Initial Setup

First, initialize the git submodule (CESDK):

git submodule update --init --recursive

If you cloned the repo without submodules, this command will download the required CESDK dependency.

Building

# 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 Release

Note: If you encounter a FodyCommon.dll access denied error during restore/build, close your IDE and restart it to release the file lock.

Testing

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-loaded ce-mcp.dll through 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=Live

Current 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:

  1. Build the plugin and copy ce-mcp.dll to the Cheat Engine plugins directory.
  2. Restart Cheat Engine and enable the plugin.
  3. Use the MCP menu to start the server.
  4. Connect an MCP client to http://localhost:6300/.

MCP Client Configuration

Add the following to your MCP client configuration (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "cheat-engine": {
      "url": "http://localhost:6300/"
    }
  }
}

Contributors

Contributors

Made with contrib.rocks.

About

Automate Cheat Engine using MCP protocol for use with AI!

Resources

License

Stars

48 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages