Board Mcp について
Board Mcpは、Unity開発者向けにBoard SDKのツールとリソースを提供するMCPサーバーです。UnityのMCPブリッジが稼働中なら、Unity Editorのツールやリソースもプロキシします。
主な機能
- 014つのBoard SDK領域にわたる27ツール
- 02C#の例、APIシグネチャ、注意事項
- 037種類の物理ゲームピースセット一覧
- 048つのSDKリファレンスリソース
- 05Unity Editorのツールとリソースを任意でプロキシ
活用シーン
- 01Board SDKの入力処理コードの生成
- 02プレイヤーセッションとAIプレイヤーの設定
- 03セーブデータの作成と管理
- 04Unity EditorのツールとSDK資料への同時アクセス
MCP 対応
MCPクライアントにBoard SDKのツールとリソースを提供し、コード例やAPI情報を返します。Unity EditorのMCPブリッジが利用可能な場合、同じサーバーを通じてUnityのツールとリソースを検出し、プロキシします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
27掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| contactTypes | array | いいえ | フィルターするコンタクトタイプです。省略するとすべてのタイプが対象になります。 |
詳細
Board SDK MCP サーバー
Unity ゲーム開発で Board SDK(fun.board v3.3.0)に構造化された形でアクセスできる AI アシスタント向けの MCP サーバーです。SDK API を幻覚で生成する代わりに、AI が適切なプラットフォームガード、非同期パターン、注意事項を含む正確な C# コードを、最初の試行で生成します。
M C P for Unity がインストールされた Unity Editor の実行中、このサーバーは Unity のツールとリソースも自動的に検出してプロキシします。Board SDK の知識と、稼働中の Unity Editor の制御の両方に対応する MCP サーバーが 1 つで済みます。
含まれるもの
- 27 個のツール(4 つの SDK ドメイン:Input、Session、Save Game、Application)
- 7 つのピースセット — 物理ゲームピースモデルの完全なカタログ(arcade、chop_chop、mushka、omakase、save_the_bloogs、thrasos_arcade、chop_chop_mushka を組み合わせたセット)
- 8 つのリソース(型スキーマ、ピースセットのカタログ、変更履歴、エラーカタログ、プラットフォームガードのリファレンスを含む)
- Unity Editor との統合 — Unity の実行中は Unity MCP のツール/リソースを自動的にプロキシします
- 各ツールの応答には、API シグネチャ、完全な C# コード例、パラメーターのドキュメント、注意事項、関連ツールが含まれます
インストール
npx board-sdk-mcp-server
ビルドもクローンも不要です。AI エージェントに以下の設定を追加するだけで、自動的に実行されます。
前提条件
- Node.js 20+
AI エージェントへの追加
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。
{
"mcpServers": {
"board-sdk": {
"command": "npx",
"args": ["-y", "board-sdk-mcp-server"]
}
}
}
Claude Desktop を再起動します。ツールピッカー(ハンマーアイコン)に Board SDK のツールが表示されます。
Cursor
プロジェクトのルートに .cursor/mcp.json を作成または編集します。
{
"mcpServers": {
"board-sdk": {
"command": "npx",
"args": ["-y", "board-sdk-mcp-server"]
}
}
}
Cursor を再起動します。Composer でエージェントが Board SDK のツールを利用できるようになります。
Windsurf
~/.codeium/windsurf/mcp_config.json を編集します。
{
"mcpServers": {
"board-sdk": {
"command": "npx",
"args": ["-y", "board-sdk-mcp-server"]
}
}
}
VS Code(Copilot)
VS Code の settings.json または .vscode/mcp.json に追加します。
{
"mcp": {
"servers": {
"board-sdk": {
"command": "npx",
"args": ["-y", "board-sdk-mcp-server"]
}
}
}
}
Claude Code(CLI)
claude mcp add board-sdk -- npx -y board-sdk-mcp-server
ソースからの実行(開発用)
git clone <repo-url> && cd BoardMCP
npm install
npm run build
その後、上記のいずれかの設定で "command": "node", "args": ["/path/to/BoardMCP/dist/index.js"] を使用します。
動作確認
エージェントにサーバーを追加したら、次のように質問します。
「Board 上で物理ピースの接触を検出するにはどうすればよいですか?」
エージェントは board_input_get_contacts を呼び出し、完全な C# コード例、プラットフォームガード、注意事項を含む構造化された応答を返します。一般的な推測を返すことはありません。
その他のテストに適したプロンプト:
| プロンプト | 呼び出されるツール(予想) |
|---|---|
| 「カバー画像付きのセーブデータを設定して」 | board_save_create、board_save_cover_image |
| 「セッションに 2 人目のプレイヤーを追加して」 | board_session_add_player、board_session_player_types |
| 「接触情報が空で返されるのはなぜ?」 | board_input_get_contacts、board_input_simulator_setup |
| 「利用可能なピースセットは?」 | board_input_list_piece_sets |
| 「Chop Chop のピース検出を設定して」 | board_input_glyph_setup、board_input_list_piece_sets |
| 「ポーズ画面を設定して」 | board_app_pause_screen、board_app_pause_events |
| 「セーブファイルの最大サイズは?」 | board_save_storage_info |
| 「Easy AI の対戦相手を追加して」 | board_session_ai_players、board_session_add_player |
| 「入力モジュールの競合を解決して」 | board_app_input_module |
利用可能なツール
Input(board_input_*)
| ツール | 返される内容 |
|---|---|
board_input_get_contacts | プラットフォームガードを含む GetActiveContacts() のポーリングパターン |
board_input_contact_lifecycle | BoardContactPhase の状態遷移(Began → Moved → Ended) |
board_input_configure_settings | BoardInputSettings のスムージングとピースセットの設定 |
board_input_simulator_setup | ハードウェアなしでテストするためのエディターシミュレーターの有効化 |
board_input_glyph_setup | モデルファイルの設定を含む物理ゲームピースの検出 |
board_input_list_piece_sets | 利用可能なピースセットモデルと対応ゲームのカタログ |
board_input_debug_view | コンタクト位置と境界を表示するビジュアルデバッグオーバーレイ |
Session(board_session_*)
| ツール | 返される内容 |
|---|---|
board_session_get_players | プレイヤーロスターへのアクセスと playersChanged イベントパターン |
board_session_add_player | async/await パターンを使用した PresentAddPlayerSelector() |
board_session_replace_player | IL2CPP に関する注記を含む PresentReplacePlayerSelector() |
board_session_reset_players | 初期状態に戻すための ResetPlayers() |
board_session_player_types | BoardPlayerType(Profile、Guest、AI)の説明 |
board_session_active_profile | activeProfile と players[] の違い |
board_session_ai_players | AI 対戦相手のタイプを登録する SetAIPlayerTypes() |
Save Game(board_save_*)
| ツール | 返される内容 |
|---|---|
board_save_create | プレイヤーの自動関連付けを行う CreateSaveGame() |
board_save_update | チェックサムを再生成する UpdateSaveGame() |
board_save_load | プレイヤー有効化の副作用に関する警告を含む LoadSaveGame() |
board_save_list | プレイヤー情報を補完した GetSaveGamesMetadata() |
board_save_cover_image | カバー画像の読み込み(432x243 PNG) |
board_save_storage_info | ストレージ上限(ペイロード 16MB、合計 64MB) |
board_save_remove_players | プレイヤーの削除と自動削除の動作 |
board_save_remove_profile | セーブデータからのアクティブプロフィールの削除 |
Application(board_app_*)
| ツール | 返される内容 |
|---|---|
board_app_pause_screen | SetPauseScreenContext() と UpdatePauseScreenContext() の違い |
board_app_profile_switcher | プロフィール切り替えオーバーレイの表示制御 |
board_app_exit | プラットフォームごとの動作の違いを考慮した正常な終了 |
board_app_pause_events | ポーズ画面イベントのサブスクリプションパターン |
board_app_input_module | BoardUIInputModule による入力モジュールの自動管理 |
ボードのピース
ボードゲームでは、物理的なゲームピース(「glyph」と呼ばれます)を使用します。これらは、Board に内蔵されたカメラによって認識されます。各ゲームには独自のピースセットがあり、物理ピースを一意の glyphId 整数に対応付ける TensorFlow Lite 認識モデルです。
利用可能なピースセット
| ピースセット | モデルファイル | バージョン | ゲーム |
|---|---|---|---|
arcade | arcade.bytes | 1.3.7 | Board Arcade |
thrasos_arcade | thrasos_arcade.bytes | 1.0.2 | Thrasos Arcade |
chop_chop | chop_chop.bytes | 1.3.0 | Chop Chop |
mushka | mushka.bytes | 1.3.1 | Mushka |
chop_chop_mushka | chop_chop_mushka.bytes | 1.0.0 | Chop Chop + Mushka(統合) |
omakase | omakase.bytes | 1.3.2 | Omakase |
save_the_bloogs | save_the_bloogs.bytes | 1.3.2 | Save the Bloogs |
ピースの仕組み
.bytesモデルファイルを Unity プロジェクトのAssets/StreamingAssets/Board/PieceSets/に配置します- 実行時に
BoardInputSettings.pieceSetModelFilenameにモデルファイルを設定します - 各フレームで
BoardInput.GetActiveContacts(BoardContactType.Glyph)を呼び出してピースを検出します
検出された各ピースには、次の情報が含まれます。
glyphId— ピースを識別する一意の整数(同じモデルバージョンではセッションをまたいで一定です)screenPosition— ピースが表面上にある位置orientation— ラジアン単位の回転角度(垂直方向から時計回り)isTouched— 指が同時にピースに触れているかどうかbounds— ヒットテスト用のスクリーン座標系のバウンディングボックス
一度にアクティブにできるピースセットは1つだけです。複数のゲームのピースを同時に認識するには、統合セットを使用します(例:chop_chop_mushka は1つのセッションで Chop Chop と Mushka の両方のピースを認識します)。
関連ツール
| ツール | 用途 |
|---|---|
board_input_list_piece_sets | ゲームで絞り込みながら、カタログ全体を参照します |
board_input_glyph_setup | ピースセットを設定し、ピースの検出を開始します |
board_input_configure_settings | スムージングとピースセットのモデルファイル名を設定します |
board_input_get_contacts | 検出されたピース(および指のタッチ)を各フレームで取得します |
利用可能なリソース
| リソース | 内容 |
|---|---|
board://sdk/overview | SDK の説明、バージョン、名前空間マップ |
board://sdk/types/contact | BoardContact 構造体 — 10 個すべてのフィールド |
board://sdk/types/player | BoardPlayer と BoardSessionPlayer のスキーマ |
board://sdk/types/savegame | BoardSaveGameMetadata — 11 個すべてのフィールド |
board://sdk/piece-sets | モデル、バージョン、ゲームを含むピースセットカタログ |
board://sdk/changelog | v2.0 から v3.3.0 までの変更履歴 |
board://sdk/errors | よくあるエラーと解決方法 |
board://sdk/platform-guards | #if UNITY_ANDROID ガードのリファレンス |
Unity Editor との連携
このサーバーは MCP ゲートウェイとして動作します。Board SDK ツール(ドキュメントとコード例)は常に提供されます。また、MCP for Unity パッケージを使用して Unity Editor が実行されている場合は、自動的に接続し、Unity のツールとリソースを同じサーバー経由でプロキシします。
追加の設定は不要です。 MCP ブリッジを起動した状態で Unity が実行されている場合、Unity のツールが自動的に表示されます。Unity が実行されていない場合でも、Board SDK ツールは通常どおり動作します。
仕組み
- 起動時に、サーバーは
http://127.0.0.1:8090/mcpの Unity MCP への接続を試みます - Unity が利用可能な場合、すべての Unity ツールとリソースを検出し、AI エージェントから利用できるようにします
- Unity が切断された場合(エディターを閉じた場合、ドメインの再読み込みが発生した場合)、Unity のツールは削除され、サーバーはバックグラウンドで再接続を試みます
- Board SDK ツールは Unity の状態に関係なく常に利用できます
要件
- Unity プロジェクトに MCP for Unity パッケージをインストールします
- Window > MCP for Unity を開き、Start Bridge をクリックします
- ブリッジはデフォルトで
http://127.0.0.1:8090/mcpで実行されます
Unity 連携を無効にする
UNITY_MCP_ENABLED=false を設定すると、Unity プロキシを完全にスキップできます。Unity ブリッジが別のポートで実行されている場合は、UNITY_MCP_URL で URL を変更してください。
開発
npm run dev # Run server with tsx (no build step)
npm run build # Compile TypeScript to dist/
npm run typecheck # Type-check without emitting
npm test # Run tests
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
MCP_TRANSPORT | stdio | トランスポートモード:stdio または sse |
MCP_SSE_PORT | 3000 | SSE サーバーのポート(MCP_TRANSPORT=sse の場合のみ) |
UNITY_MCP_URL | http://127.0.0.1:8090/mcp | Unity MCP エンドポイントの URL |
UNITY_MCP_ENABLED | true | false を設定すると、Unity プロキシを完全に無効にします |
LOG_LEVEL | info | ログレベル:debug、info、warn、error |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。