mcpField
B
Board Mcp

Board Mcp

Local
github.com/seeincodesDeveloper Tools1Updated 29w ago

About Board Mcp

Board Mcp is an MCP server for Unity developers working with the Board SDK. It provides documented SDK tools and resources, and can proxy Unity Editor tools when the Unity MCP bridge is running.

Key features

  1. 0127 tools across four Board SDK domains
  2. 02C# examples, API signatures, and caveats
  3. 03Catalog of seven physical piece sets
  4. 04Eight SDK reference resources
  5. 05Optional Unity Editor tool and resource proxy

Use cases

  1. 01Generate Board SDK input-handling code
  2. 02Configure player sessions and AI players
  3. 03Create and manage save games
  4. 04Access Unity Editor tools alongside SDK references

MCP support

Exposes Board SDK tools and resources to MCP clients, including code examples and API guidance. When Unity Editor's MCP bridge is available, it discovers and proxies Unity tools and resources through the same server.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"BoardMCP": {
"command": "npx",
"args": [
"-y",
"board-sdk-mcp-server"
]
}
}
}
Run commandnpx -y board-sdk-mcp-server

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmboard-sdk-mcp-server

Tools

27

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
contactTypesarrayNoContact types to filter. Omit for all types.

Details

From the project README

Board SDK MCP Server

MCP server that gives AI assistants structured access to the Board SDK (fun.board v3.3.0) for Unity game development. Instead of hallucinating SDK APIs, your AI generates correct C# code with proper platform guards, async patterns, and caveats — on the first attempt.

When Unity Editor is running with MCP for Unity, this server automatically discovers and proxies Unity's tools and resources too — one MCP server for both Board SDK knowledge and live Unity Editor control.

What's included

  • 27 tools across 4 SDK domains (Input, Session, Save Game, Application)
  • 7 piece sets — full catalog of physical game piece models (arcade, chop_chop, mushka, omakase, save_the_bloogs, thrasos_arcade, and the combined chop_chop_mushka set)
  • 8 resources with type schemas, piece set catalog, changelog, error catalog, and platform guard reference
  • Unity Editor integration — automatically proxies Unity MCP tools/resources when Unity is running
  • Every tool response includes: API signature, complete C# code example, parameter docs, caveats, and related tools

Install

npx board-sdk-mcp-server

No build step, no cloning. Just add the config below to your AI agent and it runs automatically.

Prerequisites
  • Node.js 20+

Adding to your AI agent

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "board-sdk": {
      "command": "npx",
      "args": ["-y", "board-sdk-mcp-server"]
    }
  }
}

Restart Claude Desktop. You'll see the Board SDK tools appear in the tool picker (hammer icon).

Cursor

Create or edit .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "board-sdk": {
      "command": "npx",
      "args": ["-y", "board-sdk-mcp-server"]
    }
  }
}

Restart Cursor. The Board SDK tools will be available to the agent in Composer.

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "board-sdk": {
      "command": "npx",
      "args": ["-y", "board-sdk-mcp-server"]
    }
  }
}
VS Code (Copilot)

Add to your VS Code settings.json or .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
From source (development)
git clone <repo-url> && cd BoardMCP
npm install
npm run build

Then use "command": "node", "args": ["/path/to/BoardMCP/dist/index.js"] in any config above.


Verifying it works

After adding the server to your agent, ask it something like:

"How do I detect physical piece contacts on a Board?"

The agent should call board_input_get_contacts and return a structured response with a complete C# code example, platform guards, and caveats — not a generic guess.

Other good test prompts:

PromptExpected tools called
"Set up save games with cover images"board_save_create, board_save_cover_image
"Add a second player to the session"board_session_add_player, board_session_player_types
"Why are my contacts returning empty?"board_input_get_contacts, board_input_simulator_setup
"What piece sets are available?"board_input_list_piece_sets
"Set up Chop Chop piece detection"board_input_glyph_setup, board_input_list_piece_sets
"Configure the pause screen"board_app_pause_screen, board_app_pause_events
"What's the max save file size?"board_save_storage_info
"Add an Easy AI opponent"board_session_ai_players, board_session_add_player
"Fix my input modules conflicting"board_app_input_module

Available tools

