DX12 Engine MCP Server
DX12 Engine MCP server
起動中の DX12 Engine エディタを Claude Code / Codex から
叩いてゲームを作るための MCP サーバ。エディタ(C++)が 127.0.0.1:8787 で待ち受ける TCP ブリッジに
改行区切り JSON で繋ぐ。ゲーム(封印ランタイム)ではブリッジは起動しない=外から触れない。
配布リポジトリ: https://github.com/ryuto-alt/dx12-mcp (エンジン本体には同梱されない)
ソース・オブ・トゥルース: エンジンリポジトリの
tools/mcp-server(publish.ps1で dx12-mcp へ同期)必要環境: Node.js v24+(
.tsを型ストリップで直接実行。tsc ビルド不要)、起動中の DX12 Engine エディタ
インストール
git clone https://github.com/ryuto-alt/dx12-mcp "$env:USERPROFILE\dx12-mcp"
cd "$env:USERPROFILE\dx12-mcp"
./install.ps1 # Linux/macOS: ./install.shこれだけで Claude Code と Codex の両方に登録される(手で貼るコマンドは無い)。install スクリプトは
Node v24+ を確認 → npm install + 自己テスト(エンジン不要) → claude mcp add --scope user と
codex mcp add を実行する。CLI が入っていないクライアントの分だけ手順を表示する。
再実行しても壊れない(remove → add で冪等)。あとは Claude Code / Codex を再起動するだけ。
%USERPROFILE%\dx12-mcp に置くと、エディタの「MCP / AI Bridge」窓が自動検出して
セットアップコマンドをワンクリックでコピーできる。
--scope userで登録する。既定のlocalスコープはそのディレクトリでしか使えず、 エンジンは 1 台に 1 つなので project スコープも不適切。
接続(自動登録が使えないとき)
Claude Code
claude mcp add dx12-engine --scope user -- node "$env:USERPROFILE\dx12-mcp\index.ts"または .mcp.json(テンプレ: .mcp.json.example):
{
"mcpServers": {
"dx12-engine": {
"command": "node",
"args": ["C:\\Users\\<you>\\dx12-mcp\\index.ts"]
}
}
}注意: 既定では
envにDX12_MCP_PORTを書かないこと。書くとポート自動探索 (%TEMP%/dx12_mcp.port)が無効化される。ポートを固定したい時だけ書く。
Codex (~/.codex/config.toml)
[mcp_servers.dx12-engine]
command = "node"
args = ["C:\\Users\\<you>\\dx12-mcp\\index.ts"]構成
engineClient.ts… TCP フレーミング + id 相関の薄いクライアント(ポートは envDX12_MCP_PORT→%TEMP%/dx12_mcp.port→ 8787 の順で自動解決。別マシンはDX12_MCP_HOST)index.ts… MCP サーバ本体(stdio)。141 ツールを公開(全量はエンジンリポジトリの docs/MCP.md 参照)sceneTools.ts… 地形/スカルプト/診断の引数正規化と共通 zod 部品(純ロジック・エンジン非依存)materialApply.ts…dx12_material_applyの純ロジック(ファイル名からのテクスチャ用途推定、hasOverrideの罠の回避)paramGuard.ts… 未知の引数を黙って捨てず「近い正解」を返す共通部品 + 適用後の読み返し照合schemaDrift.ts…Application.cppと TS スキーマの食い違いを検出するパーサ(schemaDrift.test.tsが使う)lookCompare.ts… 3D の絵の測光(対数輝度ヒストグラム/CCT/彩度/黒潰れ)と参照画像との差分・示唆生成contactSheet.ts… カメラ経路の生成とコンタクトシート合成(連続フレーム差分つき)sceneWrite.ts… シーン JSON の検証・要約・書き出し先の解決(SceneSerializer.cppのスキーマと 1:1)test.ts… mock エンジンで framing/相関/エラーを検証(node test.ts)*.test.ts… 各純ロジックの回帰テスト。npm testで全部、npm run test:offlineでネット不要分のみAGENTS.md… AI エージェント向け運用ガイド(典型ワークフロー・禁止パターン)
ツール(抜粋)
カテゴリ | 主なツール |
エンティティ |
|
コンポーネント |
|
見た目 |
|
Lua |
|
アニメーション |
|
マルチプレイヤー |
|
再生/検証 |
|
シーン編集強化 |
|
アセット操作 |
|
精密ピック |
|
地形 |
|
スカルプト |
|
ライティング |
|
描画の切り分け |
|
影 |
|
レイトレーシング |
|
診断 |
|
品質判断 |
|
生成/削除/シーン読込/Play/Stop は遅延同期: エンジンはフレーム境界で実処理し、完了後に
本物の結果(entityId 等)を同期で返す。「name で list して探す」旧パターンは不要。
使い方
エディタ(
DX12Engine.exe)を起動してシーンを開く(ブリッジが 8787〜8797 で待ち受け)AI から
dx12_ping→ 疎通確認dx12_create_entity/dx12_set_component/dx12_attach_lua_componentでシーンを組むdx12_play→dx12_screenshot_final/dx12_get_logで結果を確認
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryuto-alt/dx12-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server