mcpField
G
godot

godot

ローカル
github.com/sterion66開発ツール228 週間前に更新

godot について

godotは、Godot 4.xでのゲーム開発を支援するMCPサーバーです。コーディングエージェント向けにプロジェクト、ファイル、アセット、GDScriptを扱い、操作範囲を指定ワークスペースに限定します。環境設定によりゲームやスクリプトの実行も可能です。

主な機能

  1. 01ワークスペース内のGodotプロジェクト管理
  2. 02シーン、スクリプト、リソースの読み書きと検証
  3. 03GDScriptとコードテンプレートの生成
  4. 04アセットの検索、確認、ダウンロード
  5. 05ゲーム実行とGDScriptの実行
  6. 06Godotのバージョンとログの確認

活用シーン

  1. 01プロジェクト設定やファイルの確認
  2. 02シーンやスクリプトの作成・編集
  3. 03未使用アセットの特定やファイル内容の検索
  4. 04実行を許可してゲームを動かしログを確認

MCP 対応

MCPサーバーとして、Godotのプロジェクト管理、ファイル、アセット、実行時操作のための40種類のツールとワークスペースリソースを公開します。stdioとHTTPに対応し、ファイル操作を設定済みワークスペース内に制限します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sterion66-godot": {
"command": "uvx",
"args": [
"godot-mcp-server"
]
}
}
}
起動コマンドuvx godot-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigodot-mcp-server1.0.2

ツール

40

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
pathanyいいえ上方向に検索する際の開始パス(省略時は MCP ワークスペースのルート)。 最初に上方向への検索を試し、失敗した場合はワークスペース内をスキャンして project.godot を探します。

詳細

Godot MCP Server

CI Python 3.10+ License: MIT

Godot 4.x のゲーム開発向けの包括的な FastMCP サーバーです。AI 支援ワークフロー向けのツールを提供します。プロジェクト管理、ファイル操作、アセットの検索、GDScript 開発、オプションの Godot 実行に対応しています。

コントリビューション · セキュリティ

セキュリティモデル: Godot プロジェクト、ファイルへの書き込み、Asset Library からのダウンロードはすべて、お使いのマシン上の単一の ワークスペースディレクトリ(デフォルトは ~/godot-games)に制限されます。サーバーはこのディレクトリツリー外のパスを拒否します。ワークスペースの設定を参照してください。

コード実行: godot_run_game と godot_execute_script を使用するには、サーバー環境で GODOT_MCP_ALLOW_GODOT_EXEC を設定する必要があります。付属の MCP JSON 設定では、コピーして貼り付けた後にこれらのツールを使えるよう、値に 1 を設定しています。python godot_mcp_server.py を、この環境変数を設定せずに実行した場合、環境変数をエクスポートするまでコード実行は無効のままです。IDE へのインストールを制限するには、この変数を削除するか、0 に設定してください。Godot の実行(環境変数)を参照してください。

HTTP トランスポート: 0.0.0.0 または :: にバインドすると、すべてのネットワークインターフェースで MCP サーバーが公開されます。ファイアウォールまたは VPN を使用しない場合は、127.0.0.1 を推奨します。

シンボリックリンク: GODOT_MCP_ROOT はシンボリックリンクをたどって解決されます。自身が管理する実際のディレクトリを指定してください。

機能

プロジェクト管理
  • Godot プロジェクト(project.godot)を自動検出し、ワークスペース内のすべてのプロジェクトを一覧表示します(godot_list_projects)
  • ワークスペース内に新しいプロジェクトを作成します(godot_create_project)
  • プロジェクト設定と構成を解析し、オートロードとエディタープラグインの状態を一覧表示します(プラグインは読み取り専用)
  • 変更後にプロジェクトキャッシュを更新します
ファイル操作
  • シーン(.tscn)、スクリプト(.gd)、リソース(.tres)の読み書き
  • テンプレートから新しいスクリプト、シーン、リソースを作成
  • 内容を置き換えて既存のファイルを編集
  • シーンとスクリプトの構文を検証
コード生成
  • CharacterBody2D/3D の移動コントローラー
  • ステートマシンのパターン
  • カスタムリソース
  • シグナルとエクスポートを備えたノードスクリプト
アセット管理
  • 拡張子、パターン、glob によるアセットの検索
  • 未使用のアセットを検索
  • 正規表現でファイルの内容を検索
  • Godot Asset Library から検索してダウンロード
  • GitHub で Godot リポジトリを閲覧
