Godot Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Godot Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
[](https://modelcontextprotocol.io/introduction) [](https://nodejs.org/en/download/) [](https://www.typescriptlang.org/) [](https://www.npmjs.com/package/gopeak) [](https://github.com/HaD0Yun/Gopeak-godot-mcp/commits/main) [](https://github.com/HaD0Yun/Gopeak-godot-mcp/stargazers) [](https://github.com/HaD0Yun/Gopeak-godot-mcp/network/members) [](https://opensource.org/licenses/MIT)
🌐 Languages: English | 한국어 | 日本語 | Deutsch | Português | 简体中文
GoPeak Hero
GoPeak is an MCP server for Godot that lets AI assistants run, inspect, modify, and debug real projects end-to-end.
English is the canonical source of truth. Localized READMEs are concise overviews and may lag behind README.md.Discord community chat is temporarily unavailable while the invite link is refreshed. Please use GitHub Discussions in the meantime: https://github.com/HaD0Yun/Gopeak-godot-mcp/discussions
npx -y gopeakor install globally:
npm install -g gopeak
gopeakOptional shell hooks for update notifications are now opt-in:
gopeak setupgopeak setuponly modifies supported bash/zsh rc files when you run it explicitly.npm installno longer installs shell hooks automatically.
{
"mcpServers": {
"godot": {
"command": "npx",
"args": ["-y", "gopeak"],
"env": {
"GODOT_PATH": "/path/to/godot",
"GOPEAK_TOOL_PROFILE": "compact"
}
}
}
}GOPEAK_TOOL_PROFILE=compact is the default. It exposes a trusted core surface with dynamic tool groups that activate on demand — keeping token usage low while making experimental or environment-dependent capabilities explicit./your/projects and show project info."scenes/Player.tscn with CharacterBody2D root and add a movement script."tool.catalog and matching groups auto-activate, or manually activate with tool.groups.GoPeak supports three exposure profiles:
compact (default): trusted core tools plus dynamic tool groups activated on demand.full: exposes the full legacy tool list for compatibility and audit work.legacy: same exposed behavior as full for older configurations.Configure with either:
GOPEAK_TOOL_PROFILEMCP_TOOL_PROFILE (fallback alias)In compact mode, additional tools are organized into dynamic groups that activate automatically when needed. Maturity labels are intentionally conservative until each group has Godot 4 fixture evidence:
| Group | Maturity | Description / setup gate |
|---|---|---|
scene_advanced | audit-required | Duplicate, reparent nodes, load sprites; verify scene ownership/persistence in a Godot 4 fixture before treating as trusted. |
uid | audit-required | UID management for resources; gate behavior by Godot version and resource save/load evidence. |
import_export | audit-required | Import pipeline, reimport, validate project; requires fixture checks for import settings and export command construction. |
autoload | audit-required | Autoload singletons, main scene; requires project settings round-trip verification. |
signal | audit-required | Disconnect signals, list connections; requires signal round-trip verification. |
runtime | optional-runtime | Live scene inspection, runtime properties, metrics; requires the runtime addon/socket. |
resource | audit-required | Create/modify materials, shaders, resources; requires resource save/load fixture checks. |
animation | audit-required | Animations, tracks, animation tree, state machine; requires saved scene/resource fixture checks. |
plugin | optional-editor | Enable/disable/list editor plugins; requires editor plugin availability. |
input | audit-required | Input action mapping; requires project settings round-trip verification. |
tilemap | audit-required | TileSet and TileMap cell painting; must account for Godot 4.3+ TileMapLayer behavior before being promoted. |
audio | audit-required | Audio buses, effects, volume; requires bus layout fixture checks. |
navigation | audit-required | Navigation regions and agents; requires saved scene/resource fixture checks. |
theme_ui | audit-required | Theme colors, font sizes, shaders; requires resource save/load fixture checks. |
asset_store | optional-network | Search/download external CC0 assets; requires network/provider availability and should remain optional. |
testing | optional-runtime | Screenshots, viewport capture, input injection; requires runtime addon/editor availability. |
dx_tools | audit-required | Error log, project health, find usages, scaffold; requires deterministic static fixture checks. |
intent_tracking | workflow-layer | Intent capture, decision logs, handoff briefs; not a Godot engine primitive and should stay opt-in/workflow-scoped. |
class_advanced | trusted-static | Class inheritance inspection; validate against ClassDB/static evidence. |
lsp | optional-lsp | GDScript completions, hover, symbols; requires Godot LSP on port 6005. |
dap | optional-dap | Breakpoints, stepping, stack traces; requires Godot DAP on port 6006. |
version_gate | audit-required | Version validation and patch verification; requires explicit version fixture evidence. |
How it works:
tool.catalog and matching groups activate automatically."Usetool.catalogwith queryanimationand show relevant tools."
tool.groups."Usetool.groupsto activate thedapgroup for debugging."
"Use tool.groups to reset all active groups."The server sends notifications/tools/list_changed so MCP clients (Claude Code, Claude Desktop) automatically refresh the tool list. If your MCP client caches tools aggressively and does not refresh after activation, reconnect the client or call the newly activated tool directly once to force a fresh tools/list round-trip.
Bridge-backed scene tools (add_node, set_node_properties) now coerce common vector payloads such as { "x": 100, "y": 200 } and [100, 200] for typed properties like position and scale. Tagged values are still the safest cross-tool form:
{
"position": { "type": "Vector2", "x": 100, "y": 200 },
"scale": { "type": "Vector2", "x": 2, "y": 2 }
}The internal headless serializer uses _type, but MCP callers should prefer type when they need an explicit cross-tool Godot value tag.
GoPeak uses cursor-based pagination for tools/list — even in full profile, tools are delivered in pages (default 33) instead of dumping the entire legacy definition set at once. Your AI client fetches the next page only when it needs more.
Set page size with GOPEAK_TOOLS_PAGE_SIZE:
{
"env": {
"GOPEAK_TOOLS_PAGE_SIZE": "25"
}
}npx -y gopeaknpm install -g gopeak
gopeakOptional shell hooks for update notifications remain available via:
gopeak setupgit clone https://github.com/HaD0Yun/Gopeak-godot-mcp.git
cd godot-mcp
npm install
npm run build
node build/index.jsGoPeak also exposes two CLI bin names:
gopeakgodot-mcpGitHub Actions runs on push/PR and executes:
npm run buildnpx tsc --noEmitnpm run smokeRun the same checks locally before opening a PR:
npm run ci
npm run test:dynamic-groups
npm run test:integrationUse the built-in bump script to keep package.json and server.json in sync:
node scripts/bump-version.mjs patch
node scripts/bump-version.mjs minor --dry-runFull release checklist: docs/release-process.md.
Install in your Godot project folder:
curl -sL https://raw.githubusercontent.com/HaD0Yun/Gopeak-godot-mcp/main/install-addon.sh | bashPowerShell:
iwr https://raw.githubusercontent.com/HaD0Yun/Gopeak-godot-mcp/main/install-addon.ps1 -UseBasicParsing | iexThen enable plugins in Project Settings → Plugins (especially godot_mcp_editor for bridge-backed scene/resource tools).
These capabilities are grouped by workflow value. Optional-runtime/LSP/DAP/network groups require their setup gates before use; audit-required groups should be promoted only after fixture evidence.
| Area | Examples |
|---|---|
| Project | project.list, project.info, editor.run |
| Scene/Node | scene.create, scene.node.add, set_node_properties |
| Script | script.create, script.modify, script.info |
| Runtime | runtime.status, inspect_runtime_tree, call_runtime_method |
| LSP/DAP | lsp.diagnostics, lsp_get_hover, dap_set_breakpoint, dap.output |
| Input/Visual | inject_key, inject_mouse_click, capture_screenshot |
Visualize your entire project architecture with visualizer.map (map_project legacy). Scripts are grouped by folder structure into color-coded categories.
Project Visualizer — AI-generated architecture map
scripts/player.gd:42, continue execution, and show stack trace when hit."ui_accept, move mouse to (400, 300), click, then capture a screenshot."tool.catalog with query tilemap and list the most relevant tools."dap tool group for breakpoint debugging with tool.groups."tool.catalog query import and run the best one for texture settings."tool.groups to reduce context."GoPeak treats compact as the safe default and full/legacy as compatibility profiles. Any future hide, remove, rename, or API-contract change must include:
compact, full, legacy, or opt-in group);tools/list exposure and alias behavior;Current compatibility stance: legacy tool names and compact aliases remain supported. Dynamic groups with optional external requirements (runtime, testing, lsp, dap, asset_store) should be documented as opt-in/setup-gated rather than marketed as always-available core behavior.
| Name | Purpose | Default |
|---|---|---|
GOPEAK_TOOL_PROFILE | Tool exposure profile: compact, full, legacy | compact |
MCP_TOOL_PROFILE | Fallback profile env alias | compact |
GODOT_PATH | Explicit Godot executable path | auto-detect |
GODOT_BRIDGE_PORT | Bridge/Visualizer HTTP+WS port override (aliases: MCP_BRIDGE_PORT, GOPEAK_BRIDGE_PORT) | 6505 |
DEBUG | Enable server debug logs (true/false) | false |
LOG_MODE | Recording mode: lite or full | lite |
GOPEAK_TOOLS_PAGE_SIZE | Number of tools per tools/list page (pagination) | 33 |
GOPEAK_BRIDGE_PORT | Port for unified bridge/visualizer server | 6505 |
GOPEAK_BRIDGE_HOST | Bind host for bridge/visualizer server | 127.0.0.1 |
| Port | Service |
|---|---|
6505 (default) | Unified Godot Bridge + Visualizer server (+ /health, /mcp) on loopback by default |
6005 | Godot LSP |
6006 | Godot DAP |
7777 | Runtime addon command socket (only needed for runtime tools) |
GODOT_BRIDGE_PORT, default 6505)77776005 + 6006 + 7777GODOT_PATHproject.godot existstool.catalog to search and auto-activate matching groups, or use tool.groups to activate a specific groupgopeak/MCP server instance already owns bridge port 6505; the status payload now reports the startup error and suggests stopping duplicate serversMIT — see LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.