mcpField
B
Bambu Studio (unofficial)

Bambu Studio (unofficial)

ローカル
github.com/danielefinocchiaroその他1今日更新

Bambu Studio (unofficial) について

Bambu Studio (unofficial) は、Bambu Lab プリンターの利用者向けの MCP サーバーです。インストール済みの Bambu Studio を使ってプロジェクトを作成・編集・スライス・確認し、ローカルネットワーク上のプリンター状態も読み取ります。キャリブレーションやリスク確認、Bambu Studio への印刷引き継ぎにも対応します。

主な機能

  1. 013MF プロジェクトの作成と編集
  2. 02スライスと印刷リスクの確認
  3. 03キャリブレーションテストとフィラメントプリセットの作成
  4. 04プリンター状態とカメラ画像の取得
  5. 05印刷ジョブを Bambu Studio に引き継ぎ

活用シーン

  1. 01マルチカラー造形に文字やロゴを追加
  2. 02印刷前に部品の脱落リスクを確認
  3. 03フィラメントを調整してプリセットを保存
  4. 04失敗した部品だけの再印刷プロジェクトを作成

MCP 対応

stdio 経由でツールを提供する MCP サーバーで、ローカルサーバーを実行できる MCP クライアントから利用できます。プロジェクト編集、スライス、キャリブレーション、プリンター状態の取得、印刷の引き継ぎを行います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"danielefinocchiaro-unofficial-bambu": {
"command": "uvx",
"args": [
"unofficial-bambu-mcp"
],
"env": {
"UBMCP_DIR": "<UBMCP_DIR>",
"BAMBU_STUDIO_EXE": "<BAMBU_STUDIO_EXE>",
"BAMBU_PRINTER_IP": "<BAMBU_PRINTER_IP>"
}
}
}
}
起動コマンドuvx unofficial-bambu-mcp
設定が必要な環境変数
UBMCP_DIRWhere projects, sliced files and print files are saved (default ~/Documents/unofficial-bambu-mcp)
BAMBU_STUDIO_EXEPath of the Bambu Studio executable, if it is not found automatically
BAMBU_PRINTER_IPPrinter IP address, to skip the search on the local network

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiunofficial-bambu-mcp0.3.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

unofficial-bambu-mcp

ci pypi python license

非公式のコミュニティプロジェクトです。 Bambu Lab とは提携しておらず、承認やサポートも受けていません。 「Bambu Lab」「Bambu Studio」「Bambu Connect」「Bambu Handy」は、それぞれの所有者の商標です。

MCP サーバーです。AI アシスタント(Claude Code、Claude Desktop、その他の MCP クライアント)が、すでにインストールされている公式の Bambu Studio を使って、Bambu Studio プロジェクトの作成、編集、スライス、確認、キャリブレーションを行い、ローカルネットワーク上のプリンターの状態を読み取れます。

話しかけるだけで、スライサーの作業を実行します。

  • 「新しい P1S プロジェクトを作成してください。20 mm の立方体と、黒い 2 mm のタグに白で「DANI」と書いたものを作ります。」
  • 「~/Downloads/Gnome 3 Color.3mf を開いて、ノームを 2 体追加したプレートを作り、それを A1 mini 用に変換してください。」
  • 「AMS スロット 2 に eSUN PLA Basic が入っています。これ用のプリセットと、キャリブレーション用のテストプリントを作成してください。」
  • 「この 20 時間かかるプレートを印刷する前に、どのパーツが剥がれそうか教えてください。」
  • 「レイヤー 4 でピンが外れたので、その印刷をスキップしました。そのピンだけをブリム付きで再印刷するプロジェクトを作ってください。」
  • 「印刷の進み具合はどうですか? どのスプールからフィラメントを送っていますか?」

セッションの様子:ゼロからのプロジェクト作成、印刷リスクの修正、スライス、温度タワー、印刷ファイル

実際のセッションを早送りしたものです。すべてのツール呼び出し、結果、画像は MCP 経由でサーバーから取得したもので、デモ用のリクエストのみ記述しています(scripts/make_demo.py)。

できること

