mcpField
B
Board Mcp

Board Mcp

本地服务
github.com/seeincodes开发工具129 周前更新

关于 Board Mcp

Board Mcp 是面向 Unity 开发者的 Board SDK MCP 服务,提供 SDK 工具和参考资源。Unity 的 MCP bridge 运行时,还可代理 Unity Editor 的工具与资源。

主要功能

  1. 01覆盖四个 Board SDK 领域的 27 个工具
  2. 02提供 C# 示例、API 签名和注意事项
  3. 03收录七种实体游戏棋子模型
  4. 04提供八项 SDK 参考资源
  5. 05可选代理 Unity Editor 工具与资源

适用场景

  1. 01生成 Board SDK 输入处理代码
  2. 02配置玩家会话和 AI 玩家
  3. 03创建和管理存档
  4. 04同时访问 Unity Editor 工具与 SDK 参考资料

MCP 相关

向 MCP 客户端提供 Board SDK 工具与资源,包括代码示例和 API 说明。Unity Editor 的 MCP bridge 可用时,会通过同一服务发现并代理 Unity 工具与资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"BoardMCP": {
"command": "npx",
"args": [
"-y",
"board-sdk-mcp-server"
]
}
}
}
启动命令npx -y board-sdk-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmboard-sdk-mcp-server

工具

27

收录的工具列表 · 更新于 3 周前

参数类型必填说明
contactTypesarray否用于筛选的触点类型。省略则包含所有类型。

详细介绍

Board SDK MCP 服务

为 AI 助手提供对 Board SDK(fun.board v3.3.0)的结构化访问,用于 Unity 游戏开发。你的 AI 不再臆测 SDK API,而是能一次性生成正确的 C# 代码,并妥善处理平台守卫、异步模式和注意事项。

当 Unity Editor 与 MCP for Unity 同时运行时,此服务会自动发现并代理 Unity 的工具和资源——一个 MCP 服务即可同时提供 Board SDK 知识和对 Unity Editor 的实时控制。

包含内容

  • 27 个工具,涵盖 4 个 SDK 领域(输入、会话、存档、应用程序)
  • 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 Agent,即可自动运行。

先决条件
  • Node.js 20+

添加到你的 AI Agent

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。Agent 即可在 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"]。


验证是否正常运行

将服务添加到你的 Agent 后,可以向它提问,例如:

“如何检测 Board 上实体棋子的接触?”

Agent 应调用 board_input_get_contacts,并返回包含完整 C# 代码示例、平台守卫和注意事项的结构化响应,而不是泛泛猜测。

其他适合测试的提示词:

提示词预期调用的工具
“设置带封面图片的存档”board_save_create、board_save_cover_image
“向会话中添加第二位玩家”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
“添加一个简单难度的 AI 对手”board_session_ai_players、board_session_add_player
“修复相互冲突的输入模块”board_app_input_module

可用工具

输入(board_input_*)
工具返回内容
board_input_get_contacts带平台保护的 GetActiveContacts() 轮询模式
board_input_contact_lifecycleBoardContactPhase 状态机(Began → Moved → Ended)
board_input_configure_settingsBoardInputSettings 平滑处理和棋子集配置
board_input_simulator_setup用于无硬件测试的编辑器模拟器激活
board_input_glyph_setup使用模型文件设置检测实体游戏棋子
board_input_list_piece_sets可用棋子集模型及其对应游戏的目录
board_input_debug_view显示触点位置和边界的可视化调试叠加层
会话(board_session_*)
工具返回内容
board_session_get_players玩家名单访问方式和 playersChanged 事件模式
board_session_add_player带 async/await 模式的 PresentAddPlayerSelector()
board_session_replace_playerPresentReplacePlayerSelector() 及 IL2CPP 说明
board_session_reset_players用于恢复初始状态的 ResetPlayers()
board_session_player_typesBoardPlayerType(Profile、Guest、AI)说明
board_session_active_profileactiveProfile 与 players[] 的区别
board_session_ai_players用于注册 AI 对手类型的 SetAIPlayerTypes()
存档(board_save_*)
工具返回内容
board_save_createCreateSaveGame() 并自动关联玩家
board_save_updateUpdateSaveGame() 并重新生成校验和
board_save_loadLoadSaveGame() 及玩家激活副作用警告
board_save_listGetSaveGamesMetadata() 并包含已填充的玩家信息
board_save_cover_image封面图片加载(432x243 PNG)
board_save_storage_info存储限制(16MB 负载,64MB 总量)
board_save_remove_players移除玩家时的自动删除行为
board_save_remove_profile从存档中移除活动档案
应用(board_app_*)
工具返回内容
board_app_pause_screenSetPauseScreenContext() 与 UpdatePauseScreenContext() 的区别
board_app_profile_switcher控制档案切换器叠加层的可见性
board_app_exit正常退出及不同平台的行为差异
board_app_pause_events暂停界面事件订阅模式
board_app_input_moduleBoardUIInputModule 自动管理输入模块

