mcpField
S
Slicewise

Slicewise

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

Slicewise について

Slicewiseは、Bambu Studioのプリセット、スライス、モデル検査を扱うMCPサーバーです。印刷前の造形可否確認や設定の適用状況の監査に使えますが、プリンターは制御しません。

主な機能

  1. 01GUIに沿ったコマンドラインスライス
  2. 02プリセット継承の展開
  3. 03モデルの造形可否検査
  4. 04パーツ間クリアランス測定
  5. 05パラメーター説明と診断
  6. 06非破壊のプロジェクト編集

活用シーン

  1. 01印刷前のモデル確認
  2. 02スライス設定と結果の検証
  3. 03一体印刷部品の隙間確認
  4. 04ユーザープリセットやサポート部品の作成

MCP 対応

プリセット管理、スライス、モデル検査などを行う16個の `bambu_` ツールをMCPクライアントに提供します。プリンター制御には対応しません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"gjlmotea-slicewise-for-bambu-studio": {
"command": "npx",
"args": [
"-y",
"@gjlmotea/slicewise-mcp"
],
"env": {
"BAMBU_MODEL_DIR": "<BAMBU_MODEL_DIR>",
"BAMBU_OUTPUT_DIR": "<BAMBU_OUTPUT_DIR>",
"BAMBU_STUDIO_PATH": "<BAMBU_STUDIO_PATH>",
"BAMBU_DATA_DIR": "<BAMBU_DATA_DIR>",
"BAMBU_SLICE_TIMEOUT_MS": "<BAMBU_SLICE_TIMEOUT_MS>",
"THINGIVERSE_TOKEN": "<THINGIVERSE_TOKEN>"
}
}
}
}
起動コマンドnpx -y @gjlmotea/slicewise-mcp
設定が必要な環境変数
BAMBU_MODEL_DIRFolders the model tools may read from, joined with the platform path delimiter (':' on macOS and Linux, ';' on Windows). Model reads are refused when unset
BAMBU_OUTPUT_DIRFolder for sliced and composed 3MF output; also readable by the model tools. Writing tools are refused when unset
BAMBU_STUDIO_PATHBambu Studio executable; resolved from the default install location when unset
BAMBU_DATA_DIRBambu Studio data folder holding system and user presets; resolved per platform when unset
BAMBU_SLICE_TIMEOUT_MSSlicing timeout in milliseconds
THINGIVERSE_TOKENシークレットThingiverse app token; only the Thingiverse part of model search needs it

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

パッケージ
npm@gjlmotea/slicewise-mcp0.1.0

ツール

16

掲載時のツール一覧 · 5 日前に更新

このツールにパラメーターはありません。

詳細

Slicewise — Bambu Studio向けの印刷前判定・監査 MCP サーバー

英語 | 繁體中文

Slicewise:Bambu Studio向けの印刷前チェック

https://github.com/user-attachments/assets/76e04c37-36cf-41d4-abff-4d0e62fe6b4f

Slicewiseを使うと、Claude Code、Codex、Gemini CLIなどのModel Context Protocolクライアントから、Bambu Studioのプリセット、スライサー、モデルチェックを利用できます。印刷前にモデルで問題が起きないか確認し、変更する設定とその理由を判断したうえで、スライスした結果を監査し、実際にどの設定が適用されたかを確認できます。

