MCP server by lifeiscontent
Godot MCP Server
This addon implements a Model Context Protocol (MCP) server directly in the Godot Engine using GDScript.
It enables AI coding assistants (like Claude Desktop, GitHub Copilot, etc.) to connect to your running Godot editor instance to:
- Inspect the scene tree and node details
- Read, write, and manage scripts and resources
- Execute arbitrary GDScript code
- Manage nodes (create, delete, reparent, instantiate)
- Control the editor (play/stop project, open scenes)
- View and modify project settings
Installation
- Copy the
addons/godot_mcpfolder into your project'saddons/directory. - Open Project > Project Settings > Plugins and enable "Godot MCP".
Usage
Once enabled, a new "MCP" panel will appear in the bottom dock of the Godot Editor.
- Port: Default is
6400. You can change this if needed. - Start Server: Click to start the MCP server.
- Auto-Start: Check this to automatically start the server when the project opens.
Connection Details
The server uses the Server-Sent Events (SSE) transport.
- SSE Endpoint:
http://127.0.0.1:6400/sse - Message Endpoint:
http://127.0.0.1:6400/message
Connecting an MCP Client
Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["path/to/sse-client-proxy.js", "http://127.0.0.1:6400/sse"]
}
}
}
Note: Since Claude Desktop currently supports Stdio transport primarily, you may need a proxy script to bridge Stdio to SSE.
Security Warning
⚠️ Localhost Only: The server binds to 127.0.0.1 by default. This is to prevent unauthorized access from other machines on your network, as the server allows arbitrary code execution. Do not expose this port to the public internet.
Features
Tools
The server exposes a comprehensive set of tools to the MCP client:
Scripting & Execution
execute_gdscript: Run arbitrary GDScript code.check_script_errors: Validate script syntax.attach_script: Attach a script to a node or scene.
Scene & Node Management
get_scene_tree: Dump the current scene hierarchy.find_nodes: Search for nodes by name or class.get_node_details: Inspect node properties.get_node_children: List children of a node.get_node_signals: List signals defined for a node.get_node_methods: List methods defined for a node.create_node: Create a new node.delete_node: Delete a node.reparent_node: Move a node to a new parent.instantiate_scene: Add a scene instance to the tree.save_scene: Save the current scene.open_scene: Open a scene file in the editor.
Node Interaction
set_node_property: Modify node properties.call_node_method: Call functions on nodes.connect_signal: Connect signals between nodes.
File System & Resources
list_directory: Browse files and directories.read_file: Read file contents.create_file/write_file: Create or overwrite files.delete_file: Delete files.rename_file: Rename or move files.replace_string_in_file: Perform surgical text edits.create_resource: Create new resource files (e.g., Resources, Materials).
Editor & Project
get_editor_selection: Get currently selected nodes.get_project_setting: Read project settings.set_project_setting: Write project settings.save_project_settings: Save changes toproject.godot.play_project: Play the project or a specific scene.stop_project: Stop the running project.
Development
This repository includes a project.godot file, so you can open the root folder directly in the Godot Editor to test and develop the addon.
Troubleshooting
- "Failed to start server": Check if the port (6400) is already in use.
- Connection Refused: Ensure the server is running (Green "Status: Running" in the MCP panel).