ランタイム連携
  • Godot 実行ファイルを検索
  • Godot のバージョンを確認
  • ヘッドレスでゲームを実行
  • GDScript コードを実行
  • Godot のログを読み取り
  • ファイル監視の設定

インストール

# From PyPI-style editable install (recommended for contributors)
pip install -e .

# Or minimal deps only
pip install -r requirements.txt

コンソールエントリーポイント(pip install -e . の後):godot-mcp-server(python godot_mcp_server.py と同じです)。

ワークスペースのセットアップ(必須)

MCP サーバーは、1 つのルートフォルダー内にある Godot プロジェクトのみを操作します。これにより、アシスタントがシステム上の任意のパスを読み書きするのを防ぎます。

  1. 既定のフォルダーを作成します(マシンごとに 1 回):

    mkdir -p ~/godot-games
    
  2. すべての Godot ゲームをその中に配置します — 各ゲームは project.godot を含む独自のサブディレクトリに配置します。例:

    ~/godot-games/
      my-platformer/     ← open this folder in your editor
        project.godot
        ...
      another-game/
        project.godot
    
  3. MCP プロセスが現在の作業ディレクトリから project.godot を検出できるよう、IDE ワークスペースを ~/godot-games/.../your-game(または ~/godot-games 配下の親フォルダー)内で開きます。

  4. カスタムの場所: サーバーを起動する前に、絶対パスを設定します。

    export GODOT_MCP_ROOT="/path/to/your/godot-games"
    python godot_mcp_server.py
    

    Cursor/Claude/その他の MCP 設定で、env を追加します。

    "env": {
      "GODOT_MCP_ROOT": "/path/to/your/godot-games"
    }
    

    設定されていない場合、既定値は $HOME/godot-games です。サーバーは起動時に、そのディレクトリが存在しなければ作成します。

  5. 実行時に確認: godot_get_workspace ツールを呼び出すか、project://workspace リソースを読み取り、アクティブなワークスペースのパスを確認します。

ツールがプロジェクトが見つからないと報告する場合、cwd がワークスペースの外にあるか、project_path が GODOT_MCP_ROOT の外を指している可能性があります。

Godot の実行(環境)

ゲームの実行や GDScript の実行は、ユーザー権限でコードを実行します(ターミナルから Godot を起動する場合と同じです)。サーバーは、GODOT_MCP_ALLOW_GODOT_EXEC が許可された「オン」の値に設定されている場合にのみ、godot_run_game/godot_execute_script を有効にします。

同梱の設定(既定で許可): このリポジトリ内のすべてのサンプル JSON(mcp_config.json、mcp_config.cursor.json など)には、次の設定が含まれています。

"env": {
  "GODOT_MCP_ALLOW_GODOT_EXEC": "1"
}

そのため、これらの設定を IDE にコピーすれば、追加の手順なしで実行が許可されます。他のキー(例:GODOT_MCP_ROOT)は、同じ env オブジェクトに統合してください。

MCP 設定を使わない CLI: python godot_mcp_server.py を実行しても、この変数は設定されません。export GODOT_MCP_ALLOW_GODOT_EXEC=1 を実行するか、ラッパースクリプトを使うまで、実行ツールはブロックされたままです。

より厳格な設定: env から GODOT_MCP_ALLOW_GODOT_EXEC を削除するか、0/false/no/off に設定してから、MCP クライアントを再起動します。

許可される「オン」の値:1、true、yes、on(大文字と小文字は区別されません)。godot_get_workspace を呼び出し、godot_exec_allowed を確認してください。

使い方

CLI(stdio - Claude Code/Cursor 用)
python godot_mcp_server.py
HTTP サーバー
python godot_mcp_server.py --transport http --port 8765

設定

既定の ~/godot-games を使用しない場合は、MCP サーバーの env に GODOT_MCP_ROOT を設定します。ワークスペースのセットアップを参照してください。以下の同梱スニペットには GODOT_MCP_ALLOW_GODOT_EXEC が含まれています。Godot の実行(環境)を参照してください。

サーバーへのパス: 例では、MCP プロセスの作業ディレクトリがスクリプトを含むフォルダー(例:このリポジトリをクローンしたフォルダー)であることを前提に、"args": ["godot_mcp_server.py"] を使用しています。サーバーの起動に失敗する場合は、godot_mcp_server.py の絶対パスを指定してください。

