godot-mcp is now Swallowtail. Same toolkit, new name. Why, and how to migrate

esc
↑↓ navigate↵ openSearch documentation

AUTOMATION FOR GODOT

SwallowtailAt your service.

Build, inspect, and playtest your game. Put the repetitive work in a script. Keep the creative decisions yours.

Your game. Your workflow.

Run swallowtail from your terminal. Upgrading from godot-mcp?

Windows, macOS, Linux · Godot 4.7 target
Godot 4.3 through 4.8 compatibility in beta · Installation & requirements

your project · your terminal
$ swallowtail scene tree
Hello (Node2D) .
└─ Greeting (Label) Greeting

$ swallowtail check .

Same toolkit.
Your way of working.

your project · your terminal
$ swallowtail scene tree
Player (CharacterBody2D) .
├─ Col (CollisionShape2D) Col
└─ Body (ColorRect) Body
$ swallowtail node add --type Camera2D --name Cam --parent Player
╭─ node.add ───────────╮
  index      2
  name       Cam
  node_path  Cam
  type       Camera2D
╰──────────────────────╯
$ swallowtail node set --node-path Player/Cam --property zoom --value "Vector2(2, 2)"
╭─ node.set ──────────────────────────────╮
  new_value   {"x":2.0,"y":2.0}
  node        Cam
  old_value   {"x":1.0,"y":1.0}
  property    zoom
╰─────────────────────────────────────────╯
$ swallowtail scene save
╭─ scene.save ────────────────────────╮
  path    res://player.tscn
  saved   true
╰─────────────────────────────────────╯
$ swallowtail scene tree
Player (CharacterBody2D) .
├─ Col (CollisionShape2D) Col
├─ Body (ColorRect) Body
└─ Cam (Camera2D) Cam
your project · your terminal
$ cat plan.json
{"steps": [
  {"method": "engine.version", "expect": {"/version/major": 4}},
  {"method": "scene.validate", "params": {"path": "res://player.tscn"},
   "expect": {"/valid": true}},
  {"method": "script.validate", "params": {"path": "res://player.gd"},
   "expect": {"/valid": true}},
  {"method": "project.info", "expect": {"/godot_version/minor": 7}}
]}
$ swallowtail automate --file plan.json | jq -r '.steps[] | [.status, .method] | @tsv'
passed	engine.version
passed	scene.validate
passed	script.validate
passed	project.info
# a wrong expectation stops the plan, and the exit code says so
$ swallowtail automate --file strict.json > report.json; echo $?
1
$ jq -c '.steps[] | {method, status, error: .error.kind}' report.json
{"method":"scene.validate","status":"failed","error":"assertion"}
{"method":"scene.save","status":"skipped","error":null}
your project · your terminal
# two files in res://mcp_commands/ add four project commands
$ swallowtail custom --help
swallowtail custom: 4 commands (addon catalog):

  broken_refs  Report res:// paths and uid:// ids that no longer resolve.
  echo         Echo --message back to the caller.
  ping         Health check: returns {pong: true}.
  replace_ref  Repoint every reference from one resource to another, uid included.
