@pixi-board/mcp
v0.5.0
Published
`@pixi-board/mcp` is the stdio MCP server for Pixi Board. It exposes board tool discovery and invocation so local agent CLIs can use board capabilities registered by local plugin packages.
Readme
Pixi Board MCP
@pixi-board/mcp is the stdio MCP server for Pixi Board. It exposes board tool discovery and invocation so local agent CLIs can use board capabilities registered by local plugin packages.
Usage
Run the server with npx:
npx -y @pixi-board/mcp@latestCodex configuration:
[mcp_servers.canvas]
command = "npx"
args = ["-y", "@pixi-board/mcp@latest"]Claude Code and opencode can use the same stdio command:
npx -y @pixi-board/mcp@latestBoard Tools
The MCP server exposes two fixed MCP tools:
list_board_toolscall_board_tool
Call list_board_tools to discover concrete capabilities, then call one with:
{
"name": "canvas.list_nodes",
"input": {
"projectRoot": "active"
}
}Plugins
Board capabilities are loaded from local plugin zip files. The default config path is:
~/.pixi-board/mcp/plugins.jsonOverride it with BOARD_PLUGINS_CONFIG=/absolute/path/plugins.json.
If the file does not exist, the MCP server creates:
{
"pluginRoot": "/Users/you/.pixi-board/plugins",
"pluginOrder": [],
"envByPlugin": {}
}Put plugin zip files in pluginRoot to enable tools:
~/.pixi-board/plugins/
pixi-board-plugin-canvas.zip
pixi-board-plugin-mivo.zipEach plugin zip should contain one package at its root or first directory level. The package should export a BoardPlugin as plugin or default. The loader resolves the entry from package.json using exports.import, exports.default, module, main, then dist/index.js.
Plugin environment variables live under the plugin name:
{
"pluginRoot": "/Users/you/.pixi-board/plugins",
"pluginOrder": [
"pixi-board-plugin-canvas.zip",
"pixi-board-plugin-mivo.zip"
],
"envByPlugin": {
"pixi-board-plugin-mivo": {
"MIVO_API_KEY": "..."
}
}
}The desktop plugin manager can reorder pluginOrder by drag and drop, then refresh the local MCP bridge. The MCP server reloads local plugins before each tool call, so the next list_board_tools or call_board_tool sees the updated plugin root and order. New plugin acquisition can be implemented independently; @pixi-board/mcp only cares about the local plugin root.
Project Roots
Canvas tools accept a projectRoot argument. Use "active" for the current Pixi Board project, or pass an absolute path to a Pixi Board project directory.
Read tools can load project files directly. Write tools such as canvas.create_nodes, canvas.update_nodes, and canvas.update_assets require the Pixi Board desktop app to be running with the target project open.
canvas.create_nodes creates nodes from local source files, except kind: "generating" which creates a lightweight placeholder without a path. For text, Markdown, or HTML nodes, write the content to a .txt, .md, or .html file first and pass that file path. Do not pass x or y; the desktop canvas chooses placement and returns the created node coordinates.
Mivo
Mivo generation tools are provided by pixi-board-plugin-mivo. They create generating nodes, submit requests directly to the Mivo API, read results through SSE with polling fallback, download results by file id, and install them into the generating nodes. The current batch tools are mivo.create_gpt_images, mivo.create_nano_images, mivo.create_kling_videos, and mivo.create_seedance_videos; each accepts projectRoot plus a payloads array and submits requests 5 seconds apart by default.
Set MIVO_API_KEY in envByPlugin["pixi-board-plugin-mivo"], or save it from the desktop plugin manager. MIVO_API_BASE is optional and defaults to production.