エディターにインストールする

セクションを展開し、JSON をツールが指定するファイルに貼り付けます。同じ godot サーバーブロックがリポジトリ内の mcp_config.*.json にあり、コピーして貼り付けられます。

Cursor

macOS / Linux(プロジェクトまたはユーザー設定) — 「Settings → MCP」→ Add new global MCP server を選択するか、プロジェクトのルートに .cursor/mcp.json を作成します。

{
  "mcpServers": {
    "godot": {
      "command": "python3",
      "args": ["godot_mcp_server.py"],
      "env": {
        "GODOT_MCP_ALLOW_GODOT_EXEC": "1"
      }
    }
  }
}

Windows — MCP ホストで python が PATH にない場合は、ランチャーまたは python.exe のフルパスを使用し、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"
      }
    }
  }
}

~/godot-games を使用しない場合は、GODOT_MCP_ROOT を env に追加してください(ワークスペースの設定を参照)。

Visual Studio Code

お使いの VS Code ビルドで利用できる MCP/エージェント設定を使用します(バージョンや拡張機能によって異なりますが、多くの場合は Settings → MCP またはプロジェクトの .vscode/mcp.json です)。Cursor と同じ構造を貼り付けます。

{
  "mcpServers": {
    "godot": {
      "command": "python3",
      "args": ["godot_mcp_server.py"],
      "env": {
        "GODOT_MCP_ALLOW_GODOT_EXEC": "1"
      }
    }
  }
}

ワークスペースフォルダーがリポジトリのルートでない場合は、args に絶対パスを指定します。

Claude Desktop

アプリの設定ファイルを編集します。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %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"
      }
    }
  }
}

保存後、Claude Desktop を再起動します。

Claude Code(CLI)

~/.claude/settings.json にマージします(または、CLI が対応している場合は claude mcp add を使用します。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"
    }
  }
}
Windsurf(Codeium)

macOS / Linux: ~/.codeium/windsurf/mcp_config.json を編集するか、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"
    }
  }
}
Roo Code

上記と同じ JSON 形式で、Roo の MCP 設定(プロジェクトまたはグローバル)に貼り付けます。リポジトリ内のファイルは 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"
    }
  }
}
Generic JSON(任意の MCP ホスト)

最小限の stdio 設定です。このリポジトリの mcp_config.json と同じです。

{
  "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"
    }
  }
}
制限事項(DoS/不正利用)
  • 正規表現検索(godot_search_content): パターンの長さと検索結果のリストには上限があります。2 MiB を超えるファイルはスキップされます。悪意のある正規表現は処理に時間がかかる可能性があるため、シンプルなパターンを使用してください。
  • アセットの ZIP ダウンロード: 展開前に、ダウンロードサイズ、ファイルごとの展開後サイズ、展開後の合計サイズ、ファイル数に上限が適用されます(godot_mcp_server.py の先頭付近にある定数を参照)。
  • Asset Library ID: godot_get_asset_info/godot_download_asset の asset_id は、数字のみである必要があります。
HTTP モード(リモート)

特に理由がない限り、ループバックを使用してください。

python godot_mcp_server.py --transport http --host 127.0.0.1 --port 8765

すべてのインターフェースにバインドすると(--host 0.0.0.0)、警告がログに記録され、このサーバーでは認証なしで MCP が LAN に公開されます。

次に、command の代わりに serverUrl を使用します。

{
  "mcpServers": {
    "godot": {
      "serverUrl": "http://localhost:8765/mcp"
    }
  }
}
HTTP と stdio を併用しない理由

同じプロジェクトに対して実行するトランスポートは、競合する MCP セッションを避けるため、stdio または HTTP のどちらか一方だけにしてください。同時に両方を実行しないでください。

## ツールのリファレンス

godot_mcp_server.py に 40 個の MCP ツールが登録されています(@mcp.tool を検索してください)。概要:

