orca-profiles-mcp
orca-profiles-mcp
MCP サーバーで、OrcaSlicer のプロファイルを読み書きします。inherits チェーン全体を展開し、各値がどのリンクによって設定されたかを示します。
機能
OrcaSlicer のプロファイルには、親プロファイルとの差分だけが保存されます。ファイルを開くだけでは外壁速度を知ることはできません。その値は親、親の親、またはエンジン組み込みのデフォルトに由来する場合があるからです。このサーバーはチェーンをルートまでたどり、実効値を計算して、その出所を保持します。
単純な読み取りでは対応できない Orca の部分も処理します:
親は 名前により、ベンダーを越えて 解決されます — Sovol フィラメントは OrcaFilamentLibrary から継承します;
Generic …の親がない場合はGeneric <material> @Systemにフォールバックし、名前が変更されたプロファイルはrenamed_fromリストから見つけられます;エクストルーダーバリアントにバインドされたベクトルは、
nilマーカー(「ここでは親の値を保持する」の意味)も含めて要素ごとにマージされます;子は親よりも多くのエクストルーダーを宣言できる場合があります — シングルエクストルーダーのマシンプロファイル上にツールチェンジャーを重ねる場合 — そして両方のエクストルーダーは自分の値を保持します;
プロファイルタイプに属さないキーは破棄されます。Orca も同様に破棄するからです。それらは黙って適用される代わりに報告されます。
セットアップ
cd ~/job/orca-profiles-mcp
uv syncClaude Code に登録する:
claude mcp add orca-profiles -- uv --directory ~/job/orca-profiles-mcp run orca-profiles-mcpツール
ツール | 目的 |
| 検出されたルート、Orca バージョン、ベンダー、選択されたプリセット |
| タイプ、名前、ベンダー、ソースで検索 |
|
|
| ルートまでの継承チェーン |
| 特定の値がどこから来たか |
| このプロファイルから継承するプロファイル |
| 2つのプロファイルを比較 |
| OrcaSlicer リポジトリと比較 |
| 壊れた |
| Orca 自身が書き込んだデルタに対する展開を検証 |
冗長なキーと説明できないベクトル長を個別に報告 | |
| デルタ再計算付きで値を設定 |
| ユーザープロファイルを作成 |
| 名前の変更と削除 |
| 親と同じキーを削除 |
値はファイルが保存している形式のまま返されます。"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 pytest4つの層:
ミニチュアフィクスチャライブラリに対する単体テスト。各エッジケースにつき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.cpp と PrintConfig.cpp の行ごとの移植であり、エンジンスナップショットはそのソースから抽出されたデフォルト値とキーリストを保持しています。
OrcaSlicer プロジェクトとは提携しておらず、その承認も受けていません。
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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