$ swallowtail custom broken-refs --help
Params:
  --path            String  optional  Directory to scan (default res://).
  --include-addons  bool    optional  Scan addons/ too (default false).
  --limit           int     optional  Max findings per list (default 200).
$ swallowtail custom broken-refs
╭─ custom.broken_refs ──────────────────────────────────╮
  broken         []
  broken_count   0
  checked_refs   27
  dynamic_count  1
  scanned_files  10
  truncated      false
╰───────────────────────────────────────────────────────╯
# the same command is an MCP tool, schema included
$ swallowtail engine commands --group custom | jq '.count'
4
your project · your terminal
$ swallowtail status | jq -c '{verdict, port, project_match}'
{"verdict":"running","port":9080,"project_match":true}
$ swallowtail configure claude --project . --print
Would write to: /games/my-game/.mcp.json

{
  "mcpServers": {
    "swallowtail": {
      "command": "swallowtail",
      "args": ["serve", "--project", "/games/my-game"]
    }
  }
}
# or skip the process: the editor hosts an MCP endpoint itself
$ curl -s -X POST http://127.0.0.1:9100/mcp -H 'Content-Type: application/json' \
>   -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools | length'
337

PUT IT TO WORK

Before your next build.

Check your scripts, validate a saved scene, and inspect errors from a short playtest. Keep the commands with your project so you can repeat the checks after a change.

Try this from the quickstart project, with its editor open and the addon enabled. Use your own saved scene path when you adapt it.

Turn it into a CI check
Run from your project directory
swallowtail check .
swallowtail scene validate --path res://hello.tscn
swallowtail scene play --mode res://hello.tscn
swallowtail runtime errors
swallowtail scene stop

Read the validation results and returned error list before exporting. This sequence inspects a playtest; a CI gate also needs assertions and failure handling.

CLI first.
MCP when you want it.

MCP is a connection option. The automation toolkit works without it.

Use the CLI

Run commands from your terminal, reuse them in scripts, or add them to CI. Read the results directly, or pipe JSON into your next step.

Command reference

Connect through MCP

For clients that use MCP, expose the same command handlers through stdio or the editor's HTTP endpoint. Configure this only if your workflow needs it.

Optional MCP setup

KEEP CONTROL OF YOUR WORK

Your project stays yours.

Work with ordinary Godot scenes, scripts, and resources. Open them in the editor, review the changes in Git, and keep building with the tools you choose.

Inspect what changes

Your scenes, scripts, and resources remain project files you can read, edit, and version.

Undo supported scene edits

Supported scene operations use Godot's editor undo history. Script execution and file changes need their own review and recovery.

Keep a checkpoint

Save your work and commit a known working state before broad changes. Review the diff and test the result before keeping it.

Godot already has a CLI.
Swallowtail works with it.

Godot's built-in command line launches the engine and handles tasks such as imports, scripts, and exports. Swallowtail uses your Godot installation for those jobs and adds an interface to the editor session you already have open.

Start with the engine

Import assets, check scripts, run tests, and export builds through commands that invoke Godot and report the result.

swallowtail check .

Work in the live editor

Inspect the scene tree, change node properties, and validate saved scenes. Read state back as you work.

swallowtail scene tree

See what the game does

Play a scene, inspect runtime properties, send input, and check errors. Verify behavior in the running game.

swallowtail runtime tree

Swallowtail uses an installed Godot engine; it does not bundle one. Godot's command-line reference · How Swallowtail works

HOW IT COMPARES

Swallowtail next to
Godot AI and Godot MCP Native.

What each tool documents: how you start, what you set up, and what you can run from a terminal, a script, or an MCP client. Sources and the comparison date sit under the table.

Choose the workflow that fits your project.
What you needSwallowtailGodot AIGodot MCP Native
Starting pointStandalone automation CLI + editor addonMCP integration for the editorMCP editor addon + companion CLI
Run from your terminalUse swallowtail directly, without MCPDocumented setup uses godot-ai attach to connect an MCP clientUse gdmcp through its separate local CLI API
Use without an AI agentYes. The CLI and scripts need no agent, model, or accountIts requirements list an MCP client; every documented workflow runs through oneYes, through its gdmcp CLI, which the docs present for agents with shell access
Set up the connectionGo binary + Godot addon for live commandsPython server via uv + Godot plugin + MCP clientGodot addon; prebuilt CLI for terminal use
Automate a workflowCreate projects, import, check, test, export, and operate the live editorEdit scenes and scripts, run projects and test suites through MCP toolsDiscover tools, run domain commands, and preview or apply command batches
Inspect a playtestRuntime state, input, captures, breakpoints, stepping, and hot reloadGame state, input sequences, screenshots, and error logsRuntime probe, breakpoints, stack and variable inspection, and execution control
Connect an MCP clientOptional stdio or editor-hosted HTTP interfaceDocumented primary workflowMCP interface alongside the separate CLI API

Compared against the published documentation on September 7, 2026: Godot AI, its tool reference, Godot MCP Native, and its CLI reference. This summarizes documented workflows, not an exhaustive feature audit.

WHY THIS PROJECT EXISTS

I just wanted
to build games.

For my son.
For myself.

After twenty years as a programmer, I wanted to spend more time making games. I don't have the budget to hire a team for every idea, and I don't want to spend ten years on a project at the expense of my health or my family.

What I wanted was a toolkit that lets me work the way I want on any given day, and that includes using AI as one of the tools. Some days that is a terminal and a script I can run again. Some days it is an agent driving the editor while I review what it changed. Swallowtail gives both the same commands, so the choice stays mine at every step between an idea and something you can actually play.

I understand the concerns about this technology. You don't have to agree with my choices, and I respect that. I'm here to make games and share a tool, not to fight. Questions and criticism are welcome. Bullying and personal attacks aren't.

The full note on AI and this project

There's a game you want to make.

Start with a scene. Build from there.

Meet the toolkit