Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.tomyud1/godot-mcp

NPM · GODOT-MCP-SERVER · SCANNED AUG 3

MCP server for Godot game engine integration — control the Godot editor with AI

Available components

+9 this week 61 Trust /100
Trust breakdown (6 categories)

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. How we score →

Supply Chain Security70
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 1.25.3, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (93 of 97), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 8537 tokens (~121/item across 70 items; 65 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 93% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · godot-mcp-server

# add to Claude Code
claude mcp add tomyud1-godot-mcp -- npx -y godot-mcp-server
# add to Codex CLI
codex mcp add tomyud1-godot-mcp -- npx -y godot-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tomyud1-godot-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "godot-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tomyud1-godot-mcp --command npx --arg -y --arg godot-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  tomyud1-godot-mcp:
    command: "npx"
    args: ["-y", "godot-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "tomyud1-godot-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "godot-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +36
    • CVE-2026-25536 affects this package: high security
    • GHSA-frvp-7c67-39w9 affects this package: high security
    • Provenance: unverified → fail security
    • Known CVEs: unverified → fail security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → good functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 31 Jul 26 −27
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 52

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Vulnerabilities 2 findings
ID CVE Severity Vector Fix available
GHSA-frvp-7c67-39w9 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-345p-7cg4-v4c7 CVE-2026-25536 high CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N yes
Dependencies 93 packages

93 packages in the resolved dependency tree · 93 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 65 exposed · ~8,385 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
send_input ~221

Synthesize an InputEvent and dispatch it to the running game via Input.parse_input_event. REQUIRES the game to be running with the MCPRuntime autoload connected. Use this to drive automated tests: click buttons, press keys, fire input actions. For multi-step interactions, alternate send_input → wait → query_runtime_node / take_screenshot.

NameTypeReqDescription
eventobjectyesInputEvent descriptor: Key: {type:"key", key:"Space", pressed:true, shift?:bool, ctrl?:bool, alt?:bool} or {type:"key", keycode:32, pressed:true} Mouse button: {type:"mouse_button", button_index:…

No output schema declared.

No examples provided.

set_collision_shape ~168

Create and assign a collision shape resource to a CollisionShape2D or CollisionShape3D node. Supports: CircleShape2D, RectangleShape2D, CapsuleShape2D, SphereShape3D, BoxShape3D, etc.

NameTypeReqDescription
node_pathstringPath to the CollisionShape2D/3D node
scene_pathstringyesPath to the .tscn scene file
shape_paramsobjectShape parameters: {radius: 32} for circles, {size: {x: 64, y: 64}} for rectangles, etc.
shape_typestringyesShape type: CircleShape2D, RectangleShape2D, CapsuleShape2D, SphereShape3D, BoxShape3D, etc.

No output schema declared.

No examples provided.

set_material ~205

Create and assign a material to a MeshInstance3D, CSG, or GeometryInstance3D node. Supports StandardMaterial3D or loading from file.

NameTypeReqDescription
material_paramsobjectStandardMaterial3D: {albedo_color:{r,g,b,a}, metallic:0-1, roughness:0-1, emission:{r,g,b}, emission_energy:float, transparency:0=disabled/1=alpha/2=scissor/3=hash/4=depth_pre_pass}. file: {path:"res…
material_typestringyes"StandardMaterial3D" or "file" to load from a resource path
node_pathstringPath to the target node
scene_pathstringyesPath to the .tscn scene file
surface_indexnumberFor MeshInstance3D only: surface index for per-surface override. Omit for material_override on all surfaces.

No output schema declared.

No examples provided.

set_mesh ~279

Create and assign a mesh resource to a MeshInstance3D node. REQUIRED to make 3D geometry visible. Primitive types: BoxMesh, SphereMesh, CylinderMesh, CapsuleMesh, PlaneMesh, PrismMesh, TorusMesh, QuadMesh, TextMesh. Or load from file.

NameTypeReqDescription
mesh_paramsobjectBoxMesh: {size:{x,y,z}}. SphereMesh: {radius,height,radial_segments,rings}. CylinderMesh: {top_radius,bottom_radius,height}. CapsuleMesh: {radius,height}. PlaneMesh: {size:{x,y}}. PrismMesh: {left_to…
mesh_typestringyesMesh class: "BoxMesh", "SphereMesh", "CylinderMesh", "CapsuleMesh", "PlaneMesh", "PrismMesh", "TorusMesh", "QuadMesh", "TextMesh", or "file" to load from a resource path
node_pathstringPath to the MeshInstance3D node within the scene
scene_pathstringyesPath to the .tscn scene file

No output schema declared.

No examples provided.

set_node_groups ~124

Set, add, or remove a node's group memberships in a .tscn scene file. Groups persist to disk so the running game can call get_tree().get_nodes_in_group(name).

NameTypeReqDescription
groupsarrayyesList of group names to apply
modestringreplace (default): node ends up in EXACTLY the listed groups. add: union with existing. remove: drop the listed groups.
node_pathstringPath to the node (. for root)
scene_pathstringyesPath to the .tscn scene file

No output schema declared.

No examples provided.

set_node_properties ~151

Set MULTIPLE properties on a node in a single tool call. Non-atomic: each property is applied independently; the response separates "applied" from "failed" so partial success surfaces clearly. Saves the scene once at the end. Resource-typed properties must use set_resource_property / set_sprite_texture / etc.

NameTypeReqDescription
node_pathstringPath to the node (. for root, or relative path)
propertiesobjectyesMap of property_name -> value. Each value follows the same form as modify_node_property.value (primitives, arrays, or {type:"Vector3",...} discriminated objects).
scene_pathstringyesPath to the .tscn scene file

No output schema declared.

No examples provided.

set_resource_property ~200

Modify a property on a Resource that is currently held by a node (or by another resource attached to that node). Use this to tweak shape radii, material colors, gradient stops, etc., WITHOUT recreating the resource. resource_path walks from the node down to the resource using "/"-separated property names, e.g. "shape", "material", or "material/next_pass". After the change, saves the scene.

NameTypeReqDescription
node_pathstringPath to the node owning the resource
property_namestringyesProperty on the target resource to set (e.g. "radius", "albedo_color")
resource_pathstringyesPath from node to the target resource via property names. Examples: "shape", "material", "material/next_pass"
scene_pathstringyesPath to the .tscn scene file
valueyesNew value (same shape as modify_node_property.value)

No output schema declared.

No examples provided.

set_sprite_texture ~322

Assign a texture resource to a Sprite2D / Sprite3D / TextureRect node in a .tscn scene file. Modes: • FromPath — load any texture file from disk (png/jpg/webp/svg/.tres) via load(). Returns whatever Texture2D the importer produced (usually CompressedTexture2D). Most common after generate_2d_asset. • ImageTexture (DEPRECATED ALIAS for FromPath, kept for back-compat) • NewImageTexture — force-create an ImageTexture (in-memory) from a raw image file. • PlaceholderTexture2D — in-scene placeholder of a given size. • GradientTexture2D / NoiseTexture2D — procedural textures. Response always includes texture_class (the actual Godot class the texture decoded to), width, height, and texture_path so the agent can confirm what landed without an extra get_resource_info call.

NameTypeReqDescription
node_pathstringPath to the Sprite2D/Sprite3D/TextureRect node
scene_pathstringyesPath to the .tscn scene file
texture_paramsobjectTexture parameters. FromPath / ImageTexture / NewImageTexture: {path: "res://assets/sprite.png"}. PlaceholderTexture2D: {size: {x: 64, y: 64}}. GradientTexture2D / NoiseTexture2D: {width, height}.
texture_typestringyesHow to obtain the texture. Prefer FromPath for assets on disk.

No output schema declared.

No examples provided.

setup_autoload ~103

Register, unregister, or list autoload singletons. Autoloads are scripts/scenes loaded automatically at project start.

NameTypeReqDescription
namestringAutoload name (e.g., "GameManager", "AudioManager")
operationstringyes"add" to register, "remove" to unregister, "list" to show all autoloads
pathstringres:// path to the script or scene file (required for "add")

No output schema declared.

No examples provided.

snap_node_to_grid ~153

Snap a Node3D position to a grid in local or global space. Useful for modular level building and keeping 3D scenes aligned.

NameTypeReqDescription
axesarrayAxes to snap. Any of: ["x"], ["x","z"], ["x","y","z"] (default: all axes)
grid_sizeyesPositive grid size. Use a number for uniform snapping or {x,y,z} for per-axis snapping.
node_pathstringPath to the Node3D to snap
scene_pathstringyesPath to the .tscn scene file
spacestringCoordinate space: "local" or "global" (default: "global")

No output schema declared.

No examples provided.

stop_scene ~33

Stop the currently running scene in the Godot editor. Always stop the scene before editing code to avoid errors repeating every frame.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

take_screenshot ~152

Capture the current viewport of the running game and save it as a PNG. REQUIRES the game to be running with the MCPRuntime autoload connected (run_scene with wait_for_runtime=true first). Returns resource_path, absolute_path, width, height, and (optionally) base64_png. Default save location is res://addons/godot_mcp/cache/screenshots/.

NameTypeReqDescription
return_base64booleanAlso include the PNG bytes inline as base64 (default: false). Useful when the agent has no filesystem access.
save_tostringOptional res:// or user:// destination path. Defaults to res://addons/godot_mcp/cache/screenshots/screenshot_<ms>.png

No output schema declared.

No examples provided.

update_project_settings ~122

Update one or more Godot project settings. Pass a dictionary of setting paths to their new values. Use list_settings first to discover available setting paths, current values, and valid options for a category. For input action bindings, prefer configure_input_map — if you do pass input/* keys here, partial updates are merged safely (existing events are preserved).

NameTypeReqDescription
settingsobjectyesDictionary of setting paths to new values (e.g., {"display/window/size/viewport_width": 1920, "display/window/size/viewport_height": 1080})

No output schema declared.

No examples provided.

validate_script ~64

Validate a GDScript file for syntax errors using Godot's built-in parser. Call after creating or modifying scripts to ensure they are error-free.

NameTypeReqDescription
pathstringyesPath to the GDScript file to validate (e.g., res://scripts/player.gd)

No output schema declared.

No examples provided.

wait ~87

Sleep server-side. Useful between input events to let the game process them. Capped at 30000ms / 30s. Pass either ms or seconds (ms wins if both given).

NameTypeReqDescription
msnumberMilliseconds to wait (1..30000).
secondsnumberSeconds to wait (0.001..30). Convenient when the agent is thinking in seconds.

No output schema declared.

No examples provided.