Inspect, drive and debug a running Ren'Py game: state, screenshots, guarded clicks, saves, builds.
io.github.alex-jordan547/renforge MCP Server
RenForge is an MCP (Model Context Protocol) server, CLI, and web dashboard for working with Ren’Py games. It supports inspecting and driving a running Ren’Py process for state visibility, screenshots, guarded clicks, save handling, and build-related actions.
🛠️ Key Features
Inspect Ren’Py game state
Drive a running Ren’Py game
Capture screenshots
Perform guarded clicks
Manage saves
Assist with builds
🚀 Use Cases
Debugging and testing Ren’Py runtime behavior
Automated investigation of game state during execution
Screenshot-based review of screens
Exercising click interactions with safety/guarding
Managing save/load workflows
Supporting build verification steps
⚡ Developer Benefits
Model Context Protocol integration (MCP)
Developer tooling for Ren’Py workflows
Supports multiple interfaces: server, CLI, and web dashboard
⚠️ Limitations
Focused specifically on Ren’Py games and related operations (state, screenshots, guarded clicks, saves, builds).
RenForge is an MCP (Model Context Protocol) server, CLI, and web dashboard
for working with Ren'Py visual-novel projects.
It lets an AI agent — or a human via the dashboard — inspect a project, launch
a game with the Live Editor enabled by default, select and inspect on-screen
controls, preview layout changes before writing guarded .rpy source, drive
runtime state, capture screenshots, generate translations, find orphaned
assets, run builds, and search Ren'Py's docs.
Status: alpha, actively developed. The core surfaces (MCP tools, in-game
bridge, Live Editor, CLI, dashboard) are functional; APIs may still change.
Live Editor — select an editable control, inspect it, preview moves, then Save to source
Dashboard — live control of a running game
Live Editor — locked targets stay inspectable with a clear reason
Requires Python 3.11+ and uv — nothing else.
You don't even need Ren'Py installed: RenForge reuses an SDK it finds on your
machine, or downloads one automatically on first launch.
bash
uvx --from "renforge[ui]@latest" renforge ui
Then choose your game in the dashboard's project picker — no path to type. (Or
skip the picker with --project /path/to/your/game.) Launch the game and click
the floating RF control to open the Live Editor.
Live Editor
The Live Editor is the headline 0.7 feature: edit eligible on-screen controls
inside the running game, preview layout changes at runtime, and Save
only when a target is source-safe. Locked or unsupported targets stay
inspectable with a clear reason — they are not silently forced.
Audience
Start here
Human
Dashboard or game window → launch → click RF → select from canvas or scene tree → inspect / move where editable → Save → stop cleanly.
Every RenForge tool takes a project_path argument, so the agent passes your
game's path on each call — copy the configs below as-is, no path substitution.
Claude Code
bash
claude mcp add renforge -- uvx renforge@latest serve
VS Code (Copilot), Zed, Windows PATH issues, and the pipx variant are covered
in the MCP guide.
Verify it works — ask the agent:
Inspect my Ren'Py project at /path/to/game
The agent should call renforge_inspect_project with that path and return a
JSON summary of the project (labels, scripts, assets, and related metadata).
What it does
Live Editor (default on launch) — in-game selection, inspection, and
source-safe preview/Save for editable controls; locked targets stay
inspectable. Guide: docs/LIVE_EDITOR.md.
Live game control — launch a project with an injected in-game bridge and
Live Editor, then advance dialogue, list/select choices, evaluate
expressions, get/set store variables, send focused text/key/scroll input,
poll pushed events, and capture frames the model can literally see.
Scene perception (pixel-perfect, no vision needed) — read the whole frame
as structured logical-coordinate nodes (renforge_scene_tree): every sprite,
control, and text block with bounds, z-order, colour, and style, plus an ASCII
wireframe and structural scene diffs. Then renforge_measure reports alignment,
spacing, overlap, fit, and WCAG contrast as numbers an agent can act on.
Autopilot — auto-play choices backed by Ren'Py menu items across
fresh replays, including custom-named and one-item menus, while reporting
label coverage and crashes. Custom call_screen interactions that do not
expose Ren'Py menu items are not currently explored automatically.
Assets & translations — find orphaned/missing image+audio assets, list
languages, compute translation stats, generate/update game/tl/<lang>/ files,
export dialogue as text.
Builds — package desktop distributions and web builds.
Docs — search and read Ren'Py's offline documentation.
Web dashboard — live story map, activity log, autopilot coverage, lint
view, and game-state controls (default 127.0.0.1:8765).
CLI
bash
renforge --version
renforge inspect <project> # lightweight project summary (JSON)
renforge serve [--project .] # start the MCP server (stdio transport)
renforge ui [--project <project>] [--port 8765] # start the web dashboard
Documentation
Live Editor — human and agent workflows, editable
vs locked targets, source-safety, public screenshots.
MCP guide — full tool catalogue, agent workflows
(Live Editor, hot reload, saves, pixel-perfect placement, scene perception).
Runtime policy — operation-level risk enforcement vs MCP
ToolAnnotations, authorization, and the compatibility plan.