領域できること
プロジェクトプロジェクトを作成するか、Bambu Studio(2.x および以前の 1.6/1.7 ファイル)で保存した任意の .3mf、または MakerWorld/Printables からダウンロードした任意の .3mf を開きます。塗装した色、モディファイアー、オブジェクトごとの設定、インスタンス、プレートが保持されます。上書きすることなく保存できます。
プリンターBambu Studio 2.8 の Bambu Lab プリンター全 14 機種を、プロジェクト、配置、スライス、印刷ファイルまで一貫してテスト済みです。A1 mini、A1、A2L、P1P、P1S、P2S、X1、X1 Carbon、X1E、および2 ノズル搭載の H2D、H2D Pro、H2C、X2D(Bambu Studio と同様に、フィラメントはノズルに自動で割り当てられます)。プリンターを切り替えると、オブジェクトは新しいベッドに合わせて再配置されます。新しいプロジェクトでは、そのプリンター用に Bambu Studio で選択したビルドプレートが使用されます。
フィラメントプリセットと色を含む AMS スロット。独自のユーザープリセットも含まれます。use_ams_filaments は、現在 AMS にセットされているものを使用します。
プレートとオブジェクトSTL、OBJ、3MF のインポート。ボックス、円柱、円錐、球体、およびテキスト(別の色のベース付き)。移動、回転、拡大縮小、ミラー、平面に配置、自動方向設定(サポートを最小限にし、ベッドに収まるように配置)、複製、プレートを複製品で埋める、オブジェクトまたはパーツへの分割、複数オブジェクトの結合、塗装した色を保持したメッシュブーリアン演算(穴、和集合、積集合)、オブジェクトまたはパーツごとのフィラメント、オブジェクトごとの設定、閉じたソリッドのチェック。作業中もオブジェクト ID は変わりません。
配置Bambu Studio の配置機能は凸包を使いますが、arrange は上から見た実際の輪郭(ブリムとブリムの耳を含む)を使い、形状を入れ子にして配置します。間隔、回転ステップ、プレートごとの材料の統一、キャリブレーションコーナー、Y 軸への整列、プライムタワー用コーナーの確保に対応します。対象は 1 枚のプレート、選択したオブジェクト、またはすべてのオブジェクトです。「N 枚のプレートに配置」は均等配置または最少枚数で行い、収まらない場合は何も移動せず、残ったものを知らせます。
カット任意の平面で cut_object を実行できます。Bambu Studio の Cut ツールのようにコネクターを追加できます。プラグ(クリアランスのあるペグと穴)、ダウエル(両方のパーツに穴を開け、別体のピンを使用)、またはダブテールに対応します。丸型、角型、六角形、ストレートまたはテーパー形状を選べます。配置は自動、または指定した位置にでき、パーツの薄い箇所では浅く作られます。分割したパーツは印刷できるように配置され、ペグは常に上を向きます。
モディファイアーボックス型または丸型のパーツに対応します。独自の設定を持つモディファイアー(「上部 5 mm をインフィル 100%にする」など)、負のパーツ(磁石やネジ用の穴)、サポートブロッカー、サポートエンフォーサーを使用できます。
設定Bambu Studio の任意の設定を読み取り、変更できます。該当する場合はフィラメントスロットごとに設定できます。値を適用できない場合(例:テクスチャードプレート用の温度をスムーズプレートに設定する場合)は警告が表示されます。
プリセットプロジェクトの変更を Bambu Studio のユーザープリセットとして保存できます。フィラメント(save_filament_preset)、プロセス、プリンターに対応します。また、プリセットを直接変更(edit_preset)、一覧表示、名前変更、削除できます。変更のたびにバックアップコピーが作成されます。値は Bambu Studio と同じ方法で検証および書き込みが行われます(該当する場合はノズルのバリエーションごとに 1 つ)。変更には Bambu Studio のクラウド同期用のタイムスタンプが付与されます。Bambu クラウドにあるプリセットは Bambu Studio からのみ削除でき、その方法が回答に記載されます。
テキストとロゴadd_relief:オブジェクトの任意の面にテキストまたはSVG ロゴを追加し、浮き出させる(好みに応じて別の色にすることも可能)か、彫り込めます。曲面にも沿わせることができ、下の面を細かいグリッドで測定して形状をその面に巻き付けるため、面に沿ったサイズが保たれます。add_shape('svg'):別の色のベース上に、オブジェクトとしてロゴを追加します。SVG のパス、シェイプ、変換、塗りつぶしルール、ストロークを読み取ります。
測定measure_object:サイズと配置、各パーツの体積と表面積、ベッド上の面積、プリント・イン・プレースモデルのパーツ間のクリアランス、ノズルの線幅より薄い壁(場所と高さ)、任意の高さでの断面を測定します。バーの長さと厚み、穴の幅も確認できます。measure_between:2 つのオブジェクトまたはパーツ間の隙間、中心、重なりを測定します。高密度メッシュは 0.005 mm 以内の精度でコピー上で測定します(240 万個の三角形を約 9 秒で処理)。
高さ範囲とプレートset_height_range:Bambu Studio の高さ範囲モディファイアーと同様に、オブジェクトの高さ帯に設定を適用します。底部をインフィル 100%にする、細部の部分をより細かいレイヤーにする(可変レイヤー高さ)、高さ帯に別のフィラメントを使う(高さごとの色分け)などが可能です。開いたファイルの可変レイヤー高さと高さ範囲は保持されます。set_plate_settings:プレートごとのビルドプレート、印刷順(オブジェクトごと)、初回レイヤーのフィラメント順序、スパイラルベース、プライムタワーの位置を設定します。
塗装paint_object:高さ帯および/または特定の方向を向いた面(上面、側面、オーバーハングなど)に、色、サポート(またはサポートなし)、シーム、ファジースキンを鋭いエッジで指定できます。スライス済み G-code で確認済みです。色の帯ではその端でフィラメントが切り替わり、塗装した箇所にサポートが表示されます。
パージ量get_purge_volumes/set_purge_volumes:Bambu Studio のダイアログと同様に、スロット間のパージ量と倍率を設定します。開いたファイル内の値は保持されます。
スライスBambu Studio のコマンドラインを使用します。プレートごとに、時間、フィラメントごとのグラム数とコスト、フィラメント変更、ポーズ、レイヤー、警告を表示します。空のプレートはスキップされます。
プレビュープレートの画像(アイソメトリックまたは上面、ズーム、塗装した色、オブジェクトラベル)と、任意のスライス済みレイヤーの画像を表示し、アシスタントが作業結果を確認できます。
印刷リスクcheck_print_risks:背が高く細いパーツ、ブリムなしではごく小さな接地面または細い接地面で立つパーツ、ビルドプレートに適さないフィラメント、長いプレートを共有する背の高いパーツ、接合部を溶着させてしまうプリント・イン・プレースモデルへの全面ブリムをチェックします。
ブリムの耳add_brim_ears:プリント・イン・プレースモデルや可動モデルの細い先端(指、つま先)だけに小さな丸いブリムを追加します。接合部の隙間や他のパーツを避けて自動配置するか、位置を指定できます。Bambu Studio の塗装ブリムに対応し、スライス済み初回レイヤーで確認します。
再印刷reprint_objects:失敗したパーツのみを含む新しいプロジェクトを、同じ設定とブリムで作成します。
キャリブレーション任意のフィラメントで、温度タワー、流量テスト(パス 1 および 2)、圧力アドバンス・タワー、最大体積速度テスト、リトラクションテスト、VFA テスト(壁の速度)、初回レイヤーテストを実行できます。結果はBambu Studio のフィラメントプリセットとして保存できます。新しいフィラメントには、Bambu Studio のフィラメントを作成と同様に独自の ID が割り当てられ、AMS スロットに選択できるようになります。後で更新しても、その ID は保持されます。
レイヤーアクション高さを指定して一時停止(磁石、ナット用)、フィラメント変更、または任意の G-code を実行できます。
印刷send_to_printer はプレートの印刷ファイルを作成し、印刷準備ができた状態でBambu Studio(またはBambu Connect)で開きます。AMS の割り当てを確認して[印刷]を押します。
開発者モード(LAN ファーム)開発者モードを有効にした LAN 専用モードのプリンターが対象です。このモードでは Bambu のファームウェアが他のプログラムからのコマンドを受け付けます。send_to_printer(via='lan') はプレートをアップロードして印刷を開始します。skip_objects は実行中の印刷でパーツをスキップし、ams_load/ams_unload はフィラメントを移動します。いずれも最初に確認を求めます。初回の呼び出しでは何も送信せず、確認用コードを提示します。通常のクラウドモードではプリンターがこれらのコマンドを拒否し、その旨が回答に表示されます。
プリンターの状態printer_status(読み取り専用、ローカルネットワーク):状態、進捗、温度、湿度を含む AMS トレイ、スキップされたオブジェクト、警告(不明なスプールからのフィラメント供給、長時間印刷時のスポーツ速度、古いと思われる測定値)を表示します。
カメラと SD カードprinter_camera:現在のプレートの画像を表示し、アシスタントが印刷の進行状況を確認できます。printer_files/download_printer_file:タイムラプス(最終フレームを含む)および過去の印刷ファイルを取得します。delete_printer_files:SD カードの空き容量を増やします。削除は正確なリストを確認してからのみ行われます。クラウドモードでも動作します。
全 87 個のツールとそのパラメーター:docs/TOOLS.md。

