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

esc
navigate openSearch by Pagefind

Before you ship

Keep the addon out of every exported build, and prove it with a scan of the pck.

1. Disable the plugin before exporting

Project → Project Settings → Plugins, untick Swallowtail. Disabling removes the two injected autoloads, MCPGameInspector and MCPGameInput, from project.godot. Re-enabling puts them back, so the toggle costs nothing per release.

2. Exclude the addon files in every export preset

In the Export window, Resources tab, add to Filters to exclude files/folders:

addons/swallowtail/*

Add mcp_commands/* too if the project defines project-local commands. The default “Export all resources” mode ships unreferenced scripts, so the filter matters even with the plugin disabled. Check every preset, since each carries its own filter.

3. Scan the build

A green export means the exporter ran. The receipt is the pck itself: the addon name and the autoload names must score zero, and a known game path must be present so you know the scan read the right file.

Terminal window
grep -a -c 'swallowtail' Game.pck # 0, or the addon shipped
grep -a -c 'MCPGame' Game.pck # 0 covers project.binary's autoload list
grep -a -c 'res://scenes' Game.pck # above 0: the game itself is in there
Terminal window
$t = [Text.Encoding]::ASCII.GetString([IO.File]::ReadAllBytes("Game.pck"))
([regex]::Matches($t, 'swallowtail')).Count # 0, or the addon shipped
([regex]::Matches($t, 'MCPGame')).Count # 0 covers project.binary's autoload list
([regex]::Matches($t, 'res://scenes')).Count # above 0: the game itself is in there

swallowtail export <preset> runs the export from the terminal and exits non-zero when Godot wrote no file. The Shipping and export guide covers the rest of the release pipeline: the headless loop, per-platform receipts, and Android packages, which carry no loose pck.

Built with the help of swallowtail. MIT licensed.