Server data from the Official MCP Registry
Drive the Bambu Lab CyberBrick desktop app: connect devices, edit firmware config, flash.
About
Drive the Bambu Lab CyberBrick desktop app: connect devices, edit firmware config, flash.
Security Report
Valid MCP server (6 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
10 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: CB_CDP_HOST
Environment variable: CB_CDP_PORT
Environment variable: CB_APP_BINARY
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-jarvisluk-cyberbrick-mcp": {
"env": {
"CB_CDP_HOST": "your-cb-cdp-host-here",
"CB_CDP_PORT": "your-cb-cdp-port-here",
"CB_APP_BINARY": "your-cb-app-binary-here"
},
"args": [
"-y",
"cyberbrick-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
cyberbrick-mcp
English | 简体中文
An MCP server that drives the Bambu Lab CyberBrick desktop app (Electron) over the Chrome DevTools Protocol.
It covers the entire device setup workflow: hardware connection planning → firmware authoring → flashing.
Tools (41)
This server is a thin pass-through layer over the CyberBrick app: every tool calls the app's own API (store actions / device methods) and runs immediately. Exceptions:
flash_mpy,flash_firmware, andflash_configwithhardwareMappings(which upgrades firmware first) requireconfirm: true, set only after the user explicitly agrees. For device write operations,targetmust match exactly one device or the call is rejected.
Read-only / probing (readOnlyHint: true)
- Infrastructure:
cb_health,app_logs(app console logs, for following long flows such as upgrades or pairing) - Devices:
device_list,device_detail,board_info,device_status,device_config_get,device_config_block,device_config_read(full readback + MD5),device_ble_state(live GATT / connectionCount state),device_pool_state,device_request - Connection planning:
connect_scan_ports - Flash preflight:
flash_check(which firmware / MPY / loader upgrades ahardwareMappingsflash would trigger) - Firmware reading:
firmware_config_get,firmware_edit_actions(semantic parameter docs for all 60 actions) - Project reading:
project_state(page awareness +nextToolsprogressive disclosure),project_list,project_export
Write / flash (runs directly, MUTATING)
- Launch:
cb_launch(if the app is running without the debug port, it is only killed whenkill_existing: true) - Connection:
connect_bluetooth,connect_serial,device_ble_heal(repairs a NaN connectionCount so reconnects work without restarting) - Firmware authoring:
firmware_config_set,firmware_config_edit,firmware_config_reset,firmware_config_load_template(loads a built-in template into the editor) - Flashing:
flash_config(defaults to theSET_DEVICE_CONFIGfile protocol; works with a single receiver and creates no new project),flash_mpy(destructiveHint: true),flash_firmware(destructiveHint: true),flash_test - Project management:
project_create(6 built-in templates),project_import,project_rename,project_delete(destructiveHint: true),project_load,project_save,project_open_editor - Windows:
window_list(read-only),window_close,window_close_others
Verification scripts
- Unit tests (no app or hardware needed):
npm test - Release version check:
node scripts/check_release.mjs [vX.Y.Z] - Read-only path:
node scripts/verify_readonly.mjs - Server and tool registration:
node scripts/mcp_list.mjs - Local smoke test (needs the running app):
node scripts/smoke.js - Project management smoke test (create → rename → export → import → load → save → delete):
node scripts/smoke_project.mjs - Project management MCP E2E:
node scripts/mcp_e2e_project.mjs - RC car end-to-end example (sender + receiver mappings → save → readback assertions → export;
--flashadds flashing and an LED test):node scripts/demo_rc_car.mjs - Ad-hoc call to any tool:
node scripts/mcp_call.mjs <tool> '<json>' [...] - Re-extract template data (after an app upgrade):
python3 scripts/extract_templates.py
Running
Requires Node.js 18+ and the CyberBrick desktop app on the same machine.
MCP client config (JSON), installed from npm:
{
"command": "npx",
"args": ["-y", "cyberbrick-mcp"]
}
From a local checkout:
npm install
node src/server.js # stdio MCP server
CDP port
Defaults to 127.0.0.1:9223 (kept off the common 9222). Override with CB_CDP_HOST / CB_CDP_PORT. cb_launch starts /Applications/CyberBrick.app/Contents/MacOS/CyberBrick by default; override with CB_APP_BINARY.
Safety rules
- Never reads or exports auth tokens, private keys or AES keys (
sanitizeinconnection.jsfilters by key name). - Destructive tools (
flash_mpy,flash_firmware) carrydestructiveHintand requireconfirm: true— the agent must first explain the impact to the user (writes the board / reboots / can brick) and get consent. device_requestonly allows read-only methods (isInLoader,getDeviceById, andsendGetMessagefor commands on the read-only allowlist).cb_launchdoes not kill an already-running app by default (unsaved work would be lost); this needs an explicitkill_existing: true.- Deliberately not exposed: BIND_DEVICE, SET_PRIVATE_KEY, certificate flows, PIN flows (see
ALLOWED_COMMANDSinsrc/core/devices.js).
Releasing
CI (.github/workflows/ci.yml) runs on every push to main and every PR: tests on Node 18/20/22/24, a server start-up check, the version check and npm pack --dry-run.
Pushing a vX.Y.Z tag runs .github/workflows/release.yml: verify → publish to npm (with provenance) → publish server.json to the MCP Registry → create the GitHub Release from the CHANGELOG section. Each step skips itself if that version is already out, so a failed run can simply be re-run.
- Bump the version in
package.json/package-lock.json(npm version X.Y.Z --no-git-tag-version),server.json(bothversionfields) andsrc/server.js. - Add a
## [X.Y.Z] - YYYY-MM-DDsection toCHANGELOG.md. node scripts/check_release.mjs vX.Y.Z— must pass.- Commit, then
git tag vX.Y.Z && git push origin main vX.Y.Z.
A tag with a suffix (v1.0.0-rc.1) publishes to npm under the next dist-tag and is marked as a pre-release.
One-time setup:
- npm: on npmjs.com, add a trusted publisher for this package (GitHub Actions, workflow
release.yml, environmentrelease). Trusted publishing can only be configured once the package exists, so for the very first release either publish once by hand or add anNPM_TOKENrepository secret (an npm automation token); remove the secret once trusted publishing is on. - MCP Registry: nothing to configure. The workflow signs in with GitHub OIDC, which is valid for the
io.github.<owner>/namespace of the repository it runs in.
License
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
