gui-mcpとの違い
export済みゲームのpage内で動き、同じtabのengine-owned JavaScript portへ接続します。Godot Web/Unity WebGLをbrowser-nativeにAI playtestするときに使います。
別processのstdio MCP serverとして動き、native gameへWebSocket接続します。desktop版GodotやUnity Player/Editorの自動化に使います。
Installとtool登録
npm install gua-webmcpimport { createGodotWebBridge, registerGuaWebMcp } from "gua-webmcp";
const registration = await registerGuaWebMcp(createGodotWebBridge());
if (!registration.supported) console.info(registration.error);game-input capabilityはtool登録時に一度だけ読み取るため、bridgeを作成する前にengine portが存在している必要があります。先にengine exportを読み込み、window.__guaGodotWebPortの生成を待ってから、引数なしのcreateGodotWebBridge()を呼びます。Unity WebGLではwindow.__guaUnityWebPortを待ち、引数なしのcreateUnityWebGlBridge()を呼びます。helperは既定のglobal port名を解決するため、port objectそのものは渡しません。
Godot Web Exportを準備する
- 統合済みGodot addonを導入
最新Gua Releaseから
gua-godot-addon-v*.zipを取得します。Windows DLLとDebug/Release両方のWeb GDExtension WASMが含まれます。 - Extension Supportを有効化
Web export presetでExtension Supportを有効にし、single-thread variantを使います。Godotが
web.wasm32.single.debugまたはweb.wasm32.single.releaseを自動選択します。 - HTTP(S)で配信
生成HTMLをfileとして直接開かず、HTTP(S) serverから配信します。browser/export設定が要求する場合はcross-origin isolation headerも付けます。
Unity WebGL buildを準備する
Releaseのcom.link1345.gua-<version>.tgzには、WebGL native libraryとGuaWebMcp.jslibが含まれます。WebGL経路は実験的です。初期bridgeはSemantic UI、World Object Tree、有効化済みgame-input capabilityを公開しますが、screenshot capabilityは公開しません。
公開される機能
Semantic UIの取得・操作・待機、read-onlyのWorld Object Tree、engine input pumpが初期化済みのSemantic Game Action/Raw Inputだけをtool登録します。現在のReleaseに含まれるGodot/Unityの組み込みportはscreenshot capabilityを公開しません。互換性のある描画frame readbackを実装した独自のGuaInPagePortだけが明示的に追加できます。操作はenqueue受理ではなく、同じrequest IDのhost完了まで待ちます。
Securityとlifetime
browser portは常にhostのPlayer投影とPlayer action認可を使います。local Debug Inspectorを有効にしてもprivate dataはWebMCPへ出ず、toolからDebugへ昇格できません。ゲーム入力も、hostがPlayer向けSemantic/Raw capabilityを個別許可するまで既定拒否です。各tabがtool登録とinput sessionを所有し、timeout、caller cancel、unregister、engine shutdownでpage-owned inputを解放します。