プリンターは制御しません。MQTTも、アップロードも、印刷開始も行いません。

  • GUIと同じ結果になるCLIスライス。 Bambu Studioのコマンドラインはプリセットのinheritsを無視するため、標準プリセットをCLIからスライスすると、気づかないうちに組み込みのデフォルト設定にフォールバックします。Slicewiseは事前に継承チェーン(およびプリンターごとのG-codeテンプレート)をフラット化し、スライス後の3MFを読み込んで、各オーバーライドが適用されたかどうかを個別に報告します。
  • スライス前に印刷可能性をチェック。 STL、3MF、OBJ(Tinkercadからのエクスポートを含む)に対応:ベッドからはみ出すサイズ、ベッドに接していない浮遊パーツ、非多様体メッシュ、急勾配のオーバーハング、小さな接地面、背が高く細いパーツ、薄い形状、反りのリスクをチェックします。
  • パーツ間のクリアランス。 プリント・イン・プレイス機構の最小隙間を確認し、ヒンジが融着するかどうかを印刷前に把握できます。
  • パラメーターのナレッジレイヤー。 各設定の機能、単位、適切な範囲、値を上げたり下げたりした場合の影響を確認できます。また、目標別のプラン(安全、高速、強度、表面品質、経済性)や、症状別の診断(反り、糸引き、ゾウの足、ノズルの衝突など)も利用できます。
  • 非破壊のパーツ編集。 Bambu Studioが保存する方法そのままで、ネガティブパーツ、モディファイアー、サポートブロッカー/強制設定を含むBambuプロジェクト3MFファイルを作成します。ジオメトリエンジンは使用しません。
  • GUIに表示されるユーザープリセット。 書き込み先はユーザープロファイルフォルダーのみで、システムプリセットには一切触れません。

非公式です。Bambu Labとは提携、推奨、後援の関係にありません。 ツールの説明とメッセージは英語です。bambu_diagnoseとbambu_plan_settingsは、中国語で書かれた症状や目標(例:翹邊、省時)にも対応します。

目次

クイックスタート

Node.js 22以降が必要です。スライスにはBambu Studioをローカルにインストールする必要があります。パラメーター関連ツールとモデルツールは、Bambu Studioがなくても動作します。

Claude Code:

claude mcp add slicewise \
  -e BAMBU_MODEL_DIR="$HOME/Desktop/bambu-work" \
  -e BAMBU_OUTPUT_DIR="$HOME/Desktop/bambu-work/out" \
  -- npx -y @gjlmotea/slicewise-mcp

その他のクライアント(Codex、Gemini CLI、Cursor、Claude Desktopなど):

{
  "mcpServers": {
    "slicewise": {
      "command": "npx",
      "args": ["-y", "@gjlmotea/slicewise-mcp"],
      "env": {
        "BAMBU_MODEL_DIR": "/Users/you/Desktop/bambu-work",
        "BAMBU_OUTPUT_DIR": "/Users/you/Desktop/bambu-work/out"
      }
    }
  }
}

次に、エージェントにbambu_get_statusを呼び出すよう依頼します。このツールでは、Bambu Studioのデータフォルダー、スライサーが見つかったかどうか、プリセット数、Studioで現在選択されているプリンターとフィラメント、モデルツールが読み取り可能なフォルダーを確認できます。

macOSのプライバシーに関する注意。 macOSでは~/Desktop、~/Documents、~/Downloadsへのアクセスが制限されています。モデルツールでEPERMが返された場合は、「システム設定」でMCPホスト(Claudeデスクトップアプリではなく、claude CLIなど実際の実行ファイル)にアクセスを許可して再起動するか、BAMBU_MODEL_DIRをアクセス制限のないフォルダーに設定してください。

ツール

16 個のツールがあり、すべて bambu_ で始まります。