ツール説明
godot_get_workspaceMCP サンドボックスのディレクトリ(GODOT_MCP_ROOT)を表示
godot_find_projectプロジェクトのルートを検索(親ディレクトリをたどるか、ワークスペースをスキャン)
godot_list_projectsワークスペース内のすべての project.godot を一覧表示
godot_create_projectワークスペース内に project.godot とスターターシーンを作成
godot_get_project_infoプロジェクトの詳細を取得
godot_get_project_settingsproject.godot を解析(読み取り専用の editor_plugins_enabled を含む)
godot_get_project_filesすべてのプロジェクトファイルを一覧表示
godot_refresh_projectシーン/スクリプト/リソースの数を再スキャン
godot_list_scenes.tscn ファイルを一覧表示
godot_list_scripts.gd ファイルを一覧表示
godot_list_resources.tres ファイルを一覧表示
godot_list_autoload自動読み込みシングルトンを一覧表示
godot_list_editor_pluginsインストール済みアドオンと project.godot で有効なアドオンを表示(プラグインは Godot エディターで有効にします)
godot_find_assets拡張子で検索
godot_find_unused_files参照されていないアセットを検索
godot_find_by_patternGlob パターンで検索
godot_search_contentファイル内を正規表現で検索
godot_create_script新しい GDScript を作成
godot_create_scene新しいシーンを作成
godot_create_resource新しいリソースを作成
godot_create_code_templateスクリプトのテンプレート
godot_read_sceneシーンファイルを解析
godot_read_scriptGDScript を解析
godot_validate_sceneシーンを検証
godot_validate_script構文を検証
godot_edit_file内容を置換
godot_write_fileファイルを書き込む
godot_get_file_infoファイルのメタデータ
godot_find_godot_executableGodot の場所を検索
godot_check_versionGodot のバージョン
godot_run_gameヘッドレスで実行
godot_execute_scriptGDScript を実行
godot_get_logログを読み取る
godot_watch_filesファイル監視を設定
godot_get_node_infoノードの型ヒント
godot_generate_uidUID を生成
godot_search_assetlibAsset Library を検索
godot_get_asset_infoアセットの詳細
godot_download_assetアセットをダウンロード/展開(ネストされた addons/ を昇格)
godot_browse_githubGitHub を検索

エディタープラグイン: このサーバーは、開いているエディターとの競合を避けるため、project.godot の [editor_plugins] に書き込みません。上記のツールでアドオンをインストールし、Godot の Project Settings → Plugins でユーザーがプラグインを有効にします。有効化を確認するには godot_list_editor_plugins を使用してください。

リソース

リソースURI説明
プロジェクト情報project://infoプロジェクトの基本情報
プロジェクト概要project://overviewファイル数
ワークスペースproject://workspaceMCP サンドボックスのパス(GODOT_MCP_ROOT)
ランタイムproject://runtimeGodot のバージョンとワークスペースのパス

例

プラットフォーマーのプレイヤーを作成
# Using template
create_code_template("character_body_2d", "Player")
アセットを検索
# All PNG files
find_assets([".png", ".jpg"])

# Unused assets
find_unused_files()
Asset Library を検索
search_assetlib("platformer")
# => [{title: "PlatformerController2D", ...}]

get_asset_info("1062")
# => {title, author, description, license, download_url}
ゲームをヘッドレスで実行

GODOT_MCP_ALLOW_GODOT_EXEC が必要です(同梱されている MCP JSON 設定に含まれています)。

run_game(headless=True, quit_after_seconds=30)

必要条件

  • Python 3.10+
  • 依存関係:fastmcp、urllib3(pyproject.toml を参照)

開発

pip install -e ".[dev]"
ruff check godot_mcp_server.py tests
pytest

継続的インテグレーションは Python 3.10–3.14 で実行されます(.github/workflows/ci.yml を参照)。Dependabot は pip と GitHub Actions の PR を毎週作成します。

任意:pip install pre-commit && pre-commit install を実行すると、.pre-commit-config.yaml が使用されます。

GitHub に公開

  1. GitHub に空のリポジトリを作成します(README/ライセンスをローカルにすでに用意している場合は、それらを含めないでください)。例:godot-mcp-server。
  2. リモートを追加してプッシュします:
cd /path/to/godot-mcp-server
git remote add origin https://github.com/YOUR_USER/godot-mcp-server.git
git push -u origin main

または、GitHub CLI を使用します:gh repo create godot-mcp-server --public --source=. --remote=origin --push

最初のプッシュ後は、プッシュと PR のたびに CI が実行されます。別のアカウントまたは組織を使用する場合は、README のバッジ URL 内の sterion66 を置き換えてください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。