@keeveeg/godot-mcp
npm
v1.1.0-a
Published by @keeveeg — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.
MCP server for Godot Engine — 300+ AI-powered tools for game development
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 7 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
| −1 | publisher verification (public source) — no provenance, but the source is public and inspectable |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
Tool "find_script_references" appears to run shell commands or evaluate code (parameter "script"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.
Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.
Location: tool find_script_references
Tool "set_breakpoint" appears to run shell commands or evaluate code (parameter "script"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.
Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.
Location: tool set_breakpoint
Tool "remove_breakpoint" appears to run shell commands or evaluate code (parameter "script"). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.
Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.
Location: tool remove_breakpoint
In the server's implementation (`server/dist/tools/testing.js:45`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: .describe('Node type to spawn (default: Node2D)'), count: z.number().int().min(0, 'Count must be non-negativ
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server server/dist/tools/testing.js
Tool "find_script_references" takes a command-shaped parameter "script_path" with no enum/pattern constraint. Free-form, model- or attacker-controlled arguments reaching a shell is the command-injection precondition.
Fix: Constrain the parameter (enum/pattern), or build the command from a fixed template with escaped args.
Location: tool find_script_references · inputSchema.properties.script_path
Tool "set_breakpoint" takes a command-shaped parameter "script_path" with no enum/pattern constraint. Free-form, model- or attacker-controlled arguments reaching a shell is the command-injection precondition.
Fix: Constrain the parameter (enum/pattern), or build the command from a fixed template with escaped args.
Location: tool set_breakpoint · inputSchema.properties.script_path
Tool "remove_breakpoint" takes a command-shaped parameter "script_path" with no enum/pattern constraint. Free-form, model- or attacker-controlled arguments reaching a shell is the command-injection precondition.
Fix: Constrain the parameter (enum/pattern), or build the command from a fixed template with escaped args.
Location: tool remove_breakpoint · inputSchema.properties.script_path
Tool "find_script_references" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool find_script_references
Tool "set_breakpoint" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool set_breakpoint
Tool "remove_breakpoint" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool remove_breakpoint
Each tool and what it can reach — statically extracted from the published source.
find_script_referencesruns code / shellremove_breakpointruns code / shellset_breakpointruns code / shelladd_animation_trackno sensitive capabilityadd_audio_busno sensitive capabilityadd_audio_bus_configno sensitive capabilityadd_audio_bus_effectno sensitive capabilityadd_audio_playerno sensitive capabilityadd_nodeno sensitive capabilityadd_raycastno sensitive capabilityadd_resourceno sensitive capabilityadd_state_machine_stateno sensitive capabilityadd_state_machine_transitionno sensitive capabilityanalyze_scene_complexityno sensitive capabilityanalyze_signal_flowno sensitive capabilityapply_particle_presetno sensitive capabilityassert_game_stateno sensitive capabilitybake_navigation_meshno sensitive capabilitybatch_get_propertyno sensitive capabilitybatch_set_propertyno sensitive capabilityclear_editor_logno sensitive capabilityclear_editor_selectionno sensitive capabilityclear_outputno sensitive capabilityconfigure_addonno sensitive capabilityconnect_signalno sensitive capabilitycontinue_executionno sensitive capabilitycreate_animationno sensitive capabilitycreate_animation_treeno sensitive capabilitycreate_export_presetno sensitive capabilitycreate_particlesno sensitive capabilitycreate_platform_export_presetno sensitive capabilitycreate_test_characterno sensitive capabilitycross_scene_get_propertyno sensitive capabilitycross_scene_set_propertyno sensitive capabilitydelete_editor_layoutno sensitive capabilitydelete_export_presetno sensitive capabilitydelete_nodeno sensitive capabilitydelete_particlesno sensitive capabilitydelete_test_characterno sensitive capabilitydetect_circular_dependenciesno sensitive capabilitydisconnect_signalno sensitive capabilityduplicate_nodeno sensitive capabilityevaluate_expressionno sensitive capabilityexecute_editor_scriptno sensitive capabilityexport_for_platformno sensitive capabilityexport_projectno sensitive capabilityfind_memory_leaksno sensitive capabilityfind_navigation_pathno sensitive capabilityfind_node_referencesno sensitive capabilityfind_nodes_by_typeno sensitive capabilityfind_nodes_in_groupno sensitive capabilityfind_signal_connectionsno sensitive capabilityfind_unused_resourcesno sensitive capabilityforce_garbage_collectionno sensitive capabilityget_addon_configno sensitive capabilityget_animation_infono sensitive capabilityget_animation_tree_structureno sensitive capabilityget_audio_bus_effectsno sensitive capabilityget_audio_bus_layoutno sensitive capabilityget_audio_infono sensitive capabilityget_audio_settingsno sensitive capabilityget_available_node_typesno sensitive capabilityget_build_commandno sensitive capabilityget_build_settingsno sensitive capabilityget_call_stackno sensitive capabilityget_class_hierarchyno sensitive capabilityget_collision_infono sensitive capabilityget_collision_layersno sensitive capabilityget_debug_settingsno sensitive capabilityget_diagnosticsno sensitive capabilityget_editor_errorsno sensitive capabilityget_editor_logno sensitive capabilityget_editor_screenshotno sensitive capabilityget_editor_selectionno sensitive capabilityget_editor_settingsno sensitive capabilityget_export_infono sensitive capabilityget_export_templatesno sensitive capabilityget_game_screenshotno sensitive capabilityget_input_actionsno sensitive capabilityget_memory_usageno sensitive capabilityget_navigation_infono sensitive capabilityget_node_constantsno sensitive capabilityget_node_default_propertiesno sensitive capabilityget_node_enumsno sensitive capabilityget_node_groupsno sensitive capabilityget_node_methodsno sensitive capabilityget_node_propertiesno sensitive capabilityget_node_signalsno sensitive capabilityget_object_countno sensitive capabilityget_output_logno sensitive capabilityget_particle_color_gradientno sensitive capabilityget_particle_emission_shapeno sensitive capabilityget_particle_infono sensitive capabilityget_particle_materialno sensitive capabilityget_particle_velocity_curveno sensitive capabilityget_physics_bodyno sensitive capabilityget_physics_layersno sensitive capabilityget_physics_materialno sensitive capabilityget_physics_settingsno sensitive capabilityget_platform_export_templatesno sensitive capabilityget_platform_settingsno sensitive capabilityget_project_statisticsno sensitive capabilityget_scene_dependenciesno sensitive capabilityget_signalsno sensitive capabilityget_tree_parameterno sensitive capabilityinstall_addonno sensitive capabilitylist_addonsno sensitive capabilitylist_animationsno sensitive capabilitylist_breakpointsno sensitive capabilitylist_export_presetsno sensitive capabilityload_editor_layoutno sensitive capabilitymove_nodeno sensitive capabilitynavigate_characterno sensitive capabilityrecord_gameplayno sensitive capabilityreload_pluginno sensitive capabilityreload_projectno sensitive capabilityremove_animationno sensitive capabilityremove_animation_keyframeno sensitive capabilityremove_animation_trackno sensitive capabilityremove_animation_treeno sensitive capabilityremove_audio_busno sensitive capabilityremove_audio_bus_by_nameno sensitive capabilityremove_audio_bus_effectno sensitive capabilityremove_audio_playerno sensitive capabilityremove_collisionno sensitive capabilityremove_input_actionno sensitive capabilityremove_navigation_agentno sensitive capabilityremove_navigation_linkno sensitive capabilityremove_navigation_regionno sensitive capabilityremove_raycastno sensitive capabilityremove_resourceno sensitive capabilityremove_state_machine_stateno sensitive capabilityremove_state_machine_transitionno sensitive capabilityrename_nodeno sensitive capabilityreplay_gameplayno sensitive capabilityreset_editor_layoutno sensitive capabilityreset_tree_parameterno sensitive capabilityrun_exported_buildno sensitive capabilitysave_editor_layoutno sensitive capabilityselect_nodesno sensitive capabilityset_anchor_presetno sensitive capabilityset_animation_keyframeno sensitive capabilityset_audio_busno sensitive capabilityset_audio_bus_layoutno sensitive capabilityset_audio_bus_volumeno sensitive capabilityset_audio_driverno sensitive capabilityset_audio_mix_rateno sensitive capabilityset_audio_output_latencyno sensitive capabilityset_build_configurationno sensitive capabilityset_collision_layer_nameno sensitive capabilityset_custom_featuresno sensitive capabilityset_debug_optionsno sensitive capabilityset_default_gravityno sensitive capabilityset_default_linear_dampno sensitive capabilityset_editor_scaleno sensitive capabilityset_editor_themeno sensitive capabilityset_error_handlingno sensitive capabilityset_export_filterno sensitive capabilityset_font_sizeno sensitive capabilityset_gravityno sensitive capabilityset_input_actionno sensitive capabilityset_main_screen_tabno sensitive capabilityset_navigation_layersno sensitive capabilityset_node_groupsno sensitive capabilityset_node_presetno sensitive capabilityset_particle_color_gradientno sensitive capabilityset_particle_emission_shapeno sensitive capabilityset_particle_materialno sensitive capabilityset_particle_velocity_curveno sensitive capabilityset_physics_engineno sensitive capabilityset_physics_fpsno sensitive capabilityset_physics_layersno sensitive capabilityset_physics_materialno sensitive capabilityset_profiler_settingsno sensitive capabilityset_remote_debugno sensitive capabilityset_scripting_backendno sensitive capabilityset_tree_parameterno sensitive capabilitysetup_collisionno sensitive capabilitysetup_navigation_agentno sensitive capabilitysetup_navigation_linkno sensitive capabilitysetup_navigation_regionno sensitive capabilitysetup_physics_bodyno sensitive capabilitysimulate_actionno sensitive capabilitysimulate_gameplay_scenariono sensitive capabilitysimulate_keyno sensitive capabilitysimulate_mouse_clickno sensitive capabilitysimulate_mouse_moveno sensitive capabilitysimulate_sequenceno sensitive capabilitystep_intono sensitive capabilitystep_overno sensitive capabilitystop_object_trackingno sensitive capabilitytrack_object_creationno sensitive capabilityuninstall_addonno sensitive capabilityupdate_addonno sensitive capabilityupdate_propertyno sensitive capabilityvalidate_build_settingsno sensitive capabilityvalidate_exportno sensitive capabilityvalidate_export_for_platformno sensitive capabilityvalidate_platform_exportno sensitive capabilitywait_for_game_eventno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v1.1.0-a latest |
A 93/100 | 10 | 1.13.0 | 2026-09-07 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan @keeveeg/godot-mcp --online
Independent packages implementing the same tool, scanned with the same engine. Compare all 17 side by side →
MCP server that connects AI coding assistants to the Godot 4.2+ editor (scenes, nodes, scripts, ClassDB, playtests) via the companion godot-mcp-toolkit plugin.
Model Context Protocol server for Godot 4.6.2+
MCP server for Godot 4 — docs lookup and project file analysis
MCP server that gives AI assistants eyes and hands in the Godot editor: scene editing, input injection, deterministic game-time control, and live runtime state for agent-driven playtesting
MCP server for Godot integration
Interfaces with the Godot game engine, with tools for launching the editor, running projects, and capturing debug output.
Uncensored AI tools (chat, image, RE/malware analysis, JS deobfuscation, multi-step research) for Claude Desktop, Cursor, Cline, Zed, and any MCP client.
儿童故事 MCP 服务 - 提供故事列表和搜索功能
Grade any bet against thousands of play-by-play game simulations: win probability, odds, edge.
World Cup MCP server for the 2026 men's football tournament — live scores, fixtures, standings, read-only prediction-market signals, and paste-ready match cards. Works with Claude Code, Cursor, Codex, Windsurf, Zed. Not affiliated with FIFA or Anthropic.
MCP server exposing a live Dwarf Fortress fort to an AI agent as curated, semantic tools
MCP Server for Arknights: Endfield (TypeScript / stdio + Streamable HTTP)