Atlas / MCP servers / had0yun / GoPeak

GoPeakBLOCK

mcp/had0yun/gopeak-1

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

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
115 69r · 43w · 3d
Transport
stdio
License
MIT
Stars
265
01

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
Read from source at commit 5c12eab2eed0OBSERVED · 2026-10-06
02

Connect

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-code
claude mcp add gopeak -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "gopeak": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

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.

ToolRiskDescription
add_animation_statewriteAdd a state to an AnimationTree state machine
add_animation_trackwriteAdds 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_autoloadwriteRegisters a script/scene as an autoload singleton. Use for global managers (GameManager, AudioManager, etc.). Loads automatically on game start.
add_input_actionwriteRegisters 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_shaderwriteGenerate and apply theme-appropriate shader to a material in a scene
call_runtime_methodreadCall a method on a node in a running Godot instance
capture_intent_snapshotwriteCapture/update an intent snapshot for current work (goal, constraints, acceptance criteria) and persist it for handoff.
capture_screenshotreadCapture 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_viewportreadCapture a viewport texture as base64 image from the running Godot game. Similar to capture_screenshot but captures a specific viewport by path.
connect_animation_statesreadConnect two states with a transition
connect_signalreadCreates 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_animationwriteCreates 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_treewriteCreate an AnimationTree node linked to an AnimationPlayer
create_audio_buswriteCreates a new audio bus for mixing. Use to set up separate volume controls for music, SFX, voice, etc.
create_materialwriteCreates a material resource for 3D/2D rendering. Types: StandardMaterial3D (PBR), ShaderMaterial (custom), CanvasItemMaterial (2D), ParticleProcessMaterial (particles).
create_navigation_agentwriteCreates a NavigationAgent for AI pathfinding. Use for enemies, NPCs that need to navigate around obstacles.
create_navigation_regionwriteCreates a NavigationRegion for pathfinding. Use to define walkable areas for AI navigation.
create_scenewriteCreates 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_scriptwriteCreates a new GDScript (.gd) file with optional templates. Use to generate scripts for game logic. Templates:
create_shaderwriteCreates a shader file (.gdshader) with optional templates. Types: canvas_item (2D), spatial (3D), particles, sky, fog. Templates: basic, color_shift, outline.
create_tilesetwriteCreates a TileSet resource from texture atlases. Use for 2D tilemaps in platformers, RPGs, etc. Supports multiple atlas sources.
dap_continuereadContinue execution after a breakpoint or pause
dap_get_outputreadGet captured Godot DAP console output lines
dap_get_stack_tracereadGet the current stack trace from the Godot debugger
dap_pausereadPause execution of the running Godot debug target
dap_remove_breakpointdestructiveRemove a breakpoint in a Godot script at a specific line
dap_set_breakpointwriteSet a breakpoint in a Godot script at a specific line
dap_step_overreadStep over the current line in the debugger
delete_nodedestructiveRemoves 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_pluginwriteDisables a plugin in the project. Updates project.godot automatically. Plugin files remain in addons/ folder.
disconnect_signalreadRemoves a signal connection from a scene. Use to clean up unused connections or rewire logic.
duplicate_nodereadCreates 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_pluginwriteEnables a plugin from addons/ folder. Updates project.godot automatically. Use list_plugins first to see available plugins.
enforce_version_gatereadChecks Godot version and runtime addon protocol/capabilities against minimum requirements before risky operations.
error_excerptreadError excerpt from Godot output or debugger panel.
export_handoff_packreadExport a machine-readable handoff pack combining intent, decisions, and execution traces.
export_projectreadExports the project to a distributable format. Use to build final game executables. Requires export templates installed.
feature_goalreadShort feature goal to guide node and script choices.
fetch_assetreadDownload a CC0 asset from any supported source (Poly Haven, AmbientCG, Kenney) to your Godot project.
find_resource_usagesreadFinds all files that reference a resource. Use before deleting or renaming to avoid breaking references.
generate_handoff_briefreadGenerate a handoff brief from saved intents, decisions, and execution traces for the next AI/operator.
get_audio_busesreadLists all audio buses and their configuration. Use to check current audio setup.
get_debug_outputreadRetrieves 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_dependenciesreadAnalyzes resource dependencies and detects circular references. Use to understand what a scene/script depends on before refactoring.
get_editor_statusreadReturns 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_versionreadReturns the installed Godot engine version string. Use to check compatibility (e.g., Godot 4.4+ features like UID). Returns version like
get_import_optionswriteReturns current import settings for a resource. Use to check compression, mipmaps, filter settings before modifying.
get_import_statuswriteReturns import status for project resources. Use to find outdated or failed imports. Shows which resources need reimporting.
get_node_propertiesreadReturns all properties of a specific node in a scene. Use to inspect current values before modifying. Returns property names, values, and types.
get_project_healthreadGenerates a health report with scoring for project quality. Checks for unused resources, script errors, missing references, etc.
get_project_inforeadReturns 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_settingreadReads a value from project.godot settings. Use to check game name, window size, physics settings, etc.
get_recording_modereadGet current recording mode and queue status.
get_runtime_metricsreadGet performance metrics from a running Godot instance
get_runtime_statusreadChecks if a Godot game instance is running and connected for live debugging. Use before other runtime tools.
get_script_inforeadAnalyzes a GDScript and returns its structure: functions, variables, signals, class_name, extends. Use before modify_script to understand existing code.
get_uidreadGet the UID for a specific file in a Godot project (for Godot 4.4+)
godot.debug_triagewriteRun a focused Godot debug triage loop from reproduction to verified fix.
godot.scene_bootstrapreadGenerate a deterministic scene bootstrap plan and starter GDScript wiring for a new gameplay scene.
inject_actionreadSimulate a Godot input action (press/release). Requires runtime addon.
inject_keyreadSimulate a keyboard key press/release in the running Godot game. Requires runtime addon.
inject_mouse_clickreadSimulate a mouse click at specified position in the running Godot game. Requires runtime addon.
inject_mouse_motionreadSimulate mouse movement to a position in the running Godot game. Requires runtime addon.
inspect_inheritancereadInspect class inheritance hierarchy: ancestors, direct children, all descendants. Use to understand class relationships and find specialized alternatives.
inspect_runtime_treereadInspect the scene tree of a running Godot instance
launch_editorreadOpens 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_providersreadList all available CC0 asset providers and their capabilities.
list_autoloadsreadLists all registered autoload singletons in the project. Shows name, path, and enabled status.
list_connectionsreadLists all signal connections in a scene. Use to understand event flow or debug connection issues.
list_export_presetsreadLists all export presets defined in export_presets.cfg. Use before export_project to see available targets (Windows, Linux, Android, etc.).
list_pluginsreadLists all plugins in addons/ folder with enabled/disabled status. Use before enable_plugin or disable_plugin to see available plugins.
list_projectsreadScans a directory for Godot projects (folders containing project.godot). Use to discover projects before using other tools. Returns array of {path, name}.
list_scene_nodesreadReturns complete scene tree structure with all nodes, types, and hierarchy. Use to understand scene organization before modifying. Returns nested tree with node paths.
load_spritewriteAssigns 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_completionsreadGet code completions from Godot Language Server at a given position.
lsp_get_diagnosticsreadGet GDScript diagnostics from Godot Language Server for a script file.
lsp_get_hoverreadGet hover information from Godot Language Server at a given position.
lsp_get_symbolsreadGet document symbols for a GDScript file from Godot Language Server.
map_projectreadCrawl 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_resourcewriteModify properties of an existing resource file (.tres/.res). Use to update materials, environments, themes, or any saved resource without recreating it.
modify_scriptwriteAdds functions, variables, or signals to an existing GDScript. Use to extend scripts without manual editing. Supports @export, @onready annotations and type hints.
parse_error_logreadParses Godot error log and provides fix suggestions. Use to diagnose runtime errors or script issues.
project_pathreadAbsolute path to the Godot project directory.
query_class_inforeadGet 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_classesreadQuery 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_logreadRecord a structured decision log entry with rationale and alternatives.
record_execution_tracereadRecord execution trace for a work step (command/tool, files changed, result, artifacts).
record_work_stepreadUnified operation: records execution trace and optionally refreshes handoff pack in one call.
reimport_resourcewriteForces reimport of resources. Use after modifying source files or to fix import issues. Can reimport single file or all modified.
remove_autoloaddestructiveUnregisters an autoload singleton. Use to remove global managers no longer needed.
reparent_nodereadMoves 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_stepsreadOptional reproduction steps observed by the developer.
root_node_typereadRoot node type for the scene. Defaults to Node2D.
run_projectwriteLaunches 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_scenewriteSaves 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_prototypereadCreates a minimal playable prototype scaffold in one shot: main scene, player scene, basic nodes, common input actions, and optional starter player script.
scene_pathwriteScene path to create, for example: res://scenes/Player.tscn
search_assetsreadSearch for CC0 assets across multiple sources (Poly Haven, AmbientCG, Kenney). Returns results sorted by provider priority.
search_projectreadSearches 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_effectwriteAdds or configures an audio effect on a bus. Use for reverb, delay, EQ, compression, etc.
set_audio_bus_volumewriteSets volume for an audio bus in decibels. Use to balance audio levels.
set_import_optionswriteModifies import settings for a resource. Use to change compression, mipmaps, filter mode. Triggers reimport by default.
set_main_scenewriteSets which scene loads first when the game starts. Updates application/run/main_scene in project.godot.
set_node_propertieswriteSets 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_settingwriteWrites a value to project.godot settings. Use to configure game name, window size, physics, etc.
set_recording_modewriteSet recording mode: lite (minimal overhead) or full (richer context).
set_runtime_propertywriteSet a property on a node in a running Godot instance
set_theme_colorwriteSet a color in a Theme resource
set_theme_font_sizewriteSet a font size in a Theme resource
set_tilemap_cellswritePlaces tiles in a TileMap node. Use to programmatically generate levels or modify existing tilemaps.
stop_projectwriteTerminates the currently running Godot project process. Use to stop a project started with run_project. No effect if no project is running.
summarize_intent_contextreadSummarize current intent context (goal, open decisions, risks, next actions) in compact form.
update_project_uidswriteUpdate UID references in a Godot project by resaving resources (for Godot 4.4+)
validate_patch_with_lspwriteRuns Godot LSP diagnostics for a script and returns whether it is safe to apply changes. Intended as a pre-apply quality gate.
validate_projectreadChecks project for export issues: missing resources, script errors, configuration problems. Use before export_project.
04

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (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)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/visualizer-server.ts:455
exec(`${cmd} ${url}`, (err) => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
test-github-update.mjs:18
await run(`http://127.0.0.1:${address.port}/latest`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
test-offline-release-install.mjs:20
BUN_CONFIG_REGISTRY: 'http://127.0.0.1:9',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
test-offline-release-install.mjs:21
HTTP_PROXY: 'http://127.0.0.1:9',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
test-offline-release-install.mjs:22
HTTPS_PROXY: 'http://127.0.0.1:9',
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
dap_remove_breakpoint, delete_node, remove_autoload
Why it matters. 3 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.nojekyll
.nojekyll
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test-github-update.mjs:96
await assert.rejects(() => installRelease('../../malicious'), /malformed/);
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, fs-extra, ws, @types/node, @types/ws, esbuild, typescript
Why it matters. 7 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOInventory / provenance · inv.oversize · CWE-1104
assets/gopeak-hero-v2.png
assets/gopeak-hero-v2.png
Why it matters. 1839960 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
assets/gopeak-hero.png
assets/gopeak-hero.png
Why it matters. 1839960 bytes not read
INFOSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
README.md:120
curl -sL https://raw.githubusercontent.com/HaD0Yun/Doyunha-Gopeak/main/install-addon.sh | bash

Gates applied: no_behavioural_pass.

Audited 2026-10-06 · audit v0.4.1 · source sha 5c12eab2eed0full audit observations/trust-audit/mcp-server/had0yun__gopeak-1.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-065c12eab2eed0BLOCKD69first audit
06

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.

Advertisement