MCP
Model Context Protocol(MCP) 統合により、Claude Code や Cursor などの AI アシスタントが、実行中の Turian ゲームをリアルタイムで検査し、操作できるようになります。LLM は状態を推測する代わりに、実際のシーン、エンティティ、コンポーネント、パフォーマンスメトリクスを直接クエリできます。
仕組み
Claude Code / Cursor
│ MCP(stdio、JSON-RPC 2.0)
▼
turian-cli mcp
│ リモートデバッグプロトコル(TCP、ポート 7777)
▼
実行中のゲーム(デバッグサーバー有効)
turian-cli mcp は 2 つのプロトコルを橋渡しします。stdin から MCP リクエストを読み取り、TCP 経由でゲームのデバッグサーバーに転送し、構造化された結果を返します。
クイックスタート
1 — ゲームでデバッグサーバーを有効にする
ゲームのエントリポイントで、メインループの前にデバッグサーバーを起動します:
const debug = @import("debug");
var srv = debug.Server.init(allocator, .{});
defer srv.deinit(io);
try srv.start(io, .{ .ctx = &world, .getFn = myWorldProvider });
サーバーはデフォルトで 127.0.0.1:7777 をリッスンします。
2 — MCP クライアントを設定する
Claude Code(~/.claude/mcp.json またはプロジェクトの .mcp.json):
{
"mcpServers": {
"turian": {
"command": "turian-cli",
"args": ["mcp"]
}
}
}
認証トークンを使用(デバッグサーバーが --token で起動された場合):
{
"mcpServers": {
"turian": {
"command": "turian-cli",
"args": ["mcp", "--token", "my-secret"]
}
}
}
カスタムホスト/ポート:
{
"mcpServers": {
"turian": {
"command": "turian-cli",
"args": ["mcp", "--host", "192.168.1.10", "--port", "7778"]
}
}
}
3 — ゲームを起動して質問する
ゲームが実行され、Claude Code が接続されたら、次のように質問できます:
"どのシーンが読み込まれていますか?" "Player エンティティを検査してください。" "現在の FPS とメモリ使用量は?" "Camera コンポーネントを持つすべてのエンティティを一覧表示してください。"
利用可能なツール
読み取りツール
| ツール | 説明 |
|---|---|
list_scenes |
現在読み込まれているすべてのシーンとその状態 |
inspect_scene |
シーン内のすべてのエンティティとコンポーネント概要 |
find_entities |
名前の部分文字列またはコンポーネントタイプでエンティティをフィルタリング |
scene_summary |
LLM の方向付けのためのコンパクトな完全スナップショット |
inspect_entity |
1 つのエンティティの Transform + 全コンポーネントフィールド |
get_component |
エンティティ上の特定コンポーネントのフィールド値 |
get_metrics |
FPS、フレーム時間、メモリ、ドローコール、ECS カウント |
get_schema |
すべての組み込みコンポーネントタイプのスキーマ |
list_assets |
プロジェクトアセット(guid、パス、タイプ) |
inspect_material |
GUID で 1 つのアセットを検査 |
capture_profiler |
最新のプロファイラフレーム(カウンター + ゾーン) |
inspect_memory |
アロケータのメモリ使用量 |
list_errors |
最近のエンジン警告/エラー |
書き込みツール(読み書きサーバー + confirm: true)
| ツール | 説明 |
|---|---|
modify_component |
コンポーネントフィールドを設定 |
set_transform |
位置/回転/スケールを設定 |
spawn_entity |
新しいエンティティを作成 |
destroy_entity |
エンティティを削除 |
reload_asset |
アセットをホットリロード |
書き込みツールは確認ゲートを使用します。最初の呼び出しはプレビューを返し、confirm: true を渡すと実際に変更が適用されます。
CLI リファレンス
turian-cli mcp [--host <addr>] [--port <n>] [--token <secret>]
| フラグ | デフォルト | 説明 |
|---|---|---|
--host |
127.0.0.1 |
デバッグサーバーのホスト名または IP |
--port |
7777 |
デバッグサーバーのポート |
--token |
(空) | 認証トークン(サーバーの --token と一致する必要があります) |
turian-cli mcp は stdin が閉じられると終了します。MCP クライアントがそのライフタイムを制御します。
プロトコル詳細
- トランスポート:stdio 上の JSON-RPC 2.0、改行区切り
- MCP バージョン:2024-11-05
- 機能:
tools(一覧表示 + 呼び出し) - デフォルトで読み取り専用:デバッグサーバーが読み書きモードで起動されていない場合、変更ツールはエラーを返します
関連情報
- リモートデバッグプロトコル——基盤となる TCP レイヤー
- ランタイムイントロスペクション——両方のレイヤーが利用するエンジン API
- CLI リファレンス——その他の
turian-cliコマンド