領域ツール機能
パラメーターbambu_plan_settings印刷前に目標(安全性、速度、強度、表面、経済性)を指定すると、目標を達成できない原因ごとに設定をグループ化し、モデルの形状が指定されている場合はそれに合わせて調整します
bambu_optimize_print_in_placeプリントインプレース部品向けに、保守的なユーザープロセスプリセットを作成します(初層を遅くし、外壁速度に上限を設け、オーバーハング部分を減速し、指定がない限り自動ブリムを無効にします)
bambu_describe_parameters意味、単位、範囲、値を上げる/下げるコスト、関連設定を説明します
bambu_diagnose印刷後に、症状から修正方法を順番に提示します。一度に変更するのは 1 つだけです
bambu_resolve_presetプリセットをフラット化し、各値の取得元レイヤーを表示します
bambu_compare_presetsフラット化した 2 つのプリセットの差分を表示します
bambu_list_presets選択可能なプリセットを一覧表示します(抽象親プリセットと G-code テンプレート項目は除外されます)
bambu_save_user_preset再起動後に Studio に表示されるユーザープリセットを書き込みます
スライスbambu_sliceプリセットをフラット化してスライスし、レイヤー、時間、フィラメント(マルチカラーの場合は色ごと)を報告し、すべてのオーバーライドを監査します
モデルbambu_inspect_modelSTL、3MF、OBJ の形状を検査します:三角形、境界、体積、面積、閉じたメッシュ、パーツ
bambu_check_printabilityサイズ、浮いたパーツ、非多様体、オーバーハング、設置面積、アスペクト比、薄い形状、反りを確認します
bambu_measure_clearance3MF または OBJ のパーツ間の最小間隔を測定し、補正のアドバイスを提示します
bambu_compose_modelネガティブパーツ、モディファイアーパーツ、サポート制御パーツを含む Bambu プロジェクト 3MF を作成します
bambu_inspect_project任意の Bambu プロジェクト 3MF のオブジェクトとパーツを読み取ります
検索bambu_search_modelsThingiverse は公式 API 経由で検索し、MakerWorld と Printables は検索リンクのみを提供します
ステータスbambu_get_statusデータフォルダー、スライサー、プリセット、現在の選択、許可されたフォルダーを表示します

フラット化が重要な理由

Bambu Lab の標準プリセットは、4 レベルの継承チェーンになっています。末端プリセットでは数十個のキーのみを宣言し、残りは継承します。

0.20mm Standard @BBL X1C  <-  fdm_process_single_0.20  <-  fdm_process_single_common  <-  fdm_process_common

末端プリセットを --load-settings とともに CLI に渡しても、inherits は解決されません。適用されるのは末端プリセット独自のキーだけです。それ以外は実行ファイルの組み込みデフォルト値に戻りますが、これらは Bambu Lab の標準値ではありません。X1 Carbon、0.4 ノズル、0.20mm Standard、Bambu PLA Basic、20 mm キューブで測定した結果:

設定生のプリセットフラット化後
sparse_infill_density20%(組み込みデフォルト)15%(標準プリセット)
top_shell_layers45
elefant_foot_compensation00.15
enable_arc_fitting01
brim_width05
印刷時間10m 11s8m 45s

これが bambulab/BambuStudio#1704(CLI と GUI のスライス結果が異なる)の原因です。

さらに、次の 2 つの落とし穴にも対処しています:

  • プリンターの G-code はプリセットの外部にあります。 Studio 02.07 以降、開始、フィラメント交換、レイヤー変更、終了の G-code は、system/BBL.json 内の <preset> template <key> 項目として個別に登録されています。inherits だけをたどると、どの Bambu プリンターにも一致しない汎用の開始シーケンスに行き着きます。Slicewise はテンプレートをレイヤーごとに適用します。P2S 0.4 では、その結果の G-code は GUI のものとバイト単位で一致します。
  • CLI によってプライムタワーが無効になることがあります。 読み込まれたすべてのフィラメントプリセット名が同じ場合(異なる色の Generic PLA が 5 スロット)、CLI はそれらを 1 つのスプールと判断し、プライムタワーを無効にします。その場合、Slicewise はプロジェクト独自のフィラメントカラーを渡します。4 色の P2S プレートでは、フラット化だけの場合はプライムタワーなし、汎用 G-code で 40.10 g/2h 6m でした。テンプレートとカラーを適用すると、結果は 43.68 g/2h 18m となり、GUI と完全に一致しました。

浮遊パーツの検出

実例:Tinkercad でボックスを組み合わせて作ったバースデーケーキのトッパーです。脚は z = 50 mm で終わり、胴体は z = 51 mm から始まっていました。Bambu Studio は「浮遊オブジェクトはサポートなしでは印刷できません」と報告しますが、サポートを有効にするのは適切な解決策ではありません。サポートが 1 mm の隙間を埋めてしまい、取り外すと脚が折れてしまうからです。バウンディングボックスやオーバーハング角度には問題がありません。重要なのは接続性です。