テスト環境

実機:通常のクラウドモードで、macOS、Bambu Studio 2.8.2、AMS ユニットを 2 台搭載した P1Sを使用しました。

  • 実際の MCP クライアントから、ゼロから作成したプロジェクトと MakerWorld/Printables からダウンロードしたプロジェクト(6 色で塗装したモデル、複数パーツのアセンブリ、3 プレートのプロジェクト、Bambu Studio 1.6 および 1.7 のファイル)で、すべてのツールをテストしました。
  • 2 種類のサードパーティ製フィラメント(eSUN PLA Basic の黒と白)の温度タワーとフローテストを印刷しました。プリセットはサーバー経由で作成および調整し、Bambu Studio への印刷ジョブの引き渡しと、印刷中のライブステータスも確認しました。

圧力アドバンスタワー、最大体積速度テスト、リトラクションテストはスライス時に確認しています(G-code を検査)が、まだ印刷していません。

Windows および Linux:mainへの変更ごとに、CI が Bambu Studio 2.8.2(Windows ではポータブル ZIP、Debian 13 では AppImage)をインストールし、スライスと印刷ファイルを含むテストスイート全体に加え、スモークテストを実行します。ユニットテストは Python 3.10 および 3.13 で Windows、macOS、Linux 上で実行します。Linux では AppImage がシステムの FFmpeg 7 と WebKitGTK 4.1 を使用します(Debian 13、Ubuntu 24.10 以降)。Bambu Studio が別の場所にある場合は、BAMBU_STUDIO_EXEを設定してください。

