CyberBrick について
CyberBrickは、Chrome DevTools Protocol経由でBambu Lab CyberBrickデスクトップアプリを操作するMCPサーバーです。接続計画からファームウェア設定、書き込みまでのデバイス設定に対応し、指定された破壊的操作には明示的な確認を求めます。
主な機能
- 01デバイス接続の計画
- 02デバイスと接続状態の確認
- 03ファームウェア設定の編集
- 04CyberBrickプロジェクトの管理
- 05ファームウェアと設定の書き込み
- 06アプリログとウィンドウの確認
活用シーン
- 01接続前にデバイスを確認
- 02デバイス用のファームウェア設定を準備
- 03CyberBrickプロジェクトを作成またはインポート
- 04明示的な確認後にファームウェアを書き込み
MCP 対応
CyberBrickアプリのAPIを呼び出すツールをMCPクライアントに提供します。stdioサーバーはChrome DevTools Protocol経由でデスクトップアプリに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y cyberbrick-mcpCB_CDP_HOSTHost of the CyberBrick app's CDP endpoint (default 127.0.0.1)CB_CDP_PORTPort of the CyberBrick app's CDP endpoint (default 9223)CB_APP_BINARYCyberBrick executable that cb_launch starts (default /Applications/CyberBrick.app/Contents/MacOS/CyberBrick)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
41掲載時のツール一覧 · 5 日前に更新
このツールにパラメーターはありません。
詳細
cyberbrick-mcp
English | 简体中文
Chrome DevTools Protocol 経由で Bambu Lab CyberBrick デスクトップアプリ(Electron)を操作する MCP サーバーです。
デバイスのセットアップワークフロー全体を網羅しています:ハードウェア接続の計画 → ファームウェアの作成 → 書き込み。
ツール(41)
このサーバーは CyberBrick アプリの薄いパススルー層です。各ツールはアプリ独自の API(ストアアクション/デバイスメソッド)を呼び出し、即時に実行します。例外として、
flash_mpy、flash_firmware、およびhardwareMappingsを指定したflash_config(先にファームウェアをアップグレードします)ではconfirm: trueが必要です。これはユーザーが明示的に同意した後にのみ設定してください。デバイスへの書き込み操作では、targetがデバイス 1 台だけに正確に一致しない場合、呼び出しは拒否されます。
読み取り専用/プローブ(readOnlyHint: true)
- インフラストラクチャ:
cb_health、app_logs(アプリのコンソールログ。アップグレードやペアリングなど、時間のかかる処理の追跡に使用) - デバイス:
device_list、device_detail、board_info、device_status、device_config_get、device_config_block、device_config_read(全データの読み戻し+MD5)、device_ble_state(ライブ GATT/connectionCount の状態)、device_pool_state、device_request - 接続計画:
connect_scan_ports - 書き込み前の確認:
flash_check(hardwareMappingsを指定した書き込みでアップグレードされるファームウェア/MPY/ローダーを確認) - ファームウェアの読み取り:
firmware_config_get、firmware_edit_actions(全 60 アクションの意味に関するパラメーターのドキュメント) - プロジェクトの読み取り:
project_state(ページ認識+段階的開示のためのnextTools)、project_list、project_export
書き込み/フラッシュ(直接実行、状態を変更)
- 起動:
cb_launch(アプリがデバッグポートなしで実行中の場合、kill_existing: trueのときに限り終了します) - 接続:
connect_bluetooth、connect_serial、device_ble_heal(NaN の connectionCount を修復し、再起動せずに再接続できるようにします) - ファームウェアの作成:
firmware_config_set、firmware_config_edit、firmware_config_reset、firmware_config_load_template(組み込みテンプレートをエディターに読み込みます) - フラッシュ:
flash_config(デフォルトではSET_DEVICE_CONFIGファイルプロトコルを使用します。単一のレシーバーで動作し、新しいプロジェクトは作成しません)、flash_mpy(destructiveHint: true)、flash_firmware(destructiveHint: true)、flash_test - プロジェクト管理:
project_create(組み込みテンプレート 6 種)、project_import、project_rename、project_delete(destructiveHint: true)、project_load、project_save、project_open_editor - ウィンドウ:
window_list(読み取り専用)、window_close、window_close_others
検証スクリプト
- ユニットテスト(アプリやハードウェアは不要):
npm test - リリースバージョンの確認:
node scripts/check_release.mjs [vX.Y.Z] - 読み取り専用パス:
node scripts/verify_readonly.mjs - サーバーとツールの登録:
node scripts/mcp_list.mjs - ローカルスモークテスト(アプリの実行が必要):
node scripts/smoke.js - プロジェクト管理スモークテスト(作成 → 名前変更 → エクスポート → インポート → 読み込み → 保存 → 削除):
node scripts/smoke_project.mjs - プロジェクト管理 MCP E2E:
node scripts/mcp_e2e_project.mjs - RC カーのエンドツーエンド例(送信機+受信機のマッピング → 保存 → 読み戻しのアサーション → エクスポート。
--flashを指定するとフラッシュと LED テストを追加):node scripts/demo_rc_car.mjs - 任意のツールを呼び出すアドホック実行:
node scripts/mcp_call.mjs <tool> '<json>' [...] - テンプレートデータの再抽出(アプリのアップグレード後):
python3 scripts/extract_templates.py
実行
Node.js 18 以降と、同じマシン上の CyberBrick デスクトップアプリが必要です。
npm からインストールする場合の MCP クライアント設定(JSON):
{
"command": "npx",
"args": ["-y", "cyberbrick-mcp"]
}
ローカルのチェックアウトから実行する場合:
npm install
node src/server.js # stdio MCP server
CDP ポート
デフォルトは 127.0.0.1:9223(一般的な 9222 は使用しません)です。CB_CDP_HOST/CB_CDP_PORT で上書きできます。cb_launch はデフォルトで /Applications/CyberBrick.app/Contents/MacOS/CyberBrick を起動します。CB_APP_BINARY で上書きできます。
安全上のルール
- 認証トークン、秘密鍵、AES キーを読み取ったりエクスポートしたりすることはありません(
connection.jsのsanitizeがキー名に基づいてフィルタリングします)。 - 破壊的なツール(
flash_mpy、flash_firmware)にはdestructiveHintが設定されており、confirm: trueが必要です。エージェントはまずユーザーに影響(ボードへの書き込み/再起動/動作不能になる可能性)を説明し、同意を得る必要があります。 device_requestで許可されているのは読み取り専用メソッドのみです(読み取り専用許可リストにあるコマンドのisInLoader、getDeviceById、sendGetMessage)。cb_launchはデフォルトでは実行中のアプリを終了しません(未保存の作業が失われるため)。終了するには、明示的にkill_existing: trueを指定する必要があります。- 意図的に公開していない機能:BIND_DEVICE、SET_PRIVATE_KEY、証明書関連のフロー、PIN 関連のフロー(
src/core/devices.jsのALLOWED_COMMANDSを参照)。
リリース
CI(.github/workflows/ci.yml)は、main へのプッシュおよびすべての PR で実行されます。Node 18/20/22/24 でのテスト、サーバーの起動チェック、バージョンチェック、npm pack --dry-run を行います。
vX.Y.Z タグをプッシュすると、.github/workflows/release.yml が実行されます。検証 → npm への公開(プロベナンス付き) → MCP Registry への server.json の公開 → CHANGELOG の該当セクションから GitHub Release を作成します。バージョンがすでに公開済みの場合、各ステップはスキップされるため、失敗した実行はそのまま再実行できます。
package.json/package-lock.jsonのバージョン(npm version X.Y.Z --no-git-tag-version)、server.json(2 つのversionフィールド)およびsrc/server.jsのバージョンを更新します。CHANGELOG.mdに## [X.Y.Z] - YYYY-MM-DDセクションを追加します。node scripts/check_release.mjs vX.Y.Zを実行します。成功する必要があります。- コミットし、
git tag vX.Y.Z && git push origin main vX.Y.Zを実行します。
サフィックス付きのタグ(v1.0.0-rc.1)は npm の next dist-tag で公開され、プレリリースとしてマークされます。
初回のみ必要な設定:
- npm:npmjs.com で、このパッケージに信頼済みパブリッシャーを追加します(GitHub Actions、ワークフロー
release.yml、環境release)。パッケージが存在するまでは信頼済みパブリッシングを設定できないため、最初のリリースに限り、手動で一度公開するか、NPM_TOKENリポジトリシークレット(npm の自動化トークン)を追加してください。信頼済みパブリッシングが有効になったら、シークレットを削除します。 - MCP Registry:設定は不要です。ワークフローは GitHub OIDC でサインインします。これは、実行元リポジトリの
io.github.<owner>/名前空間で有効です。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。