そのため、bambu_check_printability は次の処理を行います。

  1. 頂点の共有に基づいて形状をシェルに分割します(STL のポリゴン集合にも対応)。負のパーツ、モディファイア、サポートブロッカー/エンフォーサーはソリッドではありません。
  2. 面が接触または交差するシェルをボディに統合します。
  3. シェルごとのレイパリティテストを使って、別のシェルに完全に囲まれたボディを統合します(重なり合う複数のシェルでできたボディ全体の交差数を数えると、奇数 + 奇数 = 偶数となり、「外側」という誤判定が起きるためです)。
  4. ベッドに接していない各ボディについて、その浮き上がり量、接合すべき可能性が高いボディ(ベッドに接しているボディを優先)、および隙間を報告します。

隙間が 2 mm 以下の場合、モデリング上の継ぎ目である可能性が高いものとしてフラグを立てます。サポートを追加するのではなく、少し重なるようにモデルを修正してください。これはあくまで目安であり、確実な判定ではありません。意図的に印刷後に動かすためのクリアランス(内部に収まるボールやヒンジなど)も同じ範囲に入るため、レポートでは設計意図の確認を求めます。より広い隙間は、サポートが必要な実際のオーバーハングです。

非破壊的なパーツ編集

Bambu Studio の負のパーツ、モディファイア、サポート制御は、メッシュの編集ではありません。これらは 3MF 内で subtype ラベルが付けられた追加パーツです。

<part id="2" subtype="negative_part">
  <metadata key="name" value="hole"/>
</part>

したがって、bambu_compose_model にブーリアン演算エンジンや GUI オートメーションは不要です。受け付けるのは、Bambu Studio のソースにある ModelVolume::type_to_string() から取得した、次の 5 つのサブタイプのみです。normal_part、negative_part、modifier_part、support_blocker、support_enforcer。このリストは意図的に固定されています。Studio のリーダーは未知の文字列を黙ってソリッドパーツとして扱うため、1 文字の入力ミスで、「ここを削り取る」がエラーなしに「これをソリッドとして追加する」に変わってしまいます。同じボディを上に載せた 20 mm の立方体で測定した結果は次のとおりです。パーツなしの場合は高さ 20.00 mm、negative_part の場合は 15.00 mm、normal_part の場合は 25.00 mm です。

設定

変数デフォルト意味
BAMBU_MODEL_DIR未設定モデルツールが読み取り可能なフォルダー。プラットフォームのパス区切り文字で連結します。未設定の場合、モデルツールはすべてのパスを拒否します
BAMBU_OUTPUT_DIR未設定スライスおよび合成した 3MF ファイルの出力先(読み取りも可能)。未設定の場合、スライスと合成は実行されません
BAMBU_STUDIO_PATHプラットフォームごとBambu Studio の実行ファイル
BAMBU_DATA_DIRプラットフォームごとBambu Studio のデータフォルダー(システムおよびユーザーのプリセット)
BAMBU_SLICE_TIMEOUT_MS3000001 回のスライス処理のタイムアウト
THINGIVERSE_TOKEN未設定Thingiverse アプリトークン。設定されていない場合、検索結果にはリンクのみが表示されます
プラットフォームデータフォルダー実行ファイル
macOS~/Library/Application Support/BambuStudio/Applications/BambuStudio.app/Contents/MacOS/BambuStudio
Windows%APPDATA%\BambuStudio%ProgramFiles%\Bambu Studio\bambu-studio.exe
Linux~/.config/BambuStudio~/.local/bin/bambu-studio