Input (board_input_*)
ToolWhat it returns
board_input_get_contactsGetActiveContacts() polling pattern with platform guards
board_input_contact_lifecycleBoardContactPhase state machine (Began → Moved → Ended)
board_input_configure_settingsBoardInputSettings smoothing and piece set configuration
board_input_simulator_setupEditor simulator activation for testing without hardware
board_input_glyph_setupPhysical game piece detection with model file setup
board_input_list_piece_setsCatalog of available piece set models and their games
board_input_debug_viewVisual debug overlay for contact positions and bounds
Session (board_session_*)
ToolWhat it returns
board_session_get_playersPlayer roster access and playersChanged event pattern
board_session_add_playerPresentAddPlayerSelector() with async/await pattern
board_session_replace_playerPresentReplacePlayerSelector() with IL2CPP notes
board_session_reset_playersResetPlayers() for returning to initial state
board_session_player_typesBoardPlayerType (Profile, Guest, AI) explanation
board_session_active_profileactiveProfile vs players[] distinction
board_session_ai_playersSetAIPlayerTypes() for registering AI opponent types
Save Game (board_save_*)
ToolWhat it returns
board_save_createCreateSaveGame() with auto player association
board_save_updateUpdateSaveGame() with checksum regeneration
board_save_loadLoadSaveGame() with player activation side-effect warning
board_save_listGetSaveGamesMetadata() with hydrated player info
board_save_cover_imageCover image loading (432x243 PNG)
board_save_storage_infoStorage limits (16MB payload, 64MB total)
board_save_remove_playersPlayer removal with auto-delete behavior
board_save_remove_profileActive profile removal from save
Application (board_app_*)
ToolWhat it returns
board_app_pause_screenSetPauseScreenContext() vs UpdatePauseScreenContext()
board_app_profile_switcherProfile switcher overlay visibility control
board_app_exitClean exit with platform behavior differences
board_app_pause_eventsPause screen event subscription pattern
board_app_input_moduleBoardUIInputModule automatic input module management

Board pieces

Board games use physical game pieces (called "glyphs") that are recognized by the Board's built-in camera. Each game has its own piece set — a TensorFlow Lite recognition model that maps physical pieces to unique glyphId integers.

Available piece sets
Piece SetModel FileVersionGame
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 (combined)
omakaseomakase.bytes1.3.2Omakase
save_the_bloogssave_the_bloogs.bytes1.3.2Save the Bloogs
How pieces work
  1. Place the .bytes model file in Assets/StreamingAssets/Board/PieceSets/ in your Unity project
  2. Set BoardInputSettings.pieceSetModelFilename to the model file at runtime
  3. Call BoardInput.GetActiveContacts(BoardContactType.Glyph) to detect pieces each frame

Each detected piece provides:

  • glyphId — unique integer identifying which piece it is (stable across sessions for the same model version)
  • screenPosition — where on the surface the piece is located
  • orientation — rotation in radians (clockwise from vertical)
  • isTouched — whether a finger is simultaneously touching the piece
  • bounds — screen-space bounding box for hit-testing

Only one piece set can be active at a time. To recognize pieces from multiple games simultaneously, use a combined set (e.g., chop_chop_mushka recognizes both Chop Chop and Mushka pieces in one session).

Related tools
ToolUse it to...
board_input_list_piece_setsBrowse the full catalog with optional game filtering
board_input_glyph_setupConfigure a piece set and start detecting pieces
board_input_configure_settingsSet smoothing and piece set model filename
board_input_get_contactsPoll detected pieces (and finger touches) each frame

Available resources

ResourceContents
board://sdk/overviewSDK description, version, namespace map
board://sdk/types/contactBoardContact struct — all 10 fields
board://sdk/types/playerBoardPlayer + BoardSessionPlayer schemas
board://sdk/types/savegameBoardSaveGameMetadata — all 11 fields
board://sdk/piece-setsPiece set catalog with models, versions, games
board://sdk/changelogChangelog v2.0 → v3.3.0
board://sdk/errorsCommon errors and resolutions
board://sdk/platform-guards#if UNITY_ANDROID guard reference

Unity Editor integration

This server acts as an MCP gateway. It always serves Board SDK tools (documentation and code examples), and when Unity Editor is running with the MCP for Unity package, it automatically connects and proxies Unity's tools and resources through the same server.

No extra configuration needed. If Unity is running with the MCP bridge started, Unity tools appear automatically. If Unity isn't running, Board SDK tools still work normally.

How it works
  1. On startup, the server attempts to connect to Unity MCP at http://127.0.0.1:8090/mcp
  2. If Unity is available, it discovers all Unity tools and resources and makes them available to your AI agent
  3. If Unity disconnects (editor closed, domain reload), Unity tools are removed and the server retries in the background
  4. Board SDK tools are always available regardless of Unity's state
Requirements
  • Install the MCP for Unity package in your Unity project
  • Open Window > MCP for Unity and click Start Bridge
  • The bridge runs on http://127.0.0.1:8090/mcp by default
Disabling Unity integration

Set UNITY_MCP_ENABLED=false to skip the Unity proxy entirely, or change the URL with UNITY_MCP_URL if your Unity bridge runs on a different port.

Development

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

Environment variables

VariableDefaultDescription
MCP_TRANSPORTstdioTransport mode: stdio or sse
MCP_SSE_PORT3000SSE server port (only when MCP_TRANSPORT=sse)
UNITY_MCP_URLhttp://127.0.0.1:8090/mcpUnity MCP endpoint URL
UNITY_MCP_ENABLEDtrueSet to false to disable Unity proxy entirely
LOG_LEVELinfoLogging: debug, info, warn, error

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.