棋盘棋子

棋盘游戏使用实体游戏棋子(称为“glyph”),由 Board 内置摄像头识别。每款游戏都有自己的棋子集——一种 TensorFlow Lite 识别模型,可将实体棋子映射到唯一的 glyphId 整数。

可用的棋子集
棋子集模型文件版本游戏
arcadearcade.bytes1.3.7Board Arcade
thrasos_arcadethrasos_arcade.bytes1.0.2Thrasos Arcade
chop_chopchop_chop.bytes1.3.0Chop Chop
mushkamushka.bytes1.3.1Mushka
chop_chop_mushkachop_chop_mushka.bytes1.0.0Chop Chop + Mushka(组合)
omakaseomakase.bytes1.3.2Omakase
save_the_bloogssave_the_bloogs.bytes1.3.2Save the Bloogs
棋子的工作方式
  1. 将 .bytes 模型文件放入 Unity 项目中的 Assets/StreamingAssets/Board/PieceSets/
  2. 在运行时将 BoardInputSettings.pieceSetModelFilename 设置为该模型文件
  3. 每帧调用 BoardInput.GetActiveContacts(BoardContactType.Glyph) 来检测棋子

每个检测到的棋子都会提供:

  • glyphId — 用于识别棋子的唯一整数(同一模型版本在不同会话中保持稳定)
  • screenPosition — 棋子在表面上的位置
  • orientation — 以弧度表示的旋转角度(从垂直方向起顺时针计算)
  • isTouched — 是否有手指同时触碰棋子
  • bounds — 用于命中测试的屏幕空间边界框

一次只能启用一个棋子集。若要同时识别多个游戏中的棋子,请使用组合棋子集(例如,chop_chop_mushka 可在同一会话中识别 Chop Chop 和 Mushka 棋子)。

相关工具
工具用途
board_input_list_piece_sets浏览完整目录,可选按游戏筛选
board_input_glyph_setup配置棋子集并开始检测棋子
board_input_configure_settings设置平滑处理和棋子集模型文件名
board_input_get_contacts每帧轮询检测到的棋子(以及手指触碰)

可用资源

资源内容
board://sdk/overviewSDK 描述、版本、命名空间映射
board://sdk/types/contactBoardContact 结构体 — 全部 10 个字段
board://sdk/types/playerBoardPlayer + BoardSessionPlayer 架构
board://sdk/types/savegameBoardSaveGameMetadata — 全部 11 个字段
board://sdk/piece-sets棋子集目录,包含模型、版本和游戏
board://sdk/changelogv2.0 → v3.3.0 更新日志
board://sdk/errors常见错误及解决方法
board://sdk/platform-guards#if UNITY_ANDROID 守卫参考

Unity Editor 集成

此服务充当 MCP 网关。它始终提供 Board SDK 工具(文档和代码示例);当 Unity Editor 与 MCP for Unity 包同时运行时,它会自动连接,并通过同一服务代理 Unity 的工具和资源。

无需额外配置。 如果 Unity 正在运行且 MCP 桥接已启动,Unity 工具就会自动显示。如果 Unity 未运行,Board SDK 工具仍可正常使用。

工作方式
  1. 启动时,服务会尝试连接到 Unity MCP:http://127.0.0.1:8090/mcp
  2. 如果 Unity 可用,服务会发现所有 Unity 工具和资源,并将它们提供给你的 AI Agent
  3. 如果 Unity 断开连接(编辑器关闭、域重载),Unity 工具会被移除,服务会在后台重试
  4. 无论 Unity 处于何种状态,Board SDK 工具始终可用
要求
  • 在 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_TRANSPORTstdio传输模式:stdio 或 sse
MCP_SSE_PORT3000SSE 服务端口(仅当 MCP_TRANSPORT=sse 时)
UNITY_MCP_URLhttp://127.0.0.1:8090/mcpUnity MCP 端点 URL
UNITY_MCP_ENABLEDtrue设置为 false 可完全禁用 Unity 代理
LOG_LEVELinfo日志级别:debug、info、warn、error

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。