境界

  • プリンターは制御しません。 物理的な機械の操作は取り消せず、危険を伴う可能性があるため、意図的に対象外としています。必要な場合は、この MCP と併せてプリンター制御用 MCP を使用してください。
  • 読み取りは許可されたフォルダーのみです。 BAMBU_MODEL_DIR(および出力フォルダー)外のパスは拒否されます。これには .. による移動や、同じ接頭辞を持つ隣接パス(/models のチェックでは /models-evil は許可されません)も含まれます。
  • 書き込みはユーザープロファイルフォルダーと出力フォルダーのみです。 システムプリセットに書き込むことはありません。同じ名前のユーザープリセットが存在する場合も、黙って上書きすることはありません。
  • API を装ったブラウザー自動化は行いません。 MakerWorld と Printables には公式の公開 API がないため、スクレイピングした結果ではなく検索リンクを提供します。
  • 推測はしません。 症状が不明な場合、bambu_diagnose はその旨を伝え、対応している症状を一覧表示します。誤った推測で状況を悪化させる可能性があるためです。
  • 形状を破壊的に変更する処理は行いません。 ブーリアン演算の結果はスライサーに任せます。新しいメッシュの計算(結合、切断、浮き出し文字の追加)は Blender または OpenSCAD で行ってください。
  • クリアランスの測定にはパーツ境界が必要です。 bambu_measure_clearance は 3MF と OBJ を読み取ります。STL は三角形が分割されていないひと続きのデータであるため、このツールは空のレポートを返さず、その旨を伝えます。
  • 既存のプロジェクトは読み取るだけで、書き換えません。 bambu_inspect_project は Bambu のプロジェクト 3MF を読み取ります。bambu_compose_model は常に新しいファイルを書き出します。

対応状況

状況
macOS + Bambu Studio 02.07GUI との比較やエンドツーエンドのスライスを含め、実機で検証済み
標準プリセットX1C、P1S、P2S の 0.4 ノズルプリセットでテスト済み
Windows、Linuxデフォルトのパスを実装済みですが、実環境へのインストールでは未検証
複数ノズルのプリンター(H2D…)未検証です。ノズルごとの設定は配列になっているため、上書きする前に bambu_resolve_preset で確認してください

OS、Studio のバージョン、プリンターを添えたバグ報告をお待ちしています。

開発

pnpm install
pnpm verify   # typecheck, 226 tests, build, stdio smoke test

スモークテストではフィクスチャデータフォルダーを使用するため、Bambu Studio がなくても実行できます(CI でも同様です)。node scripts/verify-real-slicer.mjs は実際のスライサーをエンドツーエンドで実行しますが、意図的に verify には含めていません。

src/
  domain/        pure logic: preset flattening, parameter knowledge, slicing audit, model geometry, 3MF
  ports/         PresetStore, Slicer, ModelCatalog
  adapters/      Bambu Studio CLI, preset store, Thingiverse, hand-off catalogs
  application/   BambuService
  server/        tool registration and schemas

ZIP リーダーとライター、STL と OBJ のパーサー、3MF ビルダーは手書きです。実行時の依存関係は MCP SDK と zod のみです。

キーベースラインの更新

src/domain/parameters/known-keys.ts は生成ファイルです。これは、上書き時のタイプミスを検出するために使用する、フラット化された Bambu Studio 設定の 568 個の設定キーです(Bambu Studio は不明なキーを黙って無視します)。Bambu Studio のリリースでパラメーターが追加されたら、再生成してください。

node scripts/verify-real-slicer.mjs   # writes a .gcode.3mf
# take the key list from Metadata/project_settings.config in that file and overwrite known-keys.ts

これはすべてのプリンターのすべてのキーを網羅しているわけではありません。複数ノズルのモデルなどには追加のキーがある場合があるため、不明なキーはエラーではなく警告として報告されます。

ライセンスと商標

MIT。Bambu Lab、Bambu Studio、MakerWorld は Bambu Lab の商標です。Thingiverse と Printables は、それぞれの所有者の商標です。このプロジェクトは、これらのいずれとも提携しておらず、承認も受けていません。Bambu Studio のコマンドラインインターフェースを別プロセスとして実行し、Bambu Studio(AGPL-3.0)のコードは含んでいません。

コメント

MCP は初めてですか?

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

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