Skip to main content
Glama
Zmokizmoghi

orca-profiles-mcp

by Zmokizmoghi

orca-profiles-mcp

MCP サーバーで、OrcaSlicer のプロファイルを読み書きします。inherits チェーン全体を展開し、各値がどのリンクによって設定されたかを示します。

機能

OrcaSlicer のプロファイルには、親プロファイルとの差分だけが保存されます。ファイルを開くだけでは外壁速度を知ることはできません。その値は親、親の親、またはエンジン組み込みのデフォルトに由来する場合があるからです。このサーバーはチェーンをルートまでたどり、実効値を計算して、その出所を保持します。

単純な読み取りでは対応できない Orca の部分も処理します:

  • 親は 名前により、ベンダーを越えて 解決されます — Sovol フィラメントは OrcaFilamentLibrary から継承します;

  • Generic … の親がない場合は Generic <material> @System にフォールバックし、名前が変更されたプロファイルは renamed_from リストから見つけられます;

  • エクストルーダーバリアントにバインドされたベクトルは、nil マーカー(「ここでは親の値を保持する」の意味)も含めて要素ごとにマージされます;

  • 子は親よりも多くのエクストルーダーを宣言できる場合があります — シングルエクストルーダーのマシンプロファイル上にツールチェンジャーを重ねる場合 — そして両方のエクストルーダーは自分の値を保持します;

  • プロファイルタイプに属さないキーは破棄されます。Orca も同様に破棄するからです。それらは黙って適用される代わりに報告されます。

セットアップ

cd ~/job/orca-profiles-mcp
uv sync

Claude Code に登録する:

claude mcp add orca-profiles -- uv --directory ~/job/orca-profiles-mcp run orca-profiles-mcp

ツール

ツール

目的

get_setup

検出されたルート、Orca バージョン、ベンダー、選択されたプリセット

list_profiles

タイプ、名前、ベンダー、ソースで検索

get_profile

raw / resolved / traced モードのプロファイル

get_chain

ルートまでの継承チェーン

explain_key

特定の値がどこから来たか

find_children

このプロファイルから継承するプロファイル

diff_profiles

2つのプロファイルを比較

compare_with_upstream

OrcaSlicer リポジトリと比較

validate

壊れた inherits、循環、不明なキー、冗長なデルタ

check_deltas

Orca 自身が書き込んだデルタに対する展開を検証

冗長なキーと説明できないベクトル長を個別に報告

set_values

デルタ再計算付きで値を設定

create_profile

ユーザープロファイルを作成

rename_profile, delete_profile

名前の変更と削除

normalize_profile

親と同じキーを削除

値はファイルが保存している形式のまま返されます。"0.20""0.20" のままであり、"100%" はパーセントのままです。エンジンはスライス時に両方を正規化しますが、このサーバーは正規化しないため、読んだ内容はプロファイルが示す内容そのものであり、書き戻される内容も変更されません。

プロファイルの書き込み

自分のプロファイルは自由に編集できます。システムまたはバンドルされたプロファイルを変更するには force=true が必要です。それらのファイルはベンダーライブラリに属しているため、次のプロファイル更新で復元され、すべての子孫がその変更を継承します。

書き込みは一時ファイルとアトミックなリネームを介して行われるため、書き込みが中断してもプロファイルが切り詰められることはありません。また、最初にファイルの隣にバックアップコピーが作成されます(backup=false で無効化できます)。何かを書き込む前に値がチェックされます。別のプロファイルタイプに属するキー、エンジンがスカラーを期待するベクトル、形式が文字列を要求する数値は、保存されて Orca に黙って破棄されるのではなく、拒否されます。ピン留めしたスナップショットが認識しない設定はそのまま引き継がれるため、新しい Orca で書き込まれたプロファイルでもそれらが失われることはありません。

OrcaSlicer は起動時にプロファイルを読み込み、終了時に書き直します。 アプリケーションの実行中に行われた編集は上書きされます — 先に Orca を閉じてください。

正しさの検証方法

Orca の CLI は継承を検証できません。--export-settings は、渡されたファイルに存在するキーに加えてエンジンのデフォルトを返すだけで、inherits をたどることはありません。OrcaSlicer.conf でプリセットを選択してもそれらは有効になりません。チェーン全体をファイルリストとして渡すと、重複した設定ファイルとして拒否されます。この3つの方法はすべて 2.4.2 に対して試行されました。

Orca が残すものは、自身の展開の証拠です。ユーザープロファイルを保存するとき、完全に展開された親に対する最小限の差分を保存します。したがって、Orca が書き込んだすべてのプロファイルは、記録された答えです。check_deltas はそれらの差分を再計算して比較します。不一致は、リゾルバがエンジンとは異なる方法で親を展開していることを意味します。

これが tests/test_smoke.py がインストール済みライブラリに対して検証している内容であり、ツールチェンジャーのベクトル欠陥が発見された方法でもあります。

すでに親と一致しているにもかかわらず保存されたキーは、別途報告されます。それらは親が変更される前の無害な残り物であり、リゾルバエラーではありません。

エンジンスナップショットの更新

エンジンのデフォルト、バリアントのキーセット、タイプごとのキーリストは、インストールされている Orca から src/orca_profiles_mcp/data/engine-snapshot.json に取り込まれ、そのバージョンタグに固定されます。OrcaSlicer をアップグレードした後:

uv run python scripts/build_snapshot.py
uv run pytest

テスト

uv run pytest

4つの層:

  • ミニチュアフィクスチャライブラリに対する単体テスト。各エッジケースにつき1つ — ベンダー間の継承、Generic フォールバック、renamed_from、循環、親の欠落、ストライド1およびストライド2のベクトル、nil 要素;

  • 書き込みのラウンドトリップ: 読み取り → 変更せずに書き込み → ファイルがバイト単位で同一;

  • パッケージ化されたエントリポイントをサブプロセスとして起動し、MCP stdio を通じて操作するエンドツーエンドテスト。ツール登録、作成/編集/検証/削除の完全なサイクル、およびエラー伝播をカバー;

  • インストール済みライブラリに対するチェック。上記のデルタ検証を含みます。

実際のライブラリを使用するテストは、Orca データディレクトリが存在しない場合はスキップされます。それ以外はすべてフィクスチャに対して実行されます。

ドキュメント

  • 設計: docs/specs/2026-08-17-orca-profiles-mcp-design.md — OrcaSlicer のソースを読むことでプロファイル形式について判明した内容と、CLI の実験で除外された内容を含みます

  • 実装計画: docs/plans/2026-08-17-orca-profiles-mcp.md

ライセンス

AGPL-3.0、OrcaSlicer 自体に一致しています。このプロジェクトには OrcaSlicer のコードは含まれていませんが、その継承ロジックは Preset.cppPrintConfig.cpp の行ごとの移植であり、エンジンスナップショットはそのソースから抽出されたデフォルト値とキーリストを保持しています。

OrcaSlicer プロジェクトとは提携しておらず、その承認も受けていません。

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • A MCP server built for developers enabling Git based project management with project and personal…

  • Personal MCP server for humans who create. Proof of authorship, license control.

  • MCP server for generating rough-draft project plans from natural-language prompts.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zmokizmoghi/orca-profiles-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server