GoPeakBLOCK
GoPeak — The most comprehensive MCP server for Godot Engine. 95+ tools: scene management, GDScript LSP, DAP debugger, screenshot capture, input injection, ClassDB introspection, CC0 asset library. npx gopeak
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://modelcontextprotocol.io/introduction) [](https://godotengine.org) [](https://bun.sh/) [](https://github.com/HaD0Yun/Doyunha-Gopeak/releases) [](https://opensource.org/licenses/MIT)
🌐 Languages: English | 한국어 | 日本語 | Deutsch | Português | 简体中文
GoPeak is an MCP server for Godot 4 that gives AI assistants a real edit → run → inspect → fix loop.
It is designed for trusted Godot 4 workflows: small default tool surface, setup-gated advanced capabilities, and explicit compatibility rules for older/legacy tool names.
English is the canonical source of truth. Localized READMEs are concise overviews and may lag behind README.md. Discord is temporarily unavailable while the invite link is refreshed. Use GitHub Discussions for now.Quick Start
Requirements
- Godot 4.x
- Bun 1.3.3+
- MCP-compatible client such as Claude Desktop, Cursor, Cline, or OpenCode
1) Install GoPeak
bun add -g https://github.com/HaD0Yun/Doyunha-Gopeak/releases/download/v2.4.0/gopeak-2.4.0.tgz
That is the quickest installation path. It installs the bundled runtime directly from GitHub Releases without npm. For a checksum-verified installation, use:
curl -fLO https://github.com/HaD0Yun/Doyunha-Gopeak/releases/download/v2.4.0/gopeak-2.4.0.tgz curl -fLO https://github.com/HaD0Yun/Doyunha-Gopeak
5c12eab2eed0OBSERVED · 2026-10-06Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add gopeak -- npx -y [email protected]
{
"mcpServers": {
"gopeak": {
"command": "npx",
"args": [
"-y",
"[email protected]"
]
}
}
}Exposed tools (115)
69 read · 43 write · 3 destructive. Blast radius: 3 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_animation_state | write | Add a state to an AnimationTree state machine |
add_animation_track | write | Adds a property or method track to an animation. Prerequisite: animation must exist (use create_animation first). Use to animate position, rotation, color, or call methods at specific times. Keyframes define values over time. |
add_autoload | write | Registers a script/scene as an autoload singleton. Use for global managers (GameManager, AudioManager, etc.). Loads automatically on game start. |
add_input_action | write | Registers a new input action in project.godot InputMap. Use to set up keyboard, mouse, or gamepad controls for player actions like jump, move, attack. |
apply_theme_shader | write | Generate and apply theme-appropriate shader to a material in a scene |
call_runtime_method | read | Call a method on a node in a running Godot instance |
capture_intent_snapshot | write | Capture/update an intent snapshot for current work (goal, constraints, acceptance criteria) and persist it for handoff. |
capture_screenshot | read | Capture a screenshot of the running Godot game viewport. Requires the runtime addon to be active (game must be running with the MCP runtime autoload). |
capture_viewport | read | Capture a viewport texture as base64 image from the running Godot game. Similar to capture_screenshot but captures a specific viewport by path. |
connect_animation_states | read | Connect two states with a transition |
connect_signal | read | Creates a signal connection between nodes in a scene. Prerequisite: source and target nodes must exist. Use to wire up button clicks, collision events, custom signals. Saved to scene file. |
create_animation | write | Creates a new animation in an AnimationPlayer. Prerequisite: AnimationPlayer node must exist in scene (use add_node first). Use to set up character animations, UI transitions, or cutscenes. Supports loop modes: none, linear, pingpong. |
create_animation_tree | write | Create an AnimationTree node linked to an AnimationPlayer |
create_audio_bus | write | Creates a new audio bus for mixing. Use to set up separate volume controls for music, SFX, voice, etc. |
create_material | write | Creates a material resource for 3D/2D rendering. Types: StandardMaterial3D (PBR), ShaderMaterial (custom), CanvasItemMaterial (2D), ParticleProcessMaterial (particles). |
create_navigation_agent | write | Creates a NavigationAgent for AI pathfinding. Use for enemies, NPCs that need to navigate around obstacles. |
create_navigation_region | write | Creates a NavigationRegion for pathfinding. Use to define walkable areas for AI navigation. |
create_scene | write | Creates a new Godot scene file (.tscn) with a specified root node type. Use to start building new game levels, UI screens, or reusable components. The scene is saved automatically after creation. |
create_script | write | Creates a new GDScript (.gd) file with optional templates. Use to generate scripts for game logic. Templates: |
create_shader | write | Creates a shader file (.gdshader) with optional templates. Types: canvas_item (2D), spatial (3D), particles, sky, fog. Templates: basic, color_shift, outline. |
create_tileset | write | Creates a TileSet resource from texture atlases. Use for 2D tilemaps in platformers, RPGs, etc. Supports multiple atlas sources. |
dap_continue | read | Continue execution after a breakpoint or pause |
dap_get_output | read | Get captured Godot DAP console output lines |
dap_get_stack_trace | read | Get the current stack trace from the Godot debugger |
dap_pause | read | Pause execution of the running Godot debug target |
dap_remove_breakpoint | destructive | Remove a breakpoint in a Godot script at a specific line |
dap_set_breakpoint | write | Set a breakpoint in a Godot script at a specific line |
dap_step_over | read | Step over the current line in the debugger |
delete_node | destructive | Removes a node and all its children from a scene. Use to clean up unused nodes. Cannot delete root node. Scene is saved automatically unless saveScene=false. |
disable_plugin | write | Disables a plugin in the project. Updates project.godot automatically. Plugin files remain in addons/ folder. |
disconnect_signal | read | Removes a signal connection from a scene. Use to clean up unused connections or rewire logic. |
duplicate_node | read | Creates a copy of a node with all its properties and children. Use to replicate enemies, UI elements, or any repeated structures. Scene is saved automatically unless saveScene=false. |
enable_plugin | write | Enables a plugin from addons/ folder. Updates project.godot automatically. Use list_plugins first to see available plugins. |
enforce_version_gate | read | Checks Godot version and runtime addon protocol/capabilities against minimum requirements before risky operations. |
error_excerpt | read | Error excerpt from Godot output or debugger panel. |
export_handoff_pack | read | Export a machine-readable handoff pack combining intent, decisions, and execution traces. |
export_project | read | Exports the project to a distributable format. Use to build final game executables. Requires export templates installed. |
feature_goal | read | Short feature goal to guide node and script choices. |
fetch_asset | read | Download a CC0 asset from any supported source (Poly Haven, AmbientCG, Kenney) to your Godot project. |
find_resource_usages | read | Finds all files that reference a resource. Use before deleting or renaming to avoid breaking references. |
generate_handoff_brief | read | Generate a handoff brief from saved intents, decisions, and execution traces for the next AI/operator. |
get_audio_buses | read | Lists all audio buses and their configuration. Use to check current audio setup. |
get_debug_output | read | Retrieves console output and errors from the currently running Godot project. Use after run_project to check logs, errors, and print statements. Returns empty if no project is running. |
get_dependencies | read | Analyzes resource dependencies and detects circular references. Use to understand what a scene/script depends on before refactoring. |
get_editor_status | read | Returns the connection status of the Godot Editor Plugin bridge. Use to check if the editor is connected before using scene/resource tools that require the editor plugin. |
get_godot_version | read | Returns the installed Godot engine version string. Use to check compatibility (e.g., Godot 4.4+ features like UID). Returns version like |
get_import_options | write | Returns current import settings for a resource. Use to check compression, mipmaps, filter settings before modifying. |
get_import_status | write | Returns import status for project resources. Use to find outdated or failed imports. Shows which resources need reimporting. |
get_node_properties | read | Returns all properties of a specific node in a scene. Use to inspect current values before modifying. Returns property names, values, and types. |
get_project_health | read | Generates a health report with scoring for project quality. Checks for unused resources, script errors, missing references, etc. |
get_project_info | read | Returns metadata about a Godot project including name, version, main scene, autoloads, and directory structure. Use to understand project before modifying. Requires valid project.godot. |
get_project_setting | read | Reads a value from project.godot settings. Use to check game name, window size, physics settings, etc. |
get_recording_mode | read | Get current recording mode and queue status. |
get_runtime_metrics | read | Get performance metrics from a running Godot instance |
get_runtime_status | read | Checks if a Godot game instance is running and connected for live debugging. Use before other runtime tools. |
get_script_info | read | Analyzes a GDScript and returns its structure: functions, variables, signals, class_name, extends. Use before modify_script to understand existing code. |
get_uid | read | Get the UID for a specific file in a Godot project (for Godot 4.4+) |
godot.debug_triage | write | Run a focused Godot debug triage loop from reproduction to verified fix. |
godot.scene_bootstrap | read | Generate a deterministic scene bootstrap plan and starter GDScript wiring for a new gameplay scene. |
inject_action | read | Simulate a Godot input action (press/release). Requires runtime addon. |
inject_key | read | Simulate a keyboard key press/release in the running Godot game. Requires runtime addon. |
inject_mouse_click | read | Simulate a mouse click at specified position in the running Godot game. Requires runtime addon. |
inject_mouse_motion | read | Simulate mouse movement to a position in the running Godot game. Requires runtime addon. |
inspect_inheritance | read | Inspect class inheritance hierarchy: ancestors, direct children, all descendants. Use to understand class relationships and find specialized alternatives. |
inspect_runtime_tree | read | Inspect the scene tree of a running Godot instance |
launch_editor | read | Opens the Godot editor GUI for a project. Use when visual inspection or manual editing of scenes/scripts is needed. Opens a new window on the host system. Requires: project directory with project.godot file. |
list_asset_providers | read | List all available CC0 asset providers and their capabilities. |
list_autoloads | read | Lists all registered autoload singletons in the project. Shows name, path, and enabled status. |
list_connections | read | Lists all signal connections in a scene. Use to understand event flow or debug connection issues. |
list_export_presets | read | Lists all export presets defined in export_presets.cfg. Use before export_project to see available targets (Windows, Linux, Android, etc.). |
list_plugins | read | Lists all plugins in addons/ folder with enabled/disabled status. Use before enable_plugin or disable_plugin to see available plugins. |
list_projects | read | Scans a directory for Godot projects (folders containing project.godot). Use to discover projects before using other tools. Returns array of {path, name}. |
list_scene_nodes | read | Returns complete scene tree structure with all nodes, types, and hierarchy. Use to understand scene organization before modifying. Returns nested tree with node paths. |
load_sprite | write | Assigns a texture to a Sprite2D node in a scene. Use to set character sprites, backgrounds, or UI images. The texture file must exist in the project. |
lsp_get_completions | read | Get code completions from Godot Language Server at a given position. |
lsp_get_diagnostics | read | Get GDScript diagnostics from Godot Language Server for a script file. |
lsp_get_hover | read | Get hover information from Godot Language Server at a given position. |
lsp_get_symbols | read | Get document symbols for a GDScript file from Godot Language Server. |
map_project | read | Crawl the entire Godot project and build an interactive visual map of all scripts showing their structure (variables, functions, signals), connections (extends, preloads, signal connections), and descriptions. Opens an interactive browser-based visualization at localhost:${godotBridgePort}. |
modify_resource | write | Modify properties of an existing resource file (.tres/.res). Use to update materials, environments, themes, or any saved resource without recreating it. |
modify_script | write | Adds functions, variables, or signals to an existing GDScript. Use to extend scripts without manual editing. Supports @export, @onready annotations and type hints. |
parse_error_log | read | Parses Godot error log and provides fix suggestions. Use to diagnose runtime errors or script issues. |
project_path | read | Absolute path to the Godot project directory. |
query_class_info | read | Get detailed information about a specific Godot class: methods, properties, signals, enums. Use to discover available properties before calling add_node/create_resource/set_node_properties, or to find methods before call_runtime_method. |
query_classes | read | Query available Godot classes from ClassDB with filtering. Use to discover node types, resource types, or any class before using add_node/create_resource. Categories: node, node2d, node3d, control, resource, physics, physics2d, audio, visual, animation. |
record_decision_log | read | Record a structured decision log entry with rationale and alternatives. |
record_execution_trace | read | Record execution trace for a work step (command/tool, files changed, result, artifacts). |
record_work_step | read | Unified operation: records execution trace and optionally refreshes handoff pack in one call. |
reimport_resource | write | Forces reimport of resources. Use after modifying source files or to fix import issues. Can reimport single file or all modified. |
remove_autoload | destructive | Unregisters an autoload singleton. Use to remove global managers no longer needed. |
reparent_node | read | Moves a node to a different parent in the scene tree, preserving all properties and children. Use for reorganizing scene hierarchy. Scene is saved automatically unless saveScene=false. |
repro_steps | read | Optional reproduction steps observed by the developer. |
root_node_type | read | Root node type for the scene. Defaults to Node2D. |
run_project | write | Launches a Godot project and captures output. Use to test gameplay or verify script behavior. Runs headless where there is no display and windowed where there is, unless the headless argument says otherwise. Runs until stop_project is called. Use get_debug_output to retrieve logs. |
save_scene | write | Saves changes to a scene file or creates a variant at a new path. Most scene modification tools save automatically, but use this for explicit saves or creating variants. |
scaffold_gameplay_prototype | read | Creates a minimal playable prototype scaffold in one shot: main scene, player scene, basic nodes, common input actions, and optional starter player script. |
scene_path | write | Scene path to create, for example: res://scenes/Player.tscn |
search_assets | read | Search for CC0 assets across multiple sources (Poly Haven, AmbientCG, Kenney). Returns results sorted by provider priority. |
search_project | read | Searches for text or regex patterns across project files. Use to find function usages, variable references, or TODOs. Returns file paths and line numbers. |
set_audio_bus_effect | write | Adds or configures an audio effect on a bus. Use for reverb, delay, EQ, compression, etc. |
set_audio_bus_volume | write | Sets volume for an audio bus in decibels. Use to balance audio levels. |
set_import_options | write | Modifies import settings for a resource. Use to change compression, mipmaps, filter mode. Triggers reimport by default. |
set_main_scene | write | Sets which scene loads first when the game starts. Updates application/run/main_scene in project.godot. |
set_node_properties | write | Sets multiple properties on a node in a scene. Prerequisite: scene and node must exist (use create_scene and add_node first). Use to modify position, scale, rotation, or any node-specific properties. Scene is saved automatically unless saveScene=false. |
set_project_setting | write | Writes a value to project.godot settings. Use to configure game name, window size, physics, etc. |
set_recording_mode | write | Set recording mode: lite (minimal overhead) or full (richer context). |
set_runtime_property | write | Set a property on a node in a running Godot instance |
set_theme_color | write | Set a color in a Theme resource |
set_theme_font_size | write | Set a font size in a Theme resource |
set_tilemap_cells | write | Places tiles in a TileMap node. Use to programmatically generate levels or modify existing tilemaps. |
stop_project | write | Terminates the currently running Godot project process. Use to stop a project started with run_project. No effect if no project is running. |
summarize_intent_context | read | Summarize current intent context (goal, open decisions, risks, next actions) in compact form. |
update_project_uids | write | Update UID references in a Godot project by resaving resources (for Godot 4.4+) |
validate_patch_with_lsp | write | Runs Godot LSP diagnostics for a script and returns whether it is safe to apply changes. Intended as a pre-apply quality gate. |
validate_project | read | Checks project for export issues: missing resources, script errors, configuration problems. Use before export_project. |
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (5 observation(s))
- Network
- declared (12 observation(s))
- Shell
- declared (6 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (12)
exec(`${cmd} ${url}`, (err) => {await run(`http://127.0.0.1:${address.port}/latest`);BUN_CONFIG_REGISTRY: 'http://127.0.0.1:9',
HTTP_PROXY: 'http://127.0.0.1:9',
HTTPS_PROXY: 'http://127.0.0.1:9',
dap_remove_breakpoint, delete_node, remove_autoload
.nojekyll
await assert.rejects(() => installRelease('../../malicious'), /malformed/);@modelcontextprotocol/sdk, fs-extra, ws, @types/node, @types/ws, esbuild, typescript
assets/gopeak-hero-v2.png
assets/gopeak-hero.png
curl -sL https://raw.githubusercontent.com/HaD0Yun/Doyunha-Gopeak/main/install-addon.sh | bash
Gates applied: no_behavioural_pass.
5c12eab2eed0full audit observations/trust-audit/mcp-server/had0yun__gopeak-2.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-06 | 5c12eab2eed0 | BLOCK | D | 69 | first audit |
Questions
What is the GoPeak MCP server?
GoPeak — The most comprehensive MCP server for Godot Engine. 95+ tools: scene management, GDScript LSP, DAP debugger, screenshot capture, input injection, ClassDB introspection, CC0 asset library. npx gopeak
What tools does GoPeak expose?
115 in total: 69 read-only, 43 that write, and 3 that can delete or overwrite (dap_remove_breakpoint, delete_node, remove_autoload). Every one is listed on this page with its risk.
Is GoPeak safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 3 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does GoPeak need?
No credential environment variables were found in its source, so it appears to need none.
How does GoPeak run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as gopeak at 2.4.0.
How current is this page?
The grade is for one exact copy of the source (5c12eab2eed0), read on 2026-10-06. The repository is watched and re-audited when it changes.