プリンター:Bambu Studio 2.8 対応の Bambu Lab プリンター全 14 機種で、新しいプロジェクトから印刷ファイルの作成まで MCP 経由で確認しています(A1 mini、A1、A2L、P1P、P1S、P2S、X1、X1 Carbon、X1E、H2S、H2C、H2D、H2D Pro、X2D)。印刷まで行ったのは P1S のみです。Developer Mode ツールはクラウドモードのプリンターに対して確認しました(正しい応答で拒否されました)が、Developer Mode で印刷を開始したことはありません。

印刷とプリンターについて

Bambu のファームウェア(2025 年以降)は、プリンターがDeveloper Mode を有効にした LAN 専用モードの場合に限り、他のプログラムからのコマンドを受け付けます。このモードではクラウドと Bambu Handy が無効になります。通常のクラウドモードではコマンドが拒否されるため、このサーバーでは次の操作を行います。

  • プリンターのステータスを読み取ります(クラウドモードで許可)。Bambu Studio にすでに保存されている LAN アクセスコードを使用します。
  • 印刷ジョブを Bambu Studio または Bambu Connect に引き渡します。そこで Print を押してください。
  • クラウドモードでは、印刷の開始、AMS スロットの設定、オブジェクトのスキップは行いません。これらの操作は Bambu Studio、Bambu Handy、またはプリンター本体で行ってください。Developer Mode を有効にした LAN 専用モードのプリンター(プリントファーム)では実行できますが、必ず提示されたコードで確認してから行います(上記の Developer Mode の行を参照)。

詳しくはdocs/printing.mdをご覧ください。

クイックスタート

必要なもの:uv と Bambu Studio。パッケージは PyPIから入手できます。初回はuvxがダウンロードします(Python 3.10 以降がない場合は Python もダウンロードするため、手動でクローンやインストールをする必要はありません)。

これは標準的な MCP サーバー(stdio)なので、ローカルサーバーを実行できる MCP クライアントならどれでも使用できます。Claude Code で開発およびテストしており、以下の他のクライアントも、それぞれの設定ファイルで同じコマンドを使用します。

Claude Code

claude mcp add bambu -- uvx unofficial-bambu-mcp

Claude Desktop(claude_desktop_config.json)、Cursor(~/.cursor/mcp.json)、Windsurf (~/.codeium/windsurf/mcp_config.json)、Gemini CLI(~/.gemini/settings.json):

{
  "mcpServers": {
    "bambu": {
      "command": "uvx",
      "args": ["unofficial-bambu-mcp"]
    }
  }
}

OpenAI Codex CLI(~/.codex/config.toml):

[mcp_servers.bambu]
command = "uvx"
args = ["unofficial-bambu-mcp"]

VS Code(GitHub Copilot エージェントモード、.vscode/mcp.json):

