DEV Community

youichi uda
youichi uda

Posted on

I Built a Godot MCP Server Because Existing Ones Couldn't Let AI Test My Game

The Problem

I make games in Godot. I use AI (Claude Code) to write code daily. But the workflow always had the same bottleneck:

AI writes code → I run the game → I check if it works → I report back → AI fixes → I run again...

That "I run and check" part adds up. Especially when you're tweaking UI, testing edge cases, or iterating on a mechanic. I wanted to hand off the entire build-test-fix cycle to AI.

I tried existing Godot MCP servers. The free ones (godot-mcp, etc.) have ~13 tools focused on file operations. They can't even launch the game, let alone play it or take screenshots. The paid alternative (GDAI MCP, $19) has ~30 tools but still no input simulation or runtime analysis.

None of them could do what I needed: AI builds the game, runs it, tests it, and fixes what's broken — without me touching anything.

So I built Godot MCP Pro. 84 tools, 14 categories. Input simulation, runtime analysis, screenshots — everything needed for AI to autonomously test a running game.

Demo: One Prompt → Complete Reversi + AI Playtest

To show what this looks like in practice, here's a demo. Empty Godot project, one prompt, AI does the rest.

The Prompt (summary)

Build a complete Reversi game in this Godot project.
Single scene, single script, all rendering via _draw().

Requirements: 8x8 board, pieces, highlights, flip animation,
standard rules, score display, restart button...

After building, set as main scene and play it.
Then playtest: play 4 moves, screenshot after each,
fix anything that's wrong.
Enter fullscreen mode Exit fullscreen mode

The key is the last part — "playtest it yourself, fix anything that's wrong." That single instruction turns AI from a code generator into a QA tester.

What Happened

Build Phase (~2 min)

AI autonomously chains tool calls to build the game:

create_script("main.gd")    → Full game logic in one file
create_scene("main.tscn")   → Scene with Node2D root
attach_script                → Wire script to root
add_node × 4                → Score, Turn, Message labels + Restart button
save_scene → set_project_setting → reload_project → play_scene
Enter fullscreen mode Exit fullscreen mode

The editor updates in real-time. Nodes appear in the scene tree, the game window opens with a fully rendered Reversi board.

Playtest Phase (~2 min)

This is why I built the tool. AI takes a screenshot, inspects the board, clicks a cell, takes another screenshot to verify:

Moves 1-2: Successful. AI confirms piece placement, flipping, score updates after each move.

Move 3: AI clicks B2 → Takes screenshot → "B2 was not a valid move. Score didn't change." → Reads the yellow highlights on the board to find valid cells → Self-corrects to C4 → Success.

Move 4: AI clicks E2 → Same thing — detects failure from screenshot → Self-corrects to E3 → Success.

The AI made mistakes, but it caught them from the screenshots and fixed them without any human input. This is the workflow I wanted: tell AI to test, and it figures out the rest.

Report

After testing, AI outputs a full checklist:

Feature Status
8×8 board rendering OK
Piece drawing with outlines OK
Valid move highlights OK
Last-move indicator OK
8-direction flip logic OK
Flip animation OK
Score and turn display OK
Auto-pass handling OK
Restart button OK

How It Works

Architecture

AI Assistant ←--MCP/stdio--→ Node.js Server ←--WebSocket--→ Godot Editor Plugin
Enter fullscreen mode Exit fullscreen mode

MCP (Model Context Protocol) is an open protocol by Anthropic that gives AI access to "tools." Godot MCP Pro implements this protocol with 84 tools across 14 categories.

The four tool categories that make autonomous testing possible:

Category Why it matters
play_scene / stop_scene AI can launch and stop the game
simulate_mouse_click / simulate_key / simulate_sequence AI can send input to the running game
get_game_screenshot AI can see the running game
get_game_scene_tree / get_game_node_properties AI can read runtime state

Without these, AI can write code but can't verify it works. With them, AI closes the loop.

Why Not Just Edit Files?

File editing gives you code generation. It doesn't give you:

  • Game launch/stop control
  • Input simulation (keyboard, mouse, action sequences)
  • Screenshot capture from running game
  • Runtime state inspection (live scene tree, node properties)
  • Ctrl+Z undo (all MCP mutations go through Godot's UndoRedoManager)

The build → test → fix cycle needs bidirectional communication with the editor. That's the whole point.

Full Tool List (84 tools / 14 categories)

Category # What it does
Project 7 Filesystem, settings, UID conversion
Scene 9 Create, open, delete, instance, play/stop
Node 11 Add, delete, rename, properties, signals
Script 6 List, read, create, edit, attach
Editor 8 Screenshots, errors, GDScript execution
Input Simulation 5 Keyboard, mouse, actions, sequences
Runtime Analysis 4 Live scene tree, properties, monitoring
Animation 6 Create, tracks, keyframes
TileMap 6 Cell ops, fill, info
Theme & UI 6 Colors, constants, fonts, styleboxes
Shader 6 Create, edit, parameters
Batch Ops 5 Search, bulk changes, dependencies
Profiling 2 Performance monitors
Export 3 Presets, build commands

Input simulation, runtime analysis, signal management, animation, tilemap, shader, and profiling tools are exclusive to Godot MCP Pro — no other Godot MCP server has them.

How I Actually Use It Day-to-Day

The Reversi demo is a showcase. In practice, the most useful things are more mundane:

  • UI setup: "Set this Label's font to 24, anchor to center-top" — AI changes it directly in the editor
  • Signal wiring: "Connect this button's pressed signal" — done without opening the Node dock
  • Prototyping: "Make the player dash when pressing Shift" — AI writes the code, launches the game, tests it
  • Bug investigation: "Run the game, do X, then read the player's position and velocity" — AI reports back with actual runtime values

It lets me focus on game design and final decisions while AI handles the editor busywork.

Getting Started

Requirements: Godot 4.x (4.3+), Node.js 18+, MCP-compatible AI client (Claude Code, Claude Desktop, Cursor, Cline, etc.)

  1. Get it from godot-mcp.abyo.net
  2. Copy addons/godot_mcp/ into your Godot project
  3. Enable the plugin in Project Settings → Plugins
  4. Add to your AI client's MCP config:
{
  "mcpServers": {
    "godot-mcp-pro": {
      "command": "node",
      "args": ["path/to/mcp/server/build/index.js"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Godot MCP Pro — 84 tools, 14 categories, $5 one-time, lifetime updates.

godot-mcp.abyo.net

Top comments (0)