Server data from the Official MCP Registry
The most complete Godot 4 MCP: secure sandbox, 40+ tools (projects–runtime), major MCP clients.
The most complete Godot 4 MCP: secure sandbox, 40+ tools (projects–runtime), major MCP clients.
Valid MCP server (0 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
4 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-sterion66-godot": {
"args": [
"godot-mcp-server"
],
"command": "uvx"
}
}
}From the project's GitHub README.
A comprehensive FastMCP server for Godot 4.x game development. Provides tooling for AI-assisted workflows: project management, file operations, asset discovery, GDScript development, and optional Godot execution.
Security model: All Godot projects, file writes, and Asset Library downloads are restricted to a single workspace directory on your machine (default ~/godot-games). The server refuses paths outside that tree. See Workspace setup.
Code execution: godot_run_game and godot_execute_script require GODOT_MCP_ALLOW_GODOT_EXEC in the server environment. The shipped MCP JSON configs set it to 1 so these tools work after copy-paste. Running python godot_mcp_server.py without that env still leaves execution off until you export it. To lock down an IDE install, remove the variable or set it to 0. See Godot execution (environment).
HTTP transport: Binding to 0.0.0.0 or :: exposes the MCP server on all network interfaces; prefer 127.0.0.1 unless you use a firewall or VPN.
Symlinks: GODOT_MCP_ROOT is resolved with symlinks followed; point it at a real directory you control.
project.godot); list all projects under the workspace (godot_list_projects)godot_create_project).tscn), scripts (.gd), resources (.tres)# From PyPI-style editable install (recommended for contributors)
pip install -e .
# Or minimal deps only
pip install -r requirements.txt
Console entry point (after pip install -e .): godot-mcp-server (same as python godot_mcp_server.py).
The MCP server only operates on Godot projects that live under one root folder. This keeps assistants from reading or writing arbitrary paths on your system.
Create the default folder (once per machine):
mkdir -p ~/godot-games
Put every Godot game there — each game is its own subdirectory containing project.godot, for example:
~/godot-games/
my-platformer/ ← open this folder in your editor
project.godot
...
another-game/
project.godot
Open your IDE workspace inside ~/godot-games/.../your-game (or a parent folder under ~/godot-games) so the MCP process can discover project.godot from the current working directory.
Custom location: Set an absolute path before starting the server:
export GODOT_MCP_ROOT="/path/to/your/godot-games"
python godot_mcp_server.py
In Cursor / Claude / other MCP configs, add env:
"env": {
"GODOT_MCP_ROOT": "/path/to/your/godot-games"
}
If unset, the default is $HOME/godot-games. The server creates that directory on startup if it does not exist.
Inspect at runtime: call the tool godot_get_workspace or read the resource project://workspace to see the active workspace path.
If tools report that no project was found, your cwd is probably outside the workspace, or project_path points outside GODOT_MCP_ROOT.
Running the game or executing GDScript runs code as your user (same as starting Godot from a terminal). The server only enables godot_run_game / godot_execute_script when GODOT_MCP_ALLOW_GODOT_EXEC is set to an accepted “on” value.
Shipped configs (default yes): every example JSON in this repo (mcp_config.json, mcp_config.cursor.json, etc.) includes:
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
}
So if you copy one of those into your IDE, execution is allowed without extra steps. Merge other keys (e.g. GODOT_MCP_ROOT) into the same env object.
CLI without MCP config: running python godot_mcp_server.py does not set this variable; execution tools stay blocked until you export GODOT_MCP_ALLOW_GODOT_EXEC=1 (or use a wrapper script).
Stricter setups: delete GODOT_MCP_ALLOW_GODOT_EXEC from env, or set it to 0 / false / no / off, then restart the MCP client.
Accepted “on” values: 1, true, yes, on (case-insensitive). Call godot_get_workspace and check godot_exec_allowed to confirm.
python godot_mcp_server.py
python godot_mcp_server.py --transport http --port 8765
Set GODOT_MCP_ROOT in the MCP server env if you do not use the default ~/godot-games. See Workspace setup. Shipped snippets below include GODOT_MCP_ALLOW_GODOT_EXEC; see Godot execution (environment).
Path to the server: Examples use "args": ["godot_mcp_server.py"] assuming the MCP process runs with its working directory at the folder that contains the script (e.g. you cloned this repo). If the server fails to start, replace that with the absolute path to godot_mcp_server.py on your machine.
Expand a section and paste the JSON into the file your tool expects. The same godot server block is in the repo as mcp_config.*.json for copy-paste.
macOS / Linux (project or user config) — Settings → MCP → Add new global MCP server or create .cursor/mcp.json in a project root:
{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
}
}
}
}
Windows — if python is not on PATH for the MCP host, use the launcher or full path to python.exe, and prefer an absolute path in args:
{
"mcpServers": {
"godot": {
"command": "cmd",
"args": ["/c", "python", "C:\\path\\to\\godot-mcp-server\\godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
}
}
}
}
Merge GODOT_MCP_ROOT into env if you do not use ~/godot-games (see Workspace setup).
Use the MCP / agent settings your VS Code build provides (often Settings → MCP or a project .vscode/mcp.json, depending on version and extensions). Paste the same structure as Cursor:
{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
}
}
}
}
Use an absolute path in args if the workspace folder is not the repo root.
Edit the app config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["/absolute/path/to/godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
}
}
}
}
Restart Claude Desktop after saving.
Merge into ~/.claude/settings.json (or use claude mcp add if your CLI supports it — check claude mcp --help):
{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
},
"description": "Godot 4.x game development server"
}
}
}
macOS / Linux: edit ~/.codeium/windsurf/mcp_config.json, or use CMD+SHIFT+P → “Windsurf: Configure MCP Servers”.
{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
},
"description": "Godot 4.x game development - project, scenes, scripts, assets, runtime"
}
}
}
Paste into Roo’s MCP settings (project or global), same JSON shape as above. Repo copy: roo_code_mcp.json.
{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
},
"description": "Godot 4.x game dev - project, scenes, scripts, assets, runtime"
}
}
}
Minimal stdio config — same as mcp_config.json in this repo:
{
"mcpServers": {
"godot": {
"command": "python3",
"args": ["godot_mcp_server.py"],
"env": {
"GODOT_MCP_ALLOW_GODOT_EXEC": "1"
},
"description": "Godot 4.x game development server - file ops, asset management, runtime integration"
}
}
}
godot_search_content): Pattern length capped; match list capped; files larger than 2 MiB are skipped. Malicious regex can still be expensive—keep patterns simple.godot_mcp_server.py).asset_id for godot_get_asset_info / godot_download_asset must be numeric digits only.Use loopback unless you know what you are doing:
python godot_mcp_server.py --transport http --host 127.0.0.1 --port 8765
Binding to all interfaces (--host 0.0.0.0) logs a warning and exposes MCP to your LAN with no authentication in this server.
Then use serverUrl instead of command:
{
"mcpServers": {
"godot": {
"serverUrl": "http://localhost:8765/mcp"
}
}
}
Only run one transport to the same project (stdio or HTTP), not both at once, to avoid conflicting MCP sessions.
40 MCP tools are registered in godot_mcp_server.py (search for @mcp.tool). Summary:
| Tool | Description |
|---|---|
godot_get_workspace | Show MCP sandbox directory (GODOT_MCP_ROOT) |
godot_find_project | Locate project root (walk-up or workspace scan) |
godot_list_projects | List every project.godot under the workspace |
godot_create_project | Create project.godot + starter scene under the workspace |
godot_get_project_info | Get project details |
godot_get_project_settings | Parse project.godot (includes editor_plugins_enabled read-only) |
godot_get_project_files | List all project files |
godot_refresh_project | Rescan scenes/scripts/resources counts |
godot_list_scenes | List .tscn files |
godot_list_scripts | List .gd files |
godot_list_resources | List .tres files |
godot_list_autoload | List autoload singletons |
godot_list_editor_plugins | Installed addons vs enabled in project.godot (enable plugins in the Godot editor) |
godot_find_assets | Find by extension |
godot_find_unused_files | Find unreferenced assets |
godot_find_by_pattern | Glob pattern search |
godot_search_content | Regex search in files |
godot_create_script | Create new GDScript |
godot_create_scene | Create new scene |
godot_create_resource | Create new resource |
godot_create_code_template | Template scripts |
godot_read_scene | Parse scene file |
godot_read_script | Parse GDScript |
godot_validate_scene | Validate scene |
godot_validate_script | Validate syntax |
godot_edit_file | Replace content |
godot_write_file | Write file |
godot_get_file_info | File metadata |
godot_find_godot_executable | Locate Godot |
godot_check_version | Godot version |
godot_run_game | Run headless |
godot_execute_script | Run GDScript |
godot_get_log | Read logs |
godot_watch_files | Configure watcher |
godot_get_node_info | Node type hints |
godot_generate_uid | Generate UID |
godot_search_assetlib | Search Asset Library |
godot_get_asset_info | Asset details |
godot_download_asset | Download / extract asset (promotes nested addons/) |
godot_browse_github | Search GitHub |
Editor plugins: this server does not write [editor_plugins] in project.godot (avoids conflicting with an open editor). Install addons via tools above; the user enables plugins in Project Settings → Plugins in Godot; use godot_list_editor_plugins to verify.
| Resource | URI | Description |
|---|---|---|
| Project Info | project://info | Basic project info |
| Project Overview | project://overview | File counts |
| Workspace | project://workspace | MCP sandbox path (GODOT_MCP_ROOT) |
| Runtime | project://runtime | Godot version + workspace path |
# Using template
create_code_template("character_body_2d", "Player")
# All PNG files
find_assets([".png", ".jpg"])
# Unused assets
find_unused_files()
search_assetlib("platformer")
# => [{title: "PlatformerController2D", ...}]
get_asset_info("1062")
# => {title, author, description, license, download_url}
Requires GODOT_MCP_ALLOW_GODOT_EXEC (included in the shipped MCP JSON configs).
run_game(headless=True, quit_after_seconds=30)
fastmcp, urllib3 (see pyproject.toml)pip install -e ".[dev]"
ruff check godot_mcp_server.py tests
pytest
Continuous integration runs on Python 3.10–3.14 (see .github/workflows/ci.yml). Dependabot opens weekly PRs for pip and GitHub Actions.
Optional: pip install pre-commit && pre-commit install uses .pre-commit-config.yaml.
godot-mcp-server.cd /path/to/godot-mcp-server
git remote add origin https://github.com/YOUR_USER/godot-mcp-server.git
git push -u origin main
Or with GitHub CLI: gh repo create godot-mcp-server --public --source=. --remote=origin --push
After the first push, CI runs on every push and PR. Replace sterion66 in the README badge URLs if you use a different account or organization.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.