mcpField
M
MCP 3D Printer Server

MCP 3D Printer Server

ローカル
github.com/DMontgomery40メディア・デザイン2571 日前に更新

MCP 3D Printer Server について

MCP 3D Printer Server は、OctoPrint、Klipper、Bambu Lab、Prusa、Duet、Repetier-Server、Creality などの 3D プリンターを AI クライアントに接続する MCP サーバーです。印刷状態の確認やジョブ操作、STL メッシュの編集、スライスに対応し、印刷開始前には人による確認を求めます。

主な機能

  1. 01PRINTER_TYPE で選択する 7 種類のプリンターバックエンド
  2. 02状態確認、ファイルアップロード、ジョブの開始と取消
  3. 03STL モデルのスケール、回転、移動、ベース延長
  4. 04G-code の最高温度チェックを含むスライス
  5. 05印刷と加熱の前に人の確認を求める安全ゲート
  6. 06任意の Blender MCP ブリッジ

活用シーン

  1. 01Bambu や Prusa プリンターの印刷進捗を確認
  2. 02STL モデルのサイズを変更してスライスし、印刷を送信
  3. 03Moonraker 経由で G-code をアップロードし、後から開始

MCP 対応

本プロジェクトは MCP サーバーとして、プリンターの状態、ファイル、アップロード、開始、取消、温度、STL 編集、スライスのツールとリソースを MCP クライアントに公開し、Blender MCP サーバーへモデルを転送できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

MCP 3D Printer Server

MCP 3D Printer Server — 会話から印刷。ドキュメントサイトを見る。

FULU Foundation、Louis Rossmann、そしてOrcaSlicer-bambulab の貢献者に感謝します。 消費者の所有権、オープンソースの開発者、修理する権利、そしてロックダウンされたソフトウェアによって正常に動作するハードウェアを劣化させられるべきではない所有者のために、声を上げてくださりありがとうございます。

このサーバーは、FULU OrcaSlicer-bambulab フォークを Bambu Lab プロジェクト向けの第一級スライサーとして扱います。セットアップと最新状況については、FULU ガイドをご覧ください。

npm バージョン ダウンロード数 ライセンス:GPL-2.0 Node.js 24 でテスト済み GitHub スター数

Claude、Codex、その他の MCP クライアントを、OctoPrint、Klipper(Moonraker)、Duet、Repetier-Server、Bambu Lab、PrusaLink または Prusa Connect、Creality を実行する 3D プリンターに接続する MCP サーバーです。エージェントは、ステータスの確認、ジョブのアップロードと開始、印刷のキャンセル、STL メッシュの編集、スライサーの実行を行い、オプションの Blender MCP ブリッジを通じてモデルを Blender に渡すことができます。

検索可能なセットアップガイド、プリンターごとの認証情報、スライス方法、ツールの全リファレンスについては、ドキュメントサイトをご覧ください。このサイトは、この README と docs フォルダーから生成されています。

Bambu Lab プリンターだけで印刷しますか? bambu-printer-mcp は、このプロジェクトを Bambu に特化してフォークしたもので、AMS の在庫管理とマッチング、カメラのスナップショット、X2D 対応、Claude Desktop 拡張機能など、Bambu 向けの機能をさらに備えています。

貢献者の協力を得て開発しています。修正、丁寧なバグ報告、実機でのテストを共有してくださる皆さんに感謝します!


エージェントをセットアップする

使用しているプリンターシステム(OctoPrint、Klipper、Bambu Lab、Prusa など)と、分かる場合はそのアドレスをエージェントに伝えてから、以下をコピーして貼り付けてください。

Install mcp-3d-printer-server in the agent/harness I'm using now.

Read https://github.com/DMontgomery40/mcp-3D-printer-server/blob/main/docs/SETUP.md
for the current setup instructions and supported printer backends.

Detect my OS and harness, then use its native MCP configuration or installer.
Preserve my existing servers and settings. Prefer the published npm package
(npx -y mcp-3d-printer-server, stdio); use Node.js 24 if a runtime is needed.

Ask which printer system I use and set PRINTER_TYPE to match. Never guess it.
Then ask only for the values that backend needs:
- octoprint: PRINTER_HOST, PRINTER_PORT if not 80, API_KEY
- klipper (Moonraker): PRINTER_HOST, PRINTER_PORT (usually 7125),
  API_KEY if Moonraker requires authentication
- duet: PRINTER_HOST, PRINTER_PORT if not 80
- repetier: PRINTER_HOST, PRINTER_PORT (usually 3344), API_KEY
- bambu: PRINTER_HOST, BAMBU_SERIAL, BAMBU_TOKEN (the LAN access code),
  and BAMBU_MODEL
- prusa: PRINTER_HOST (PrusaLink address or connect.prusa3d.com), API_KEY
- creality: PRINTER_HOST, PRINTER_PORT if not 80, API_KEY (bearer token)
For Bambu Lab, confirm the exact printer model with me; never guess it, and
explain any LAN Only Mode or Developer Mode setting I need to enable.
Keep keys, tokens, and access codes in local/private configuration; do not
repeat them in chat.

Bambu Lab has the most hardware testing. The other backends use each
system's HTTP API and rely on community reports, so tell me plainly if a
backend does not respond as the guide describes.

Offer these optional extras, and set them up only if I choose them:
- Blender MCP for model edits: uvx mcp-for-blender (formerly blender-mcp,
  which now installs it as a compatibility wrapper). Its Blender addon must be
  installed, enabled, and connected inside Blender.
- A slicer for slice_stl: look for an installed PrusaSlicer, OrcaSlicer,
  FULU OrcaSlicer-bambulab, Bambu Studio, or CuraEngine before suggesting
  an install.
Configure executables in the server environment. Do not enable
MCP_ALLOW_EXECUTABLE_ARG. Leave print confirmation on: do not set
PRINT_REQUIRE_CONFIRMATION=0 or BAMBU_REQUIRE_CONFIRMATION=0 unless I ask
for a headless setup.

Verify that the MCP initializes, lists its tools, and reads printer status.
Do not start a print or change printer settings, including temperatures, as
a setup test. Tell me what worked and whether I need to restart or reload
the harness.

セットアップリファレンス · プリンターバックエンド · スライスガイド · Blender MCP

エージェントへの依頼例

手順ではなく、求める結果を伝えてください。現在のモデルは複数のツールを連携して計画できます。ウェブを検索し、写真を読み取り、正確な寸法を調べ、モデルを編集して、スライスし、印刷します。どのプリンターやフィラメントを使うか、印刷を開始するかどうかなど、選択が重要な場合は、いくつか質問されることがあります。

このサーバーは、プリンター、スライス、メッシュのツールを提供します。ウェブ検索、写真、Blender での編集は、エージェントと、Blender MCP サーバーなどの他の接続機能が提供します。エージェントが読み取れる情報はプリンターシステムによって異なります。プリンターバックエンドをご覧ください。

どんなものからでも始められます
  • 「MakerWorldにあるこのスマホケースを、iPhone 17 Pro Maxに合うようにして印刷してください。」
    エージェントがAppleの寸法図を読み取り、新しいカメラとボタンに合わせてBlenderでケースを調整し、適合を確認して、検証済みのSTLを書き出し、お使いのプリンター用にスライスしてから、印刷を開始する前に確認を求めます。実際の動作を見る。
  • 「交換用の部品を印刷できますか?」 (折れたキャビネット用クリップの写真を添えて)
    はめ合いが重要な箇所の寸法を1〜2か所尋ね、部品をモデリングして、お好みのプリンターで印刷します。
  • 「このブラケットを20%大きくして、底面を厚くしてください。」
    STLを拡大して底面を延長し、スライスする前に新しい寸法を報告します。
どのプリンターの状態も確認できます
  • 「Bambuの印刷はどこまで進みましたか?」
    最新のステータスレポートを取得し、進捗状況、現在のレイヤー、残り時間をお知らせします。
  • 「Prusaの印刷はもう終わりましたか?」
    PrusaLink経由でプリンターの状態を読み取り、状態とジョブの進捗を報告します。
  • 「OctoPrintプリンターのベッドとノズルの温度は何度ですか?」
    現在の温度と目標温度など、OctoPrintのプリンター状態を読み取ります。
  • 「最初のレイヤーが定着しません。キャンセルしてください。」
    そのプリンターのバックエンド経由でキャンセルコマンドを送信し、続けてプリンターの状態を確認します。
スライスして印刷する
  • 「これをPETGで印刷してください。」 (STLを添えて)
    設定済みのPETGフィラメントプロファイルでスライスし、ジョブの最高温度を確認します。その後、サーバーが印刷開始前に確認を求めます。
  • 「昨夜スライスしたブラケットをBambuで印刷してください。」
    プラットフォーム上のモデル、ノズル、ベッドの種類、材料、温度をプリンターの現在の状態と照合し、アップロードしてジョブを開始する前に確認を求めます。
  • 「benchy.gcodeをKlipperプリンターに送信してください。ただし、まだ開始しないでください。」
    Moonraker経由でファイルをアップロードするので、後から印刷を開始できます。
まずはこちら

まずはこちら

やりたいこと次に読む項目
このMCPをエージェントに接続するセットアップの依頼文をコピー
エージェントで何ができるか確認するエージェントへの依頼例
プリンターの認証情報を確認するプリンターのバックエンド設定
手動、Docker、またはHTTPで設定するインストールと設定のリファレンス
エージェントからスライスする、またはスライスの問題を解決するスライスガイド
Bambu Labプリンターでオープンソースのスライスを使うFULUガイド
Blenderで部品をモデリングまたは調整するBlenderガイドおよびBlenderツール
リリースの変更点や貢献者のクレジットを確認する変更履歴、リリース、貢献者
新着情報 ## 新着情報

バージョンごとの変更については、変更履歴をご覧ください。次回リリースでは、印刷の安全ゲートをすべてのプリンターバックエンドに適用します。印刷開始と正の加熱コマンドのたびに人間が確認し、サーバーがGコード全体をハードウェアと材料の上限値に照らして確認します。また、解決済みのマシンプリセットとテンプレートレジストリを使ったBambu互換のCLIスライス、Blenderから検証済みのSTLを書き出すblender_mcp_export_stl、およびこのドキュメントサイトも追加されます。リリース1.2.9では、「Premature close」エラーで失敗していたBambu FTPSアップロードを修正し(#22)、標準のBlender MCP検出、転送、検証済みSTL編集を追加しました。また、直接印刷を開始する際にBambuプリンターのモデル指定を必須とし、各サーバーの一時ファイルを分離しました。これとは別に、#20と#21により、スライサーのパスやブリッジコマンドなど、呼び出しごとの実行ファイル指定には明示的なオプトインが必要になりました。

目次

目次

説明

説明

mcp-3d-printer-serverは、3Dプリンター向けのModel Context Protocolサーバーです。エージェントに、プリンター制御(状態、ファイル、アップロード、開始、キャンセル、温度)、STLメッシュツール、スライサーの自動化、Bambu Labプロジェクトの印刷機能、およびオプションでBlender MCPサーバーへのブリッジを提供します。PRINTER_TYPEでデフォルトのバックエンドを選択します。また、すべてのプリンターツールで呼び出しごとにtypeとhostを指定できるため、1つのサーバーから複数のプリンターにアクセスできます。

バックエンドPRINTER_TYPEテストの実績
Bambu Labbambu最も多くテスト済み。メンテナーによるハードウェアテストには、Bambu専用フォークと共有されたものも含まれます
OctoPrintoctoprintコミュニティから報告あり
Klipper (Moonraker)klipperMoonraker経由のCreality K1 Maxを含め、コミュニティから報告あり
PrusaLinkとPrusa Connectprusaコミュニティから報告あり
Duetduet実装済み。ハードウェアでの使用報告はまだありません
Repetier-Serverrepetier実装済み。ハードウェアでの使用報告はまだありません
Crealitycreality実装済み。ハードウェアでの使用報告はまだありません

各バックエンドが読み取るデータと送信するデータは異なります。正確なAPI呼び出し、認証情報、および関連する報告については、プリンターバックエンドのセットアップをご覧ください。

リソース使用量に関する注意。 STLツールはメッシュ全体をメモリに読み込みます。大きいファイルや複雑なファイル(約10 MB超)では、大量のメモリを使用することがあります。一般的な制限事項と注意点をご覧ください。

FULUとオープンソース印刷 ## FULU とオープンソース印刷

FULU OrcaSlicer-bambulab は、Bambu Lab プロジェクト向けの主要なスライサーです(SLICER_TYPE=orcaslicer-bambulab。エイリアスには fulu-orca と orca-studio があります)。また、PRINTER_TYPE=bambu が設定され、スライサーが設定されていない場合のデフォルトのスライサーです。slice_stl と print_3mf の自動スライスでは、このプロジェクトのコマンドラインを使用し、check_fulu_orca_setup でインストールとランタイムペイロードを検査します。

オプションの FULU BambuNetwork ブリッジは、独立したランタイムです。fulu_bambu_network_rpc でブリッジをプローブし、安全対策付きの RPC 呼び出しを送信できますが、サーバーが独自に印刷をローカル MQTT および FTPS 経由から BambuNetwork またはクラウド経由に切り替えることはありません。

プラットフォームごとのランタイム設定、ブリッジのプローブ、macOS と Windows での現在のテスト状況については、FULU ガイドをご覧ください。

機能

機能

  • PRINTER_TYPE で選択する 7 種類のプリンターバックエンド:OctoPrint、Klipper(Moonraker)、Duet、Repetier-Server、Bambu Lab、PrusaLink または Prusa Connect、Creality
  • 複数のプリンターを扱うための、呼び出しごとの type、host、port、api_key 引数
  • プリンターの状態とファイル一覧の取得、インラインコンテンツまたはローカルパスからの G-code アップロード、保存済みファイルの印刷開始、ジョブのキャンセル、ベッドまたはノズルの温度設定
  • STL ツール:寸法の確認、拡大・縮小、回転、平行移動、底面の拡張、頂点の結合、中央揃え、平置き、モデルの一部分の変形、複数アングルの SVG プレビューのレンダリング
  • すべてのバックエンドにおける印刷と加熱の安全ゲート:正確な G-code を検査し、すべてのヒーター目標温度がハードウェアと材料の上限値以下であることを確認し、プリンターの状態を確認したうえで、MCP エリシテーションを通じて人間の確認を求めます。ヒーターの停止とキャンセルにはゲートを適用しません
  • PrusaSlicer、Slic3r、OrcaSlicer、CuraEngine、FULU OrcaSlicer-bambulab、または Bambu Studio のコマンドラインによるスライス。G-code の最高温度チェックと、処理から印刷までを 1 回の呼び出しで行うパイプラインを備えています
  • Bambu 対応の CLI スライス:スライサーのインストールからモデルとノズルの正確なマシンプリセットを特定し、フィラメントスロットと色、配置オプション、ローカルテンプレートレジストリに対応しています
  • Bambu Lab プロジェクトの印刷:新しいプリンターレポートと照合してプレートを確認した後、スライス済みの .3mf を FTPS 経由でアップロードし、プレートの G-code パス、MD5、AMS マッピング、キャリブレーションフラグを指定して MQTT 経由で印刷を開始します。未スライスのプロジェクトは FULU OrcaSlicer-bambulab または Bambu Studio で自動スライスします
  • 印刷操作に必要な Bambu プリンターのモデル。未指定の場合は、MCP エリシテーションを通じて確認します
  • FULU OrcaSlicer-bambulab のセットアップ検査と、診断用の BambuNetwork ブリッジ RPC。生の印刷メソッドは拒否されます
  • オプションの Blender MCP ブリッジ:標準的な Blender MCP サーバーのツールを検出して呼び出しを転送し、名前を指定したシーンオブジェクトを検証済み STL にエクスポートし、検証済み STL の編集を実行します
  • スライサー、ブリッジ、Blender の実行ファイルは、呼び出しごとのセレクターを明示的に有効にしない限り、サーバー設定から取得します
  • プリンターの状態、ファイル、ファイル詳細の MCP リソース
  • トランスポート:stdio(デフォルト)と Streamable HTTP。Docker イメージも利用できます
利用可能なツール

利用可能なツール

STL 操作ツール
STL 操作ツール

すべての STL ツールは、メッシュ全体をメモリに読み込みます。モデルを変更するツールは、入力ファイル名に _scaled のような接尾辞を付けてサーバーの一時ディレクトリに新しいファイルを書き込み、そのパスを返します。入力ファイルは変更されません。

get_stl_info

STL ファイルを変更せずに検査します。バウンディングボックス、寸法、中心、頂点数、面数を返します。

{
  "stl_path": "/path/to/model.stl"
}
scale_stl

scale_factor でモデルを一様に拡大・縮小するか、scale_x、scale_y、scale_z で軸ごとに拡大・縮小します。いずれかの軸の値を指定した場合、指定されていない軸は 1.0 のままになります。

{
  "stl_path": "/path/to/model.stl",
  "scale_factor": 1.2
}
{
  "stl_path": "/path/to/model.stl",
  "scale_x": 1.2,
  "scale_y": 1.0,
  "scale_z": 1.5
}
rotate_stl

モデルを X、Y、Z 軸を中心に度単位で回転します。省略した軸は 0 がデフォルトです。

{
  "stl_path": "/path/to/model.stl",
  "rotate_x": 0,
  "rotate_y": 0,
  "rotate_z": 90
}
translate_stl

モデルを X、Y、Z 軸に沿ってミリメートル単位で移動します。省略した軸は 0 がデフォルトです。

{
  "stl_path": "/path/to/model.stl",
  "translate_x": 10,
  "translate_y": 5,
  "translate_z": 0
}
extend_stl_base

モデルの下にソリッドジオメトリを追加して、ベースを高く、広くします。extension_inches はインチ単位で、ミリメートルに変換されます(1 インチあたり 25.4 mm)。

{
  "stl_path": "/path/to/model.stl",
  "extension_inches": 0.25
}
merge_vertices

tolerance(ミリメートル単位、デフォルト 0.01)より近い頂点を結合します。これにより、小さな隙間をふさいでメッシュをわずかに簡略化できます。

{
  "stl_path": "/path/to/model.stl",
  "tolerance": 0.01
}
center_model

モデルを移動し、バウンディングボックスの中心が原点(0, 0, 0)に来るようにします。

{
  "stl_path": "/path/to/model.stl"
}
lay_flat

モデルの最大の平面を見つけ、その面が XY 平面(Z = 0)に接するようにモデルを回転します。明確に突出した平面があるモデルで最も効果を発揮します。

{
  "stl_path": "/path/to/model.stl"
}
modify_stl_section

モデルの一部分(バウンディングボックスを 3 等分した top、bottom、center のいずれか、または custom ボックス)に、拡大縮小、回転、平行移動を適用します。value_x、value_y、value_z は、transformation_type に応じて倍率、度数、またはミリメートル単位の値になります。

{
  "stl_path": "/path/to/model.stl",
  "section": "top",
  "transformation_type": "scale",
  "value_x": 1.5,
  "value_y": 1.5,
  "value_z": 1.5
}

custom セクションでは、6 つすべての境界値が必要です。

{
  "stl_path": "/path/to/model.stl",
  "section": "custom",
  "transformation_type": "rotate",
  "value_x": 0,
  "value_y": 0,
  "value_z": 45,
  "custom_min_x": -10,
  "custom_min_y": 0,
  "custom_min_z": -10,
  "custom_max_x": 10,
  "custom_max_y": 20,
  "custom_max_z": 10
}
generate_stl_visualization

モデルの正面、側面、上面、アイソメトリックビューを含む SVG をレンダリングします。width と height で各ビューのサイズをピクセル単位で指定します(デフォルトは 300)。

{
  "stl_path": "/path/to/model.stl",
  "width": 400,
  "height": 400
}

SVG は簡略化した模式図であり、フォトリアリスティックなレンダリングではありません。

プリンター制御ツール
プリンター制御ツール

すべてのプリンターツールで host、port、type、api_key を指定できます。また、Bambu プリンターでは bambu_serial と bambu_token も使用します。省略した値には、PRINTER_HOST、PRINTER_PORT、PRINTER_TYPE、API_KEY、BAMBU_SERIAL、BAMBU_TOKEN が使用されます。キーは呼び出し時に渡さず、サーバー設定に保持してください。

各呼び出しの動作はバックエンドによって異なります。正確な API ルートについては、プリンターバックエンドのセットアップを参照してください。

すべてのバックエンドで、印刷の開始と正の加熱コマンドは必ず安全ゲートを通過します。サーバーは実行を開始する正確な G-code を検査し、各ヒーターの目標温度がハードウェアと材料の上限を超えていないか確認し、プリンターが使用可能な状態であることを確かめたうえで、MCP elicitation を通じて人間に確認を求めます。ヒーターをオフにする操作(temperature: 0)と cancel_print は安全ゲートの対象外です。

get_printer_status

プリンターの現在の状態を読み取ります。応答にはバックエンド固有の状態データが含まれます。Bambu では温度、ジョブの状態、進捗、レイヤー数、残り時間、AMS データが返され、OctoPrint ではプリンターの状態と温度が返されます。Klipper では Moonraker ホストの状態のみが返されます。

{
  "type": "klipper",
  "host": "192.168.1.50",
  "port": "7125"
}
list_printer_files

プリンターまたはそのホストソフトウェアに保存されているファイルを一覧表示します。Bambu プリンターでは、cache/、timelapse/、logs/ ディレクトリが一覧表示されます。

{
  "type": "octoprint",
  "host": "192.168.1.100"
}
#### upload_gcode

G-code をプリンターにアップロードし、必要に応じて印刷を開始します。ローカルファイルには gcode_path を、内容(またはローカルパス)には gcode を渡します。filename のデフォルトは gcode_path のベース名です。印刷する場合は、開始されるファイルがアップロードしたものと完全に一致するよう、通常のファイル名を使用してください。

{
  "type": "klipper",
  "host": "192.168.1.50",
  "port": "7125",
  "gcode_path": "/path/to/benchy.gcode",
  "print": true,
  "material": "PETG"
}
  • print を指定しない場合、ファイルはアップロードされるだけで、内容の検査や印刷の開始は行われません。
  • print: true を指定すると、アップロードしたバイト列そのものを先に検査し(すべての S および R のヒーター目標値、ツールの変更、ハードウェアと素材の上限を確認します)、プリンターの状態を確認したうえで、印刷開始前に人間の確認を求めます。
  • 印刷には素材の指定が必要です。ファイル内のスライサーメタデータ(; filament_type = PLA)または material 引数で指定してください。ファイルの内容と矛盾する指定はできません。
  • Bambu プリンターでは、ファイルは FTPS 経由で cache/ に送信されます。印刷にはモデル(bambu_model または BAMBU_MODEL)も必要です。アップロード後の自動印刷に対応しているのは .gcode のみです。.3mf プロジェクトを印刷するには print_3mf を使用してください。
start_print

プリンターにすでに保存されている G-code ファイルの印刷を開始します。サーバーはそのファイルをダウンロードして検査し、プリンターの状態を確認して人間の確認を求めた後、検査済みの一意な名前のコピーを開始します。Bambu Lab、OctoPrint、Klipper(Moonraker)、Duet で動作します。Repetier、Prusa、Creality は検証済みのダウンロード方法がアダプターにないため、要求を拒否します。代わりに print: true を指定して upload_gcode を使用してください。

{
  "type": "octoprint",
  "host": "192.168.1.100",
  "filename": "benchy.gcode",
  "material": "PLA"
}

ファイルに filament_type メタデータがない場合は、material を渡してください。Bambu プリンターではモデルも必要です。また、対応しているのは .gcode ファイルのみです。ファイル名だけを指定した場合は、cache/ 内を検索します。

cancel_print

現在の印刷ジョブをキャンセルします。キャンセルに確認は不要で、開始待ちの検査済み印刷もキャンセルされます。一時停止または再開のツールはありません。キャンセルした印刷は再開できません。

{
  "type": "prusa",
  "host": "192.168.1.120"
}
set_printer_temperature

プリンターのコンポーネントの目標温度を設定します。bed または extruder を指定してください。Bambu では nozzle、tool、tool0 も指定できます。OctoPrint のノズル目標温度は tool0 に送信されます。

{
  "type": "klipper",
  "host": "192.168.1.50",
  "port": "7125",
  "component": "extruder",
  "temperature": 215,
  "material": "PLA"
}
  • temperature は 0 以上の有限数である必要があります。0 を指定するとヒーターがオフになり、確認は不要です。
  • 0 より大きい目標温度は、接続前に独立したハードウェア上限と素材の上限に照らして確認されます。プリンターが準備完了状態である必要があり、人間の確認も求められます。
  • 0 より大きいノズル加熱には、RFID のないスプールを含め、material(例:PLA、PETG、ABS)の指定が必要です。
  • Bambu プリンターで 0 より大きい温度に加熱する場合は、bambu_model(または BAMBU_MODEL)も必要です。ノズルを加熱する場合は nozzle_diameter(0.2、0.4、0.6、0.8。デフォルトは NOZZLE_DIAMETER、または 0.4)を使用します。どちらもプリンターの現在の状態に照らして確認されます。
Bambu 専用ツール
Bambu 専用ツール

これらのツールは PRINTER_TYPE=bambu(または type: "bambu")で動作します。Bambu Lab のセットアップの説明に従って、LAN Only Mode、シリアル番号、アクセスコード、モデルを設定してください。

print_3mf

スライス済みの .3mf プロジェクトを FTPS 経由で Bambu プリンターにアップロードし、プレートの G-code パス、その MD5、AMS マッピング、キャリブレーションフラグを含む MQTT project_file コマンドで印刷を開始します。bambu_model は必須です(または BAMBU_MODEL)。これが指定されていない場合、クライアントが対応していればサーバーが MCP エリシテーションで確認し、対応していなければエラーを返します。モデルを間違えると、ベッドがノズルに衝突するおそれがあります。

アップロード前に、サーバーは選択したプレートのプライベートコピーを検査します(モデル、ノズル、ベッドタイプ、材料、すべてのヒーター目標値)。これらをモデルごとのハードウェア上限、材料の上限値、そしてプリンターのモデル、シリアル番号、ノズル、状態、エラー、装填済みフィラメントを含む最新の MQTT レポートと照合します。その後、人による確認を行い、ディスパッチ前にレポートを再度確認します。

{
  "three_mf_path": "/path/to/bracket.gcode.3mf",
  "bambu_model": "p1s",
  "bed_type": "textured_plate",
  "use_ams": true,
  "ams_mapping": { "Generic PLA": 0 },
  "bed_leveling": true,
  "flow_calibration": true,
  "vibration_calibration": true,
  "layer_inspect": true,
  "timelapse": false
}
  • プロジェクトにプレートの G-code が含まれていない場合、サーバーは FULU OrcaSlicer-bambulab または Bambu Studio で自動スライスを試みます。スライスに失敗した場合、または選択したプレートに G-code がない場合、エラーで停止し、元のプロジェクトはアップロードされません。
  • ams_mapping は、値が AMS スロット番号であるオブジェクトです。省略した場合は、3MF に埋め込まれたマッピングが使用されます。マッピングがない場合、印刷は AMS を使わずに実行されます。use_ams: false は AMS を無効にします。
  • コマンドを送信した後、サーバーは最新のレポートを最大 15 秒間監視し(BAMBU_DISPATCH_CHECK_MS)、dispatch: "started" または "unconfirmed" を返します。ファームウェアがコマンドを拒否した場合(Developer Mode が無効でファームウェア 01.08.05 以降を使用している場合の HMS 0500-0500-0001-0007)、呼び出しは失敗し、その旨が通知されます。検証済みのファイルはプリンターのストレージに残ります。
  • nozzle_type(stainless_steel、hardened_steel、tungsten_carbide、brass)は、プロジェクトを自動スライスする必要がある場合に、取り付けられているノズルを設定します。ジョブのノズルタイプは、プリンターのレポートと一致している必要があります。
  • bed_type は textured_plate、cool_plate、engineering_plate、hot_plate のいずれかです(デフォルトは BED_TYPE、それ以外の場合は textured_plate)。プレートのベッドメタデータと一致する必要があります。そのため、別のプレート用にスライスされたファイルや、ベッドメタデータがないファイルは、bed_type が一致するまで拒否されます。
  • nozzle_diameter は 0.2、0.4、0.6、0.8 を受け付けます(デフォルトは NOZZLE_DIAMETER、それ以外の場合は 0.4)。
  • 省略した場合、キャリブレーションフラグはオン、タイムラプスはオフがデフォルトです。
  • layer_height、nozzle_temperature、bed_temperature、support_enabled は受け付けられますが、適用されません。これらの設定はスライス済みファイルに組み込まれています。スライサーで変更してください。
  • 成功応答は、コマンドが送信されたことを示すものであり、印刷が問題なく開始されたことを示すものではありません。プリンターの状態を確認してください。
check_fulu_orca_setup

FULU OrcaSlicer-bambulab のインストール状況を検査します。実行ファイル、プラットフォームランタイムのペイロード、インストールおよび検証コマンドを確認し、オプションで BambuNetwork ブリッジのハンドシェイクも検証します。パスのデフォルト値はサーバー環境に基づきます。詳しくはセットアップの確認を参照してください。

{
  "platform": "darwin",
  "run_bridge_probe": true
}

bridge_command、および run_bridge_probe: true を指定した場合の slicer_path、plugin_dir、runtime_dir には、MCP_ALLOW_EXECUTABLE_ARG=1 が必要です。

fulu_bambu_network_rpc

診断のために、FULU BambuNetwork のブリッジメソッドを 1 つ呼び出します。bridge.handshake、bridge.runtime_info、net.get_user_print_info などの読み取り専用メソッドは、デフォルトで許可されています。エージェントとセッションのセットアップメソッドを実行するには、allow_mutating_method: true が必要です。生の印刷メソッド(net.start_print など)、プリンターのメッセージ(net.send_message)、ファイル転送、未知のメソッドは、印刷の安全ゲートを迂回することになるため拒否されます。印刷には print_3mf を使用してください。bambu_model は情報提供のみを目的としています。ブリッジ RPCを参照してください。

{
  "method": "bridge.handshake"
}

ブリッジコマンドは FULU_BAMBU_BRIDGE_COMMAND から取得されます。呼び出しごとに bridge_command を指定するには、MCP_ALLOW_EXECUTABLE_ARG=1 が必要です。

スライスツール
スライスツール

スライサーの種類、プロファイル、トラブルシューティングについては、スライスガイドを参照してください。スライサーの GUI で自分でファイルをスライスし、その結果をアップロードする方法が最も確実です。

slice_stl

設定されたスライサーでSTLまたは3MFをスライスし、出力パスを返します。PrusaSlicer、Slic3r、汎用OrcaSlicer、CuraEngineではG-codeを、Bambu互換パスではスライス済みの.3mfを返します。

Bambu互換パスは、Bambu Studio、FULU OrcaSlicer-bambulab、および呼び出しでbambu_modelを渡した場合のOrcaSlicerで使用されます。

  • マシンプリセットは常にbambu_model(未指定の場合はBAMBU_MODEL。未設定なら入力を求めます)とnozzle_diameter(デフォルトはNOZZLE_DIAMETERまたは0.4)から決まります。選択したスライサーのインストール環境に、正確な<model> <diameter> nozzleプリセットが存在する必要があります。スライサーの実行前に、そのinheritsとincludeの連鎖が解決されます。
  • slicer_profile(またはSLICER_PROFILE)はプロセスプロファイル専用です。machine;process形式のリストは、指示とともに拒否されます。
  • インストールされているスライサーに該当するプリセットがあれば、スライスではp1s、p1p、p2s、x1c、x1e、a1、a1mini、h2d、h2s、h2cを受け付けます。印刷で受け付けるのは、引き続きBAMBU_MODELにある7つのモデルのみです。
  • 出力には、空でないMetadata/plate_<n>.gcodeが含まれている必要があります。失敗時は、スライサーの終了コードまたはシグナル、出力末尾、およびスライス固有のアドバイスを示して停止します。
{
  "stl_path": "/path/to/phone-case.stl",
  "slicer_type": "bambustudio",
  "bambu_model": "p1s",
  "nozzle_diameter": "0.4",
  "bed_type": "textured_plate",
  "load_filaments": "/path/to/filaments/tpu-95a-hf.json",
  "arrange": true,
  "orient": false
}

Bambu互換パスのオプション:

引数内容
bed_typeビルドプレート:textured_plate、cool_plate、engineering_plate、hot_plateのいずれか(デフォルトはBED_TYPEまたはtextured_plate)
nozzle_type装着されているノズル:stainless_steel、hardened_steel、tungsten_carbide、brassのいずれか(デフォルトはBAMBU_NOZZLE_TYPE。未設定の場合はプリセットの標準ノズル)。印刷では、プリンターから報告されたノズルと一致している必要があります
load_filamentsスロット順に指定するフィラメントプロファイルのJSONパス。区切り文字は;です。プロファイルを1つ指定するとすべてのスロットに適用されます。それ以外の場合はスロットごとに1つ指定します。filament_profileは別名です
load_filament_idsフィラメントをオブジェクトに割り当てる、カンマ区切りのフィラメントID(例:1,2,3,1)
filament_coloursフィラメントスロットごとに1つ指定する#RRGGBB。区切り文字は;です。デフォルトでは、入力3MFの色が使われ、次に各プロファイルの色が使われます
template_3mf_path、template_name、template_dir3MFまたはプロファイルのスライサー設定をプロセスプロファイルとして再利用します(デフォルト:BAMBU_TEMPLATE_3MF_PATH、BAMBU_TEMPLATE_DIR)。明示的に指定したslicer_profileが優先されます
uptodate、min_save、skip_modified_gcodes3MFプリセットをインストール済みスライサーに合わせて更新する、容量の小さい3MFを書き出す、または入力3MFに埋め込まれたカスタムG-codeを無視する
orient、arrange、ensure_on_bed、repetitions、clone_objects、skip_objects、slice_plate配置:自動方向調整、自動配置(STL入力はデフォルトで配置されます。3MFの配置を維持するにはfalseを設定します)、浮いているモデルをベッドに配置する、コピー数(OrcaSlicerは--clone-objectsでSTLをコピーします)、読み込んだモデルのクローン総数、スキップするオブジェクト、スライスするプレート(0 = すべて)
scale、rotate、rotate_x、rotate_yスライス前の変換(一様スケール、回転は度数)。OrcaSlicerへのSTL入力では、CLIのクラッシュを避けるため、サーバーがOrcaの順序でメッシュのコピーに変換を適用します。OrcaSlicer CLIの制限を参照してください
enable_timelapse、allow_mix_tempタイムラプス用の退避動作を挿入する。同じプレート上で、必要な温度が異なるフィラメントの使用を許可する

汎用スライサーでは、それぞれのプロファイル形式が使われます。PrusaSlicerとSlic3rはエクスポートした設定を1つ読み込み、汎用OrcaSlicerはmachine.json;process.jsonを受け取り、必要に応じてその後に|filament.jsonを指定します。slicer_type、slicer_profile、filament_profileのデフォルト値には、それぞれSLICER_TYPE、SLICER_PROFILE、FILAMENT_PROFILEが使われます。スライサー実行ファイルはSLICER_PATHから取得されます。呼び出しごとのslicer_pathには、MCP_ALLOW_EXECUTABLE_ARG=1が必要です。スライスガイドを参照してください。

slice_with_template

ローカルのテンプレートレジストリにある名前付きテンプレートを使って、STL または 3MF をスライスします。テンプレートからプロセス設定が適用されますが、マシンのプリセットは引き続き bambu_model と nozzle_diameter で指定します。slice_stl と同じ引数を受け取り、呼び出しで slicer_profile を明示すると、テンプレートより優先されます。

{
  "stl_path": "/path/to/bracket.stl",
  "template_name": "p1s-petg-strong",
  "bambu_model": "p1s"
}
list_templates

レジストリディレクトリ、BAMBU_TEMPLATE_DIR(デフォルトは ~/Sync/bambu/templates)、または template_dir 内に保存されたスライス用テンプレート(.3mf、.json、.config)を一覧表示します。

{}
save_template

ローカルの .3mf、.json、または .config ファイルをテンプレートレジストリにコピーします。template_name のデフォルト値は、拡張子を除いたコピー元のファイル名です。

{
  "source_path": "/path/to/p1s-petg-strong.3mf",
  "template_name": "p1s-petg-strong"
}
get_slice_settings

スライスを行わずに、3MF、展開済みの project_settings.config、またはプロファイル JSON に含まれるスライサー設定(レイヤー高さ、インフィル、壁、サポート、ブリム、ベッド、プリンター、フィラメント)を読み取ります。source_path、または保存済みテンプレートを読み取る場合は template_name を渡します。

{
  "template_name": "p1s-petg-strong"
}
confirm_temperatures

G-code ファイルに含まれるすべてのヒーター目標温度(S 形式と R 形式、ツール指定の目標温度、RepRapFirmware の G10/M568、Klipper の SET_HEATER_TEMPERATURE)を報告します。extruder_temp または bed_temp の期待値が一致するのは、ファイル内の最高目標温度と同じ場合だけです。この値は結果で peak として返されます。読み取り専用のツールです。印刷ツールはそれぞれ独自の安全ゲートを適用します。

{
  "gcode_path": "/path/to/model.gcode",
  "extruder_temp": 240,
  "bed_temp": 80
}
process_and_print_stl

STL のベースを拡張し、スライスして、upload_gcode および print_3mf と同じ検証済み印刷ゲート(ユーザーによる確認を含む)を通して印刷します。extruder_temp または bed_temp を渡す場合、それぞれスライス済みジョブの最高目標温度(すべてのツールの S 形式と R 形式)と一致する必要があります。一致しない場合、何もアップロードされる前に停止します。スライス済み G-code に filament_type メタデータがない場合は、material を渡します。Bambu プリンターで Bambu 対応スライサーを使う場合、スライス済みの .3mf は print_3mf のチェックを通ります。また、プリンターモデルの指定が必要です。

{
  "stl_path": "/path/to/model.stl",
  "extension_inches": 0.1,
  "extruder_temp": 210,
  "bed_temp": 60,
  "material": "PLA",
  "type": "octoprint",
  "host": "192.168.1.100"
}

印刷の確認を求める前にスライス済みファイルを確認したい場合は、slice_stl、confirm_temperatures、upload_gcode を個別に使用してください。

高度なツール
高度なツール
Blender MCP

BLENDER_MCP_COMMAND(たとえば uvx のフルパス)と BLENDER_MCP_ARGS(たとえば ["mcp-for-blender"])を使って、標準の stdio Blender MCP サーバーに接続します。mcp-for-blender プロジェクトは以前 blender-mcp として公開されていましたが、互換性ラッパーとして引き続き動作します。Blender にアドオンをインストールして有効化し、アドオンの接続を開始してください。Blender とこのサーバーは、同じローカルファイルを読み取れる必要があります。プリンターツールは Blender を設定しなくても使用できます。エージェントの作業中は Blender を開いたままにしてください。アドオンはバックグラウンドモードでは動作しません。設定方法、単位、新しいスマートフォンに合わせてスマートフォンケースを一から調整する手順を説明した例については、Blender ガイドを参照してください。

blender_mcp_status

Blender MCP の設定を確認します。connect: true を指定すると、設定済みのサーバーを起動して初期化し、ツール名と概要を一覧表示します。呼び出す予定のツールの完全な入力スキーマを取得するには tool_names を渡します(include_schemas: true を指定するとすべてのスキーマが返されますが、サイズが大きくなります)。接続に成功しても、Blender 内のアドオンが実行中であるとは限りません。確認するには、blender_mcp_call を通して get_scene_info を呼び出してください。

{
  "connect": true,
  "tool_names": ["execute_blender_code"]
}
blender_mcp_call

Blender MCP サーバーが公開する get_scene_info や execute_blender_code などのツールを、検出したスキーマに合う引数で呼び出します。画像やエラーを含む完全な MCP 結果が返されます。呼び出しによってアクティブな Blender シーンが変更されることがあり、自動で再試行されることはありません。リモートツールから user_prompt を求められた場合は、ユーザー自身の言葉をそのまま保持してください。

{
  "tool_name": "get_scene_info",
  "arguments": { "user_prompt": "Inspect the scene before preparing a print." }
}
#### blender_mcp_export_stl

ライブの Blender シーンから名前を指定したオブジェクトを、新しいスライス用 STL にエクスポートします。blender_mcp_call でモデリングまたは編集した後に使用してください。Blender MCP の export_scene は GLB または FBX を書き出しますが、STL は書き出しません。エクスポートでは、モディファイアーを適用したワールド座標のジオメトリを書き出し、シーン、選択状態、モードは変更しません。

{
  "object_names": ["PhoneCase"],
  "output_path": "/path/to/phone-case.stl",
  "user_prompt": "Make it fit my iPhone 17 Pro Max."
}
  • 結果には output_verified: true、三角形の数、書き出されたファイルから測定した bounding_box.dimensions が表示されます。スライスする前に、寸法が想定どおりか確認してください。
  • STL ファイルには単位が含まれておらず、スライサーはミリメートルとして読み込みます。インポートした STL の数値は維持されるため、デフォルトの scale: 1 が適切です。パーツをメートル単位でモデリングした場合、結果には一辺が 1 単位未満であるという警告が表示されます。その場合は scale: 1000 を指定して再度エクスポートしてください。
  • output_path は新規のパスでなければならず、その親ディレクトリは存在する必要があります。ファイルが上書きされることはありません。Blender エラー、受け取りデータの不一致、または無効なファイルが発生した場合、ファイルは公開されません。
blender_mcp_edit_model

STL を Blender にインポートし、指定順に編集を適用して、新しい STL をエクスポートします。サポートされる操作は decimate:<ratio>(0 より大きく 1 以下)、remesh:<voxel size>(STL 単位で正の値)、boolean_union:<STL path> です。それ以外の操作には blender_mcp_call を使用してください。

{
  "stl_path": "/path/to/model.stl",
  "output_path": "/path/to/model-edited.stl",
  "operations": ["decimate:0.5"],
  "user_prompt": "Reduce the triangle count for printing.",
  "execute": false
}
  • デフォルト(execute: false)では、Blender を起動せずにリクエストを検証し、計画と生成された Python を返します。実行するには execute: true を設定し、プレビューで返された output_path を再利用してください。
  • output_path を省略すると、入力ファイルと同じ場所に一意の model-edited-<id>.stl が選択されます。既存の入力ファイルと出力ファイルが上書きされることはありません。
  • 編集には Object Mode が必要です。既存のシーンオブジェクトと選択状態は維持されます。一致するエクスポート受け取りデータと、有効かつ有限な三角形メッシュを確認した後にのみ、新しい STL が公開されます。256 MiB 以下のバイナリ STL は小さなチャンクに分けて検証され、ASCII STL は 4 MiB 以下に制限されます。
  • リクエストには接続、検出、呼び出しの各タイムアウト(BLENDER_MCP_TIMEOUT_MS、デフォルトは 120000)があり、ファイル検証にも適用されます。中断された編集は再実行されません。編集がすでに開始されている可能性があるため、再試行する前に Blender を確認してください。
  • 有効な STL であっても、印刷可能であるとは限りません。スライスする前に結果を確認してください。

標準コマンドが設定されていない場合、従来の BLENDER_MCP_BRIDGE_COMMAND シェルコマンドも引き続きサポートされます。コマンドには stdin 経由で JSON(modelPath、operations、source、stlPath)が渡され、同じ JSON が MCP_BLENDER_PAYLOAD にも設定されます。この場合、結果の output_verified は false になります。呼び出し単位の bridge_command には MCP_ALLOW_EXECUTABLE_ARG=1 が必要です。

利用可能なリソース

利用可能なリソース

リソースは MCP リソースプロトコルに従います。設定された PRINTER_TYPE と認証情報を使用し、ホスト部分でプリンターのアドレスを指定します。

  • printer://{host}/status:get_printer_status が返す、プリンターの現在の状態
  • printer://{host}/files:list_printer_files が返す、ファイル一覧
  • printer://{host}/file/{filename}:指定した 1 つのファイルの詳細。Bambu プリンターでは、ファイルの有無のみが報告されます。

たとえば、printer://192.168.1.100/status を読み取ると、そのアドレスのプリンターの状態を取得できます。

プリンターの制限事項 ## プリンターの制限事項
  1. ステータスの詳細度はバックエンドによって異なります。 Bambu のステータスには、進行状況、レイヤー数、残り時間が含まれます。OctoPrint のステータスは /api/printer から取得されます(ジョブの進行状況ではなく、状態と温度が含まれます)。Klipper のステータスは Moonraker の /printer/info から取得され、ホストの状態は報告されますが、ジョブの進行状況や温度は報告されません。Duet、Repetier、Creality の応答は、実機で検証されていません。
  2. キャンセルはできますが、一時停止はできません。 一時停止または再開するツールはありません。cancel_print はジョブを停止します。
  3. ほとんどのバックエンドでは通常の HTTP を使用します。 OctoPrint、Klipper、Duet、Repetier、Creality のアダプターは http:// 経由で接続します。Prusa アダプターでは、Prusa Connect、https:// のホスト、またはポート 443 に HTTPS を使用します。
  4. Moonraker の認証は任意ですが、Duet はパスワードに対応していません。 認証が必要な Moonraker ホストでは API_KEY を設定してください。Moonraker が MCP ホストを信頼する場合に限り、空欄にしてください。パスワードで保護された Duet には、まだ接続できません。
  5. コマンドの送信は、印刷の完了を意味しません。 成功応答は、プリンターまたはそのホストがリクエストを受け付けたことを示します。その場を離れる前に、ステータスとプリンター本体を確認してください。
  6. Bambu の印刷には、スライス済みプロジェクトと適切なモデルが必要です。 print_3mf は Metadata/plate_<n>.gcode を含む .3mf を必要とし、ファイルを cache/ にアップロードしてプレート 1 の印刷を開始します。レイヤー高や温度などの印刷設定は、印刷開始時に変更できません。start_print が扱うのは通常の .gcode ファイルのみです。
  7. Bambu の AMS マッピングはシンプルです。 ams_mapping の値は並べ替えられ、5 件になるように埋められます。実際の動作は、ファームウェア、装填されたフィラメント、プロジェクトのメタデータにも左右されます。AMS のインベントリーと色のマッチングについては、bambu-printer-mcp を参照してください。
  8. Bambu の温度設定は G-code 経由で行われます。 温度目標は MQTT 経由で M104 または M140 として送信されるため、適用されるかどうかはプリンターのファームウェアと現在の状態によって決まります。
  9. Bambu のネットワーク通信は、信頼できる LAN を前提としています。 MQTT と FTPS では、プリンターの自己署名証明書を使用します。アップロードではセッション再利用を伴う TLS 1.2 を使用します。#22 で報告された X1C ファームウェアでの確認は、まだ完了していません。
  10. 安全性チェックでは、ファイルやレポートを読み取り、物理的なプリンターは確認しません。 宣言された素材から実際に装填されているスプールを確認することはできず、ジョブ完了レポートからベッドが空いていることを確認することもできないため、人による確認が必要です。ヒーターを指定する Klipper マクロのパラメーターはチェックされますが、プリンターに保存されたマクロ本文は検査できません。Duet/RepRapFirmware では、ツールを選択する(T0)と、プリンターにすでに保存されている温度まで加熱されます。起動のみを行う M568 と M144 は拒否されますが、すべてのファームウェアで使用されるため、通常のツール切り替えは許可されます。このリリースでは、安全ゲートをモックしたプリンターの通信処理とループバック HTTP API でテストし、実機の Bambu P1S では 1 回の実行でファームウェアのコマンドチェックまで到達しました。他のプリンターシステムは、実機ではテストされていません。
  11. リモートから印刷を開始するには、ダウンロード経路が必要です。 プリンター上にすでにあるファイルを start_print で印刷できるのは、Bambu Lab、OctoPrint、Klipper、Duet です。Repetier、Prusa、Creality では拒否されるため、代わりにローカルの G-code を print: true でアップロードしてください。
全般的な制限事項と考慮事項

全般的な制限事項と考慮事項

メモリー使用量
  • STL ツールはメッシュ全体を Three.js のジオメトリとしてメモリーに読み込みます。約 10 MB を超えるファイルでは、数百 MB の RAM を使用する場合があります。
  • 大きなファイルに対して連続して複数の操作を実行すると、ガベージコレクションのサイクル間にメモリー使用量が蓄積することがあります。
  • メモリー使用量の上限は組み込まれていません。リソースに制約のあるシステムでは、複数の大きなファイルを一度に処理しないでください。
### STL 操作の制限事項
  • lay_flat は最も大きな平面を探します。有機的な形状や丸みを帯びたモデルでは、結果が予測できないことがあります。
  • extend_stl_base はモデルの下に新しいジオメトリを追加します。複雑な底面や平面でない底面では、接合部に隙間や交差が生じることがあるため、結果を確認してください。
  • merge_vertices に大きな許容値を指定すると、モデルの形状が変わることがあります。デフォルトの 0.01 mm は、ほとんどのモデルで安全です。
  • modify_stl_section は単純なジオメトリで最適に動作します。非多様体メッシュ(穴、重なり合う面、内部ジオメトリ)は、どの変換でも予期しない結果を生じることがあるため、先にスライサーまたはメッシュツールで修復してください。
可視化の制限事項
  • generate_stl_visualization が生成するのは簡略化された模式図であり、真の 3D レンダリングではありません。また、非常に詳細なモデルでは細部が失われることがあります。
パフォーマンスに関する考慮事項
  • スライスには、モデルや CPU によって数秒から数分かかることがあります。スライサーの実行は、デフォルトで 10 分の SLICER_TIMEOUT_MS を超えるとタイムアウトします。
  • 大容量のアップロードにかかる時間は、ネットワークとプリンターのストレージ速度によって異なります。
  • Bambu MQTT 接続は再利用されます。プリンターが再起動したり、ネットワークが切断されたりした場合、次の呼び出しで再接続します。
MCP の安全に関する注意事項

MCP の安全に関する注意事項

プロンプトインジェクションは、ツールを使用するエージェントにとって未解決の問題です。ダウンロードしたモデルの説明、アーカイブ内の README、3MF メタデータ、ウェブページには、エージェントを狙った指示が含まれていることがあります。実用的な緩和策は次のとおりです。

  • ツールの出力とダウンロードしたファイルは、信頼できない入力として扱ってください。
  • プリンターのキーとアクセスコードはサーバーの設定に保存し、プリンターのソフトウェアで許可される範囲で最小限の権限を設定してください。
  • 呼び出しごとの実行可能ファイルの指定は無効にしてください。スライサー、ブリッジ、Blender のコマンドは、MCP_ALLOW_EXECUTABLE_ARG=1 が設定されていない限り、サーバーの設定から取得されます。
  • 印刷の確認は有効にしてください。サーバーは、印刷開始および正の加熱コマンドを実行する前に、MCP elicitation を通じて人間に確認を求め、確認を求められないクライアントからの要求は拒否します。PRINT_REQUIRE_CONFIRMATION=0(すべてのプリンター)または BAMBU_REQUIRE_CONFIRMATION=0(Bambu のみ)を設定すると、ヘッドレス環境では確認を無効にできます。ただし、ジョブ完了後の最初の印刷では引き続き確認が求められます。
  • ヒーターの上限は、サーバーの設定(PRINTER_MAX_NOZZLE_TEMP、PRINTER_MAX_BED_TEMP、PRINTER_MAX_CHAMBER_TEMP、または Bambu のモデルごとの上限)からのみ取得されます。ツールの引数や G-code で上限が引き上げられることはありません。
  • ストリーム可能な HTTP トランスポートは、信頼できるネットワーク上で実行してください。デフォルトでは 127.0.0.1 にバインドされ、組み込みの認証機能はありません。
  • BAMBU_MODEL を正しく設定し、類似モデルで代用しないでください。
ライセンス

ライセンス

GPL-2.0。全文については LICENSE を参照してください。

謝辞

謝辞

ユーザーの選択肢、修理する権利、相互運用可能なツールの発展に尽力している FULU Foundation、Louis Rossmann、および OrcaSlicer-bambulab コミュニティ に感謝します。

Bambu Lab のサポートは、OpenBambuAPI など、コミュニティによるプロトコルの調査に基づいています。Bambu 専用フォークの bambu-printer-mcp は、Blender MCP 統合と FTPS の修正をこのプロジェクトと共有しています。

このプロジェクトは、Glama MCP サーバーディレクトリに掲載されています。このプロジェクトの形成に貢献したコード、報告、プリンターでのテストを提供した人々については、CONTRIBUTORS.md を参照してください。

コメント

MCP は初めてですか?

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

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