GGua 日本語リファレンスEnglishGitHub ↗
英語版が正式な参照です。内容に差異がある場合は、英語版を優先してください。
GUIDE / BROWSER-NATIVE WEBMCP

WebゲームをブラウザのAIツールへ直接公開する

gua-webmcpは、Godot Web ExportまたはUnity WebGLのSemantic toolを同じbrowser tabへ登録します。gui-mcpもWebSocket接続も不要です。

gui-mcpとの違い

gua-webmcp

export済みゲームのpage内で動き、同じtabのengine-owned JavaScript portへ接続します。Godot Web/Unity WebGLをbrowser-nativeにAI playtestするときに使います。

gui-mcp

別processのstdio MCP serverとして動き、native gameへWebSocket接続します。desktop版GodotやUnity Player/Editorの自動化に使います。

Installとtool登録

browser packageを導入powershell
npm install gua-webmcp
Godot Web Exportのpagets
import { 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を準備する

  1. 統合済みGodot addonを導入

    最新Gua Releaseからgua-godot-addon-v*.zipを取得します。Windows DLLとDebug/Release両方のWeb GDExtension WASMが含まれます。

  2. Extension Supportを有効化

    Web export presetでExtension Supportを有効にし、single-thread variantを使います。Godotがweb.wasm32.single.debugまたはweb.wasm32.single.releaseを自動選択します。

  3. 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を解放します。