# io.github.HaD0Yun/gopeak (npm · gopeak)

GoPeak — The most comprehensive MCP server for Godot Engine. 95+ tools, LSP, DAP, screenshots.

- Trust score: 57/100 (low)
- Change this week: +11
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `gopeak`: 57/100 (this document), [markdown](https://verifymcp.io/servers/had0yun-gopeak/gopeak.md), [page](https://verifymcp.io/servers/had0yun-gopeak/gopeak)

## Channel facts

- Registry: `npm`
- Package: `gopeak`
- Version: `2.0.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 70/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 0.6.0, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (47 of 48), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 46 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 84/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 10450 tokens (~108/item across 96 items; 95 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add had0yun-gopeak -- npx -y gopeak
```

### Codex

```bash
codex mcp add had0yun-gopeak -- npx -y gopeak
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "had0yun-gopeak": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "gopeak"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add had0yun-gopeak --command npx --arg -y --arg gopeak
```

### Hermes

```yaml
mcp_servers:
  had0yun-gopeak:
    command: "npx"
    args: ["-y", "gopeak"]
```

### Other

```json
{
  "mcpServers": {
    "had0yun-gopeak": {
      "command": "npx",
      "args": [
        "-y",
        "gopeak"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 57, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 53, +19)

- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] MCP protocol: unverified → fail
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Schema quality: unverified → excellent

### 2026-08-01 (score 34, +13)

- [security regression] CVE-2025-66414 affects this package: high
- [security regression] Provenance: unverified → fail
- [security regression] Known CVEs: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-07-31 (score 21, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 18, −28)

- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (95)

### `launch_editor` (~81 tokens)

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.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `run_project` (~111 tokens)

Launches a Godot project in a new window and captures output. Use to test gameplay or verify script behavior. Runs until stop_project is called. Use get_debug_output to retrieve logs.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scene` (string): Optional: specific scene to run (e.g., "scenes/TestLevel.tscn"). If omitted, runs main scene from project settings.

### `get_debug_output` (~60 tokens)

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.

Input parameters:

- `reason` (string, required): Brief explanation of why you are calling this tool

### `stop_project` (~52 tokens)

Terminates the currently running Godot project process. Use to stop a project started with run_project. No effect if no project is running.

Input parameters:

- `reason` (string, required): Brief explanation of why you are calling this tool

### `get_godot_version` (~72 tokens)

Returns the installed Godot engine version string. Use to check compatibility (e.g., Godot 4.4+ features like UID). Returns version like "4.3.stable" or "4.4.dev".

Input parameters:

- `reason` (string, required): Brief explanation of why you are calling this tool

### `list_projects` (~99 tokens)

Scans a directory for Godot projects (folders containing project.godot). Use to discover projects before using other tools. Returns array of {path, name}.

Input parameters:

- `directory` (string, required): Absolute path to search (e.g., "/home/user/godot-projects" on Linux, "C:\Games" on Windows)
- `recursive` (boolean): If true, searches all subdirectories. If false (default), only checks immediate children.

### `get_project_info` (~76 tokens)

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.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `create_scene` (~166 tokens)

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.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `rootNodeType` (string): Godot node class for root (e.g., "Node2D" for 2D games, "Node3D" for 3D, "Control" for UI). Default: "Node"
- `scenePath` (string, required): Path for new scene file relative to project (e.g., "scenes/Player.tscn", "levels/Level1.tscn")

### `add_node` (~284 tokens)

Adds ANY node type to an existing scene. This is the universal node creation tool — replaces all specialized create_* node tools. Supports ALL ClassDB node types (Camera3D, DirectionalLight3D, AudioStreamPlayer, HTTPRequest, RayCast3D, etc.). Set any property via the properties parameter with type conversion support (Vector2, Vector3, Color, etc.). Use query_classes to discover available node types. Use query_class_info to discover available properties for a type.

Input parameters:

- `nodeName` (string, required): Name for the new node (will be unique identifier in scene tree)
- `nodeType` (string, required): Godot node class name (e.g., "Sprite2D", "CollisionShape2D", "CharacterBody2D"). Must be valid Godot 4 class.
- `parentNodePath` (string): Node path within scene (e.g., "." for root, "Player" for direct child, "Player/Sprite2D" for nested)
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `properties` (string): Optional properties to set on the node (as JSON string)
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")

### `load_sprite` (~158 tokens)

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.

Input parameters:

- `nodePath` (string, required): Path to Sprite2D node in scene (e.g., ".", "Player/Sprite2D")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")
- `texturePath` (string, required): Path to texture file relative to project (e.g., "assets/player.png", "sprites/enemy.svg")

### `save_scene` (~128 tokens)

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.

Input parameters:

- `newPath` (string): Optional: New path to save as variant (e.g., "scenes/PlayerBlue.tscn")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")

### `get_uid` (~68 tokens)

Get the UID for a specific file in a Godot project (for Godot 4.4+)

Input parameters:

- `filePath` (string, required): Path to the file (relative to project) for which to get the UID
- `projectPath` (string, required): Path to the Godot project directory

### `update_project_uids` (~47 tokens)

Update UID references in a Godot project by resaving resources (for Godot 4.4+)

Input parameters:

- `projectPath` (string, required): Path to the Godot project directory

### `list_scene_nodes` (~153 tokens)

Returns complete scene tree structure with all nodes, types, and hierarchy. Use to understand scene organization before modifying. Returns nested tree with node paths.

Input parameters:

- `depth` (number): Maximum depth to traverse. -1 = all (default), 0 = root only, 1 = root + children
- `includeProperties` (boolean): If true, includes all node properties. If false (default), only names and types.
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")

### `get_node_properties` (~148 tokens)

Returns all properties of a specific node in a scene. Use to inspect current values before modifying. Returns property names, values, and types.

Input parameters:

- `includeDefaults` (boolean): If true, includes properties with default values. If false (default), only modified properties.
- `nodePath` (string, required): Path to node within scene (e.g., ".", "Player", "Player/Sprite2D")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")

### `set_node_properties` (~216 tokens)

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.

Input parameters:

- `nodePath` (string, required): Path to node within scene (e.g., ".", "Player", "Player/Sprite2D")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `properties` (string, required): JSON object of properties to set (e.g., {"position": {"x": 100, "y": 200}, "scale": {"x": 2, "y": 2}})
- `saveScene` (boolean): If true (default), saves scene after modification. Set false for batch operations.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")

### `delete_node` (~150 tokens)

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.

Input parameters:

- `nodePath` (string, required): Path to node to delete (e.g., "Player/OldSprite", "Enemies/Enemy1")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `saveScene` (boolean): If true (default), saves scene after deletion. Set false for batch operations.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")

### `duplicate_node` (~197 tokens)

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.

Input parameters:

- `newName` (string, required): Name for the new duplicated node (e.g., "Enemy2", "ButtonCopy")
- `nodePath` (string, required): Path to node to duplicate (e.g., "Enemies/Enemy", "UI/Button")
- `parentPath` (string): Optional: Different parent path. If omitted, uses same parent as original.
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `saveScene` (boolean): If true (default), saves scene after duplication. Set false for batch operations.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Level.tscn")

### `reparent_node` (~179 tokens)

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.

Input parameters:

- `newParentPath` (string, required): Path to new parent node (e.g., "NewParent", "UI/Panel")
- `nodePath` (string, required): Path to node to move (e.g., "OldParent/Child", "UI/Button")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `saveScene` (boolean): If true (default), saves scene after reparenting. Set false for batch operations.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Level.tscn")

### `get_import_status` (~114 tokens)

Returns import status for project resources. Use to find outdated or failed imports. Shows which resources need reimporting.

Input parameters:

- `includeUpToDate` (boolean): If true, includes already-imported resources. Default: false (only pending)
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `resourcePath` (string): Optional: specific resource path (e.g., "textures/player.png"). If omitted, returns all.

### `get_import_options` (~86 tokens)

Returns current import settings for a resource. Use to check compression, mipmaps, filter settings before modifying.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `resourcePath` (string, required): Path to resource file (e.g., "textures/player.png", "audio/music.ogg")

### `set_import_options` (~140 tokens)

Modifies import settings for a resource. Use to change compression, mipmaps, filter mode. Triggers reimport by default.

Input parameters:

- `options` (string, required): JSON string of import options (e.g., {"compress/mode": 1, "mipmaps/generate": true})
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `reimport` (boolean): If true (default), reimports after setting. Set false for batch changes.
- `resourcePath` (string, required): Path to resource file (e.g., "textures/player.png")

### `reimport_resource` (~109 tokens)

Forces reimport of resources. Use after modifying source files or to fix import issues. Can reimport single file or all modified.

Input parameters:

- `force` (boolean): If true, reimports even if up-to-date. Default: false
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `resourcePath` (string): Optional: specific resource to reimport. If omitted, reimports all modified.

### `list_export_presets` (~88 tokens)

Lists all export presets defined in export_presets.cfg. Use before export_project to see available targets (Windows, Linux, Android, etc.).

Input parameters:

- `includeTemplateStatus` (boolean): If true (default), shows if export templates are installed.
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `export_project` (~138 tokens)

Exports the project to a distributable format. Use to build final game executables. Requires export templates installed.

Input parameters:

- `debug` (boolean): If true, exports debug build. Default: false (release)
- `outputPath` (string, required): Destination path for exported file (e.g., "builds/game.exe", "builds/game.x86_64")
- `preset` (string, required): Export preset name from export_presets.cfg (e.g., "Windows Desktop", "Linux/X11")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `validate_project` (~92 tokens)

Checks project for export issues: missing resources, script errors, configuration problems. Use before export_project.

Input parameters:

- `includeSuggestions` (boolean): If true (default), includes fix suggestions for each issue
- `preset` (string): Optional: validate against specific export preset requirements
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `get_dependencies` (~132 tokens)

Analyzes resource dependencies and detects circular references. Use to understand what a scene/script depends on before refactoring.

Input parameters:

- `depth` (number): How deep to traverse dependencies. -1 for unlimited. Default: -1
- `includeBuiltin` (boolean): If true, includes Godot built-in resources. Default: false
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `resourcePath` (string, required): Path to analyze (e.g., "scenes/player.tscn", "scripts/game.gd")

### `find_resource_usages` (~104 tokens)

Finds all files that reference a resource. Use before deleting or renaming to avoid breaking references.

Input parameters:

- `fileTypes` (array): File types to search. Default: ["tscn", "tres", "gd"]
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `resourcePath` (string, required): Resource to search for (e.g., "textures/player.png")

### `parse_error_log` (~97 tokens)

Parses Godot error log and provides fix suggestions. Use to diagnose runtime errors or script issues.

Input parameters:

- `logContent` (string): Optional: error log text. If omitted, reads from godot.log
- `maxErrors` (number): Maximum errors to return. Default: 50
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `get_project_health` (~80 tokens)

Generates a health report with scoring for project quality. Checks for unused resources, script errors, missing references, etc.

Input parameters:

- `includeDetails` (boolean): If true (default), includes detailed breakdown per category
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `get_project_setting` (~97 tokens)

Reads a value from project.godot settings. Use to check game name, window size, physics settings, etc.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `setting` (string, required): Setting path (e.g., "application/config/name", "display/window/size/width", "physics/2d/default_gravity")

### `set_project_setting` (~104 tokens)

Writes a value to project.godot settings. Use to configure game name, window size, physics, etc.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `setting` (string, required): Setting path (e.g., "application/config/name", "display/window/size/width")
- `value` (string, required): Value to set (Godot auto-converts types)

### `add_autoload` (~140 tokens)

Registers a script/scene as an autoload singleton. Use for global managers (GameManager, AudioManager, etc.). Loads automatically on game start.

Input parameters:

- `enabled` (boolean): If true (default), autoload is active. Set false to temporarily disable.
- `name` (string, required): Singleton name for global access (e.g., "GameManager", "EventBus")
- `path` (string, required): Path to .gd or .tscn file (e.g., "autoload/game_manager.gd")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `remove_autoload` (~74 tokens)

Unregisters an autoload singleton. Use to remove global managers no longer needed.

Input parameters:

- `name` (string, required): Singleton name to remove (e.g., "GameManager")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `list_autoloads` (~60 tokens)

Lists all registered autoload singletons in the project. Shows name, path, and enabled status.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `set_main_scene` (~92 tokens)

Sets which scene loads first when the game starts. Updates application/run/main_scene in project.godot.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to main scene (e.g., "scenes/main_menu.tscn", "scenes/game.tscn")

### `connect_signal` (~236 tokens)

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.

Input parameters:

- `flags` (number): Optional: connection flags (0=default, 1=deferred, 2=persist, 4=one_shot)
- `methodName` (string, required): Method to call on target (e.g., "_on_start_pressed", "take_damage")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file (e.g., "scenes/ui/menu.tscn")
- `signalName` (string, required): Signal name (e.g., "pressed", "body_entered", "health_changed")
- `sourceNodePath` (string, required): Emitting node path (e.g., "StartButton", "Player/Area2D")
- `targetNodePath` (string, required): Receiving node path (e.g., ".", "Player", "../GameManager")

### `disconnect_signal` (~155 tokens)

Removes a signal connection from a scene. Use to clean up unused connections or rewire logic.

Input parameters:

- `methodName` (string, required): Connected method name (e.g., "_on_start_pressed")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file (e.g., "scenes/ui/menu.tscn")
- `signalName` (string, required): Signal name (e.g., "pressed")
- `sourceNodePath` (string, required): Emitting node path (e.g., "StartButton")
- `targetNodePath` (string, required): Receiving node path (e.g., ".")

### `list_connections` (~103 tokens)

Lists all signal connections in a scene. Use to understand event flow or debug connection issues.

Input parameters:

- `nodePath` (string): Optional: filter to connections involving this node. If omitted, shows all.
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file (e.g., "scenes/player.tscn")

### `get_runtime_status` (~60 tokens)

Checks if a Godot game instance is running and connected for live debugging. Use before other runtime tools.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `inspect_runtime_tree` (~68 tokens)

Inspect the scene tree of a running Godot instance

Input parameters:

- `depth` (number): Maximum depth to inspect (default: 3)
- `nodePath` (string): Path to start inspection from (default: root)
- `projectPath` (string, required): Path to the Godot project directory

### `set_runtime_property` (~77 tokens)

Set a property on a node in a running Godot instance

Input parameters:

- `nodePath` (string, required): Path to the target node
- `projectPath` (string, required): Path to the Godot project directory
- `property` (string, required): Property name to set
- `value` (string, required): Value to set (Godot handles type conversion)

### `call_runtime_method` (~78 tokens)

Call a method on a node in a running Godot instance

Input parameters:

- `args` (array): Arguments to pass to the method (as JSON strings)
- `method` (string, required): Method name to call
- `nodePath` (string, required): Path to the target node
- `projectPath` (string, required): Path to the Godot project directory

### `get_runtime_metrics` (~49 tokens)

Get performance metrics from a running Godot instance

Input parameters:

- `metrics` (array): Specific metrics to retrieve (default: all)
- `projectPath` (string, required): Path to the Godot project directory

### `create_resource` (~221 tokens)

Creates ANY resource type as a .tres file. This is the universal resource creation tool — replaces all specialized create_* resource tools (PhysicsMaterial, Environment, Theme, etc.). Supports ALL ClassDB resource types. Set any property via the properties parameter with type conversion support. Use query_classes with category "resource" to discover available resource types. Use query_class_info to discover available properties.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `properties` (string): Optional: JSON object of properties to set (e.g., {"value": 100})
- `resourcePath` (string, required): Path for new .tres file relative to project (e.g., "resources/items/sword.tres")
- `resourceType` (string, required): Resource class name (e.g., "Resource", "CurveTexture", "GradientTexture2D")
- `script` (string): Optional: path to custom Resource script (e.g., "scripts/resources/item_data.gd")

### `create_material` (~215 tokens)

Creates a material resource for 3D/2D rendering. Types: StandardMaterial3D (PBR), ShaderMaterial (custom), CanvasItemMaterial (2D), ParticleProcessMaterial (particles).

Input parameters:

- `materialPath` (string, required): Path for new material file relative to project (e.g., "materials/player.tres")
- `materialType` (string, required): Material type: StandardMaterial3D (3D PBR), ShaderMaterial (custom shader), CanvasItemMaterial (2D), ParticleProcessMaterial (particles)
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `properties` (string): Optional: JSON object of properties (e.g., {"albedo_color": [1, 0, 0, 1], "metallic": 0.8})
- `shader` (string): Optional for ShaderMaterial: path to .gdshader file (e.g., "shaders/outline.gdshader")

### `create_shader` (~179 tokens)

Creates a shader file (.gdshader) with optional templates. Types: canvas_item (2D), spatial (3D), particles, sky, fog. Templates: basic, color_shift, outline.

Input parameters:

- `code` (string): Optional: custom shader code. If omitted, uses template or generates basic shader.
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `shaderPath` (string, required): Path for new .gdshader file relative to project (e.g., "shaders/outline.gdshader")
- `shaderType` (string, required): Shader type: canvas_item (2D/UI), spatial (3D), particles, sky, fog
- `template` (string): Optional: predefined template - "basic", "color_shift", "outline"

### `create_script` (~217 tokens)

Creates a new GDScript (.gd) file with optional templates. Use to generate scripts for game logic. Templates: "singleton" (autoload), "state_machine" (FSM), "component" (modular), "resource" (custom Resource).

Input parameters:

- `className` (string): Optional: class_name for global access (e.g., "Player", "GameManager")
- `content` (string): Optional: initial script content to add after class declaration
- `extends` (string): Base class to extend (e.g., "Node", "CharacterBody2D", "Resource"). Default: "Node"
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scriptPath` (string, required): Path for new script relative to project (e.g., "scripts/player.gd", "autoload/game_manager.gd")
- `template` (string): Optional: template name - "singleton", "state_machine", "component", "resource"

### `modify_script` (~110 tokens)

Adds functions, variables, or signals to an existing GDScript. Use to extend scripts without manual editing. Supports @export, @onready annotations and type hints.

Input parameters:

- `modifications` (array, required): Array of modifications to apply
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scriptPath` (string, required): Path to existing .gd file relative to project (e.g., "scripts/player.gd")

### `get_script_info` (~121 tokens)

Analyzes a GDScript and returns its structure: functions, variables, signals, class_name, extends. Use before modify_script to understand existing code.

Input parameters:

- `includeInherited` (boolean): If true, includes members from parent classes. Default: false (only script-defined members).
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scriptPath` (string, required): Path to .gd file relative to project (e.g., "scripts/player.gd")

### `create_animation` (~227 tokens)

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.

Input parameters:

- `animationName` (string, required): Name for new animation (e.g., "walk", "idle", "attack")
- `length` (number): Duration of the animation in seconds (default: 1.0)
- `loopMode` (string): Loop mode for the animation (default: "none")
- `playerNodePath` (string, required): Path to AnimationPlayer node in scene (e.g., ".", "Player/AnimationPlayer")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")
- `step` (number): Keyframe snap step in seconds (default: 0.1)

### `add_animation_track` (~174 tokens)

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.

Input parameters:

- `animationName` (string, required): Name of existing animation to add track to (e.g., "walk", "idle")
- `playerNodePath` (string, required): Path to AnimationPlayer node in scene (e.g., ".", "Player/AnimationPlayer")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to .tscn file relative to project (e.g., "scenes/Player.tscn")
- `track` (object, required): Track configuration

### `list_plugins` (~63 tokens)

Lists all plugins in addons/ folder with enabled/disabled status. Use before enable_plugin or disable_plugin to see available plugins.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `enable_plugin` (~87 tokens)

Enables a plugin from addons/ folder. Updates project.godot automatically. Use list_plugins first to see available plugins.

Input parameters:

- `pluginName` (string, required): Plugin folder name in addons/ (e.g., "dialogue_manager", "scatter")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `disable_plugin` (~86 tokens)

Disables a plugin in the project. Updates project.godot automatically. Plugin files remain in addons/ folder.

Input parameters:

- `pluginName` (string, required): Plugin folder name in addons/ (e.g., "dialogue_manager", "scatter")
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `add_input_action` (~155 tokens)

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.

Input parameters:

- `actionName` (string, required): Action name used in code (e.g., "jump", "move_left", "attack")
- `deadzone` (number): Analog stick deadzone (0-1). Default: 0.5
- `events` (array, required): Array of input events - each with type (key/mouse_button/joypad_button/joypad_axis) and binding details
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `search_project` (~172 tokens)

Searches for text or regex patterns across project files. Use to find function usages, variable references, or TODOs. Returns file paths and line numbers.

Input parameters:

- `caseSensitive` (boolean): If true, case-sensitive search. Default: false
- `fileTypes` (array): File extensions to search. Default: ["gd", "tscn", "tres"]
- `maxResults` (number): Maximum results to return. Default: 100
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `query` (string, required): Search text or regex pattern (e.g., "player", "TODO", "func.*damage")
- `regex` (boolean): If true, treats query as regex. Default: false

### `create_tileset` (~117 tokens)

Creates a TileSet resource from texture atlases. Use for 2D tilemaps in platformers, RPGs, etc. Supports multiple atlas sources.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `sources` (array, required): Array of atlas sources, each with texture path and tileSize {x, y}
- `tilesetPath` (string, required): Output path for TileSet (e.g., "resources/world_tiles.tres")

### `set_tilemap_cells` (~151 tokens)

Places tiles in a TileMap node. Use to programmatically generate levels or modify existing tilemaps.

Input parameters:

- `cells` (array, required): Array of cells with coords {x,y}, sourceId, atlasCoords {x,y}
- `layer` (number): TileMap layer index. Default: 0
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to scene containing TileMap (e.g., "scenes/level1.tscn")
- `tilemapNodePath` (string, required): Path to TileMap node (e.g., "World/TileMap")

### `create_audio_bus` (~109 tokens)

Creates a new audio bus for mixing. Use to set up separate volume controls for music, SFX, voice, etc.

Input parameters:

- `busName` (string, required): Name for the audio bus (e.g., "Music", "SFX", "Voice")
- `parentBusIndex` (number): Parent bus index. Default: 0 (Master)
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `get_audio_buses` (~55 tokens)

Lists all audio buses and their configuration. Use to check current audio setup.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `set_audio_bus_effect` (~132 tokens)

Adds or configures an audio effect on a bus. Use for reverb, delay, EQ, compression, etc.

Input parameters:

- `busIndex` (number, required): Bus index (0 = Master)
- `effectIndex` (number, required): Effect slot index (0-7)
- `effectType` (string, required): Effect type (e.g., "Reverb", "Delay", "Chorus", "Compressor")
- `enabled` (boolean): Whether effect is active
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.

### `set_audio_bus_volume` (~98 tokens)

Sets volume for an audio bus in decibels. Use to balance audio levels.

Input parameters:

- `busIndex` (number, required): Bus index (0 = Master)
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `volumeDb` (number, required): Volume in decibels (0 = unity, -80 = silent, +6 = boost)

### `create_navigation_region` (~119 tokens)

Creates a NavigationRegion for pathfinding. Use to define walkable areas for AI navigation.

Input parameters:

- `is3D` (boolean): If true, creates NavigationRegion3D. Default: false
- `nodeName` (string, required): Node name (e.g., "WalkableArea")
- `parentPath` (string, required): Parent node path
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to scene file

### `create_navigation_agent` (~154 tokens)

Creates a NavigationAgent for AI pathfinding. Use for enemies, NPCs that need to navigate around obstacles.

Input parameters:

- `is3D` (boolean): If true, creates NavigationAgent3D. Default: false
- `nodeName` (string, required): Node name (e.g., "NavAgent")
- `parentPath` (string, required): Parent node path (usually the character)
- `pathDesiredDistance` (number): Distance to consider waypoint reached
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to scene file
- `targetDesiredDistance` (number): Distance to consider target reached

### `create_animation_tree` (~115 tokens)

Create an AnimationTree node linked to an AnimationPlayer

Input parameters:

- `animPlayerPath` (string, required): Path to AnimationPlayer node (relative to parent)
- `nodeName` (string, required): Name for AnimationTree
- `parentPath` (string, required): Parent node path
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `rootType` (string): Root node type
- `scenePath` (string, required): Path to the scene file

### `add_animation_state` (~121 tokens)

Add a state to an AnimationTree state machine

Input parameters:

- `animTreePath` (string, required): Path to AnimationTree node
- `animationName` (string, required): Animation to play in this state
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to the scene file
- `stateMachinePath` (string): Path within tree to state machine (default: root)
- `stateName` (string, required): Name for the state

### `connect_animation_states` (~120 tokens)

Connect two states with a transition

Input parameters:

- `advanceCondition` (string): Condition parameter name for auto-advance
- `animTreePath` (string, required): Path to AnimationTree node
- `fromState` (string, required): Source state name
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `scenePath` (string, required): Path to the scene file
- `toState` (string, required): Target state name
- `transitionType` (string): Transition type

### `set_theme_color` (~100 tokens)

Set a color in a Theme resource

Input parameters:

- `color` (object, required): Color value
- `colorName` (string, required): Color name (font_color, etc.)
- `controlType` (string, required): Control type (Button, Label, etc.)
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `themePath` (string, required): Path to the theme resource

### `set_theme_font_size` (~101 tokens)

Set a font size in a Theme resource

Input parameters:

- `controlType` (string, required): Control type (Button, Label, etc.)
- `fontSizeName` (string, required): Font size name
- `projectPath` (string, required): Absolute path to project directory containing project.godot. Use the same path across all tool calls in a workflow.
- `size` (number, required): Font size in pixels
- `themePath` (string, required): Path to the theme resource

### `apply_theme_shader` (~113 tokens)

Generate and apply theme-appropriate shader to a material in a scene

Input parameters:

- `effect` (string): Special effect to add (default: none)
- `nodePath` (string, required): Path to MeshInstance3D or Sprite node
- `projectPath` (string, required): Path to the Godot project directory
- `scenePath` (string, required): Path to the scene file (relative to project)
- `shaderParams` (string): Optional JSON string with custom shader parameters
- `theme` (string, required): Visual theme to apply

### `query_classes` (~173 tokens)

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.

Input parameters:

- `category` (string): Optional: filter by category (node, node2d, node3d, control, resource, physics, physics2d, audio, visual, animation)
- `filter` (string): Optional: substring filter for class names (case-insensitive, e.g., "light", "collision")
- `instantiableOnly` (boolean): If true, only return classes that can be instantiated (default: false)
- `projectPath` (string, required): Absolute path to project directory containing project.godot.

### `query_class_info` (~128 tokens)

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.

Input parameters:

- `className` (string, required): Exact Godot class name (e.g., "CharacterBody3D", "StandardMaterial3D", "AnimationPlayer")
- `includeInherited` (boolean): If true, include inherited members from parent classes (default: false — shows only class-specific members)
- `projectPath` (string, required): Absolute path to project directory containing project.godot.

### `inspect_inheritance` (~65 tokens)

Inspect class inheritance hierarchy: ancestors, direct children, all descendants. Use to understand class relationships and find specialized alternatives.

Input parameters:

- `className` (string, required): Exact Godot class name to inspect
- `projectPath` (string, required): Absolute path to project directory containing project.godot.

### `modify_resource` (~134 tokens)

Modify properties of an existing resource file (.tres/.res). Use to update materials, environments, themes, or any saved resource without recreating it.

Input parameters:

- `projectPath` (string, required): Absolute path to project directory containing project.godot.
- `properties` (string, required): JSON object of properties to set (e.g., {"albedo_color": {"_type": "Color", "r": 1, "g": 0, "b": 0, "a": 1}})
- `resourcePath` (string, required): Path to existing resource file relative to project (e.g., "materials/player.tres")

### `search_assets` (~147 tokens)

Search for CC0 assets across multiple sources (Poly Haven, AmbientCG, Kenney). Returns results sorted by provider priority.

Input parameters:

- `assetType` (string): Type of asset to search (optional, searches all if not specified)
- `keyword` (string, required): Search term (e.g., "chair", "rock", "tree")
- `maxResults` (number): Maximum number of results to return (default: 10)
- `mode` (string): Search mode: "parallel" queries all providers, "sequential" stops at first with results (default: parallel)
- `provider` (string): Specific provider to search, or "all" for multi-source (default: all)

### `fetch_asset` (~118 tokens)

Download a CC0 asset from any supported source (Poly Haven, AmbientCG, Kenney) to your Godot project.

Input parameters:

- `assetId` (string, required): Asset ID from search results
- `projectPath` (string, required): Path to the Godot project directory
- `provider` (string, required): Source provider for the asset
- `resolution` (string): Resolution for download (default: 2k, only for PolyHaven/AmbientCG)
- `targetFolder` (string): Target folder for download (default: downloaded_assets/<provider>)

### `list_asset_providers` (~21 tokens)

List all available CC0 asset providers and their capabilities.

### `capture_screenshot` (~86 tokens)

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).

Input parameters:

- `format` (string): Image format (default: png)
- `height` (number): Target height in pixels (default: current viewport height)
- `width` (number): Target width in pixels (default: current viewport width)

### `capture_viewport` (~80 tokens)

Capture a viewport texture as base64 image from the running Godot game. Similar to capture_screenshot but captures a specific viewport by path.

Input parameters:

- `height` (number): Target height in pixels
- `viewportPath` (string): NodePath to the target Viewport node (default: root viewport)
- `width` (number): Target width in pixels

### `inject_action` (~93 tokens)

Simulate a Godot input action (press/release). Requires runtime addon.

Input parameters:

- `action` (string, required): Action name as defined in Input Map (e.g., "ui_accept", "jump")
- `pressed` (boolean): Whether to press (true) or release (false). Default: true
- `strength` (number): Action strength 0.0–1.0. Default: 1.0

### `inject_key` (~110 tokens)

Simulate a keyboard key press/release in the running Godot game. Requires runtime addon.

Input parameters:

- `alt` (boolean): Alt modifier. Default: false
- `ctrl` (boolean): Ctrl modifier. Default: false
- `keycode` (string, required): Key name (e.g., "A", "Space", "Escape", "Enter")
- `pressed` (boolean): Press (true) or release (false). Default: true
- `shift` (boolean): Shift modifier. Default: false

### `inject_mouse_click` (~98 tokens)

Simulate a mouse click at specified position in the running Godot game. Requires runtime addon.

Input parameters:

- `button` (string): Mouse button. Default: left
- `doubleClick` (boolean): Double-click. Default: false
- `pressed` (boolean): Press (true) or release (false). Default: true
- `x` (number, required): X coordinate in viewport pixels
- `y` (number, required): Y coordinate in viewport pixels

### `inject_mouse_motion` (~77 tokens)

Simulate mouse movement to a position in the running Godot game. Requires runtime addon.

Input parameters:

- `relativeX` (number): Relative X movement delta
- `relativeY` (number): Relative Y movement delta
- `x` (number, required): Target X coordinate in viewport pixels
- `y` (number, required): Target Y coordinate in viewport pixels

### `lsp_get_diagnostics` (~56 tokens)

Get GDScript diagnostics from Godot Language Server for a script file.

Input parameters:

- `projectPath` (string, required): Absolute path to Godot project root
- `scriptPath` (string, required): Path to script relative to project root

### `lsp_get_completions` (~78 tokens)

Get code completions from Godot Language Server at a given position.

Input parameters:

- `character` (number, required): Zero-based character offset
- `line` (number, required): Zero-based line number
- `projectPath` (string, required): Absolute path to Godot project root
- `scriptPath` (string, required): Path to script relative to project root

### `lsp_get_hover` (~75 tokens)

Get hover information from Godot Language Server at a given position.

Input parameters:

- `character` (number, required): Zero-based character offset
- `line` (number, required): Zero-based line number
- `projectPath` (string, required): Absolute path to Godot project root
- `scriptPath` (string, required): Path to script relative to project root

### `lsp_get_symbols` (~55 tokens)

Get document symbols for a GDScript file from Godot Language Server.

Input parameters:

- `projectPath` (string, required): Absolute path to Godot project root
- `scriptPath` (string, required): Path to script relative to project root

### `dap_get_output` (~19 tokens)

Get captured Godot DAP console output lines

### `dap_set_breakpoint` (~49 tokens)

Set a breakpoint in a Godot script at a specific line

Input parameters:

- `line` (number, required): 1-based line number
- `scriptPath` (string, required): Absolute or project-relative script path

### `dap_remove_breakpoint` (~49 tokens)

Remove a breakpoint in a Godot script at a specific line

Input parameters:

- `line` (number, required): 1-based line number
- `scriptPath` (string, required): Absolute or project-relative script path

### `dap_continue` (~16 tokens)

Continue execution after a breakpoint or pause

### `dap_pause` (~18 tokens)

Pause execution of the running Godot debug target

### `dap_step_over` (~18 tokens)

Step over the current line in the debugger

### `dap_get_stack_trace` (~21 tokens)

Get the current stack trace from the Godot debugger

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/had0yun-gopeak/gopeak#diagnostics

## Score history

- 2026-08-03: 57
- 2026-08-02: 53
- 2026-08-01: 34
- 2026-07-31: 21
- 2026-07-30: 18
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/gopeak
- Socket report: https://socket.dev/npm/package/gopeak
- Changelog RSS feed: https://verifymcp.io/servers/had0yun-gopeak/gopeak/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/had0yun-gopeak/gopeak/changelog.json
- HTML version of this page: https://verifymcp.io/servers/had0yun-gopeak/gopeak