{ "servers": { "bambu": { "type": "stdio", "command": "uvx", "args": ["unofficial-bambu-mcp"] } } }
  • デスクトップアプリがuvxを見つけられない場合(spawn uvx ENOENT)、コマンドにはフルパスを指定してください。which uvxでパスを確認できます。
  • uvxはダウンロードしたバージョンを保持します。新しいリリースを取得するには、代わりにunofficial-bambu-mcp@latestと指定してください。
  • クローンから実行する場合(開発用):uv run --directory /path/to/unofficial-bambu-mcp unofficial-bambu-mcp。
  • ChatGPT アプリはリモート MCP サーバーにしか接続できません。このサーバーは Bambu Studio が動作しているコンピューター上で実行する必要があります。

次のように尋ねてください。「使用している Bambu Studio のバージョンと、利用可能なプリンターを教えてください。」

設定(任意)
変数デフォルト意味
UBMCP_DIR~/Documents/unofficial-bambu-mcpプロジェクト、スライス済みファイル、印刷ファイルの保存先
BAMBU_STUDIO_EXE自動検出Bambu Studio 実行ファイルのパス
BAMBU_STUDIO_DATA自動検出Bambu Studio のデータフォルダー(system/ と user/ を含む)
BAMBU_STUDIO_RESOURCES自動検出Bambu Studio のリソースフォルダー(profiles/ を含む)。特殊な Linux インストール向け
UBMCP_PRESET_BACKUPS~/.config/unofficial-bambu-mcp/preset-backupsユーザープリセットを変更、名前変更、または削除する前にコピーを保存する場所
BAMBU_PRINTER_SERIAL、BAMBU_PRINTER_ACCESS_CODE、BAMBU_PRINTER_IPBambu Studio から取得Bambu Studio から読み取りたくない場合に、printer_status で使用するプリンター

仕組み

Bambu Studio にはプラグインやスクリプト用の API がありません。このサーバーは プロジェクトファイル(.3mf、Bambu Studio が保存する形式)を操作し、スライスには Bambu Studio のコマンドラインを呼び出します。プリセットはインストール先から読み込み、アプリと同じ方法で展開します。詳しくはdocs/how-it-works.mdをご覧ください。

  • アプリと同期します。 open_in_bambu_studio はアプリでプロジェクトを表示します。そこで変更して保存すると、次のコマンド実行時にサーバーが再読み込みします(両方で変更があった場合は通知します)。
  • ファイルを安全に扱います。 上書きは一切行いません。保存時には -2、-3... を追加し、開いたファイルはコピーとして読み込みます。プリセットを変更、名前変更、または削除する際は、まずバックアップを作成します。
  • 軽量です。 numpy、shapely、manifold3d、fonttools、Pillow を使用します。このリポジトリには Bambu のプロファイルは含まれていません。プリセットはインストール先から取得します(サーバーに含まれるのは、プリセットで省略されている設定のデフォルト値のみです)。
  • プリンターの操作はお客様にお任せします。 LAN アクセスコードは必要に応じて Bambu Studio から読み取られ、どこにもコピーされません。SECURITY.mdをご覧ください。

ガイド

制限事項

  • 2 ノズルプリンター(H2D、H2C、X2D):フィラメントは Bambu Studio のデフォルトと同じように自動でノズルに割り当てられます。各フィラメントのノズルを手動で選択する機能はまだありません。
  • プリンターカメラは P1 および A1 プリンターで動作します(X1 と H2 は RTSP でストリーミングしますが、まだサポートされていません)。
  • 初層テストでは、塗装した色は保持されません。
  • Bambu Studio はプロジェクトを開くと再スライスします。アプリでスライス済みの印刷準備が整ったプレートを表示するには、send_to_printer を使用してください。

ロードマップ

  • メッシュの簡略化と修復、2 ノズルプリンターでの各フィラメントのノズル指定、X1/H2 カメラ
  • OrcaSlicer と Bambu Studio に提案する、スライサー内のライブブリッジ

貢献とサポート

バグ報告、アイデア、プルリクエスト:GitHub Issues。OS、Bambu Studio のバージョン、プリンター、可能であれば問題が発生する .3mf を含めてください。CONTRIBUTING.mdをご覧ください。

作者:Daniele Finocchiaro — danielefinocchiaro.com。印刷や時間の節約に役立った場合は、コーヒーをごちそうしてください。

ライセンス

このコードはMITライセンスです。Bambu Studio のプロファイルはインストール先から読み込まれ、再配布されません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。