Disclosure: I’m the developer. This is a paid tool ($5 on itch.io). Posting because it’s an MCP server built for Claude Code. I built RenPy MCP — an MCP server that connects Claude to the Ren’Py visual novel engine. Wanted to share the architecture and what I learned building 55 tools on top of MCP. How it works technically: CLI batch mode : Launches renpy.exe as a subprocess for lint, compile, test, and warp+screenshot operations. Had to use CREATE_NO_WINDOW | DETACHED_PROCESS on Windows to prevent subprocess stdio from conflicting with MCP’s stdio transport. File-based IPC for live debugging : A bridge script ( _mcp_bridge.rpy ) injected into the running game polls game/_mcp/cmd.json via config.periodic_callbacks — not interact_callbacks , which aren’t reliably called on Ren’Py’s main menu. Responses go to status.json . This gives 12 live tools (eval, set variables, jump labels, inspect styles) without WebSocket dependencies. Screenshot capture : Warps to a script line via –warp , injects an interact_callback that calls renpy.game.interface.save_screenshot() (not renpy.take_screenshot() — that’s lazy-exported and unavailable during GL test), resizes to 320px JPEG via Pillow (~10KB), returns base64. Auto-quits after capture. What Claude Code does well with it: The AI chains tools naturally. “Find dead ends in my story” triggers story_flow_graph + find_dead_ends in parallel. “Screenshot the library scene” runs search_script → finds the line → screenshot_scene . Translation workflows chain find_untranslated → auto_translate → merge_translation_strings → verify with find_untranslated again. 9 categories: project management, visual preview, testing, story analysis (13 tools), assets, refactoring, translation (7 tools), live debugging (12 tools), doc search (89 Ren’Py topics). 5-min demo on the_question sample project: https://youtu.be/_CCwQP-Ey58 Details + purchase: https://renpy-mcp.abyo.net/ Discord: https://discord.gg/6FVA25mW Happy to answer questions about the MCP architecture or Ren’Py integration challenges. submitted by /u/Big-Perspective-5768
Originally posted by u/Big-Perspective-5768 on r/ClaudeCode
