Skip to main content
Glama
Zmokizmoghi

orca-profiles-mcp

by Zmokizmoghi

orca-profiles-mcp

Ein MCP-Server, der OrcaSlicer-Profile liest und bearbeitet. Er expandiert die gesamte inherits-Kette und zeigt, welches Kettenglied jeden Wert setzt.

Was es tut

Ein OrcaSlicer-Profil speichert nur seine Abweichungen vom Elternprofil. Die Datei zu öffnen genügt nicht, um die Geschwindigkeit der äußeren Wand zu erfahren: Der Wert kann vom Elternprofil stammen, vom Elternprofil des Elternprofils oder von den eingebauten Standardwerten der Engine. Dieser Server verfolgt die Kette bis zu ihrer Wurzel, berechnet die effektiven Werte und behält ihre Herkunft.

Er behandelt die Teile von Orca, die naive Leser scheitern lassen:

  • Eltern werden nach Namen, herstellerübergreifend aufgelöst — ein Sovol-Filament erbt von der OrcaFilamentLibrary;

  • Ein fehlendes Generic …-Elternprofil fällt auf Generic <material> @System zurück, und umbenannte Profile werden über ihre renamed_from-Liste gefunden;

  • Vektoren, die an Extrudervarianten gebunden sind, werden elementweise zusammengeführt, einschließlich des nil-Markers, der bedeutet: „hier den Wert des Elternprofils behalten“;

  • Ein Kind darf mehr Extruder deklarieren als sein Elternprofil — ein Toolchanger auf der Grundlage eines Maschinenprofils mit einem einzelnen Extruder — und beide Extruder behalten ihre Werte;

  • Schlüssel, die nicht zum Profiltyp gehören, werden verworfen, weil Orca sie ebenfalls verwirft; sie werden gemeldet, statt stillschweigend angewendet zu werden.

Einrichtung

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

Bei Claude Code registrieren:

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

Werkzeuge

Werkzeug

Zweck

get_setup

erkannte Wurzeln, Orca-Version, Hersteller, ausgewählte Voreinstellungen

list_profiles

Suche nach Typ, Name, Hersteller, Quelle

get_profile

Profil im Modus raw / resolved / traced

get_chain

Vererbungskette bis zur Wurzel

explain_key

woher ein bestimmter Wert stammt

find_children

welche Profile von diesem erben

diff_profiles

zwei Profile vergleichen

compare_with_upstream

mit dem OrcaSlicer-Repository vergleichen

validate

kaputte inherits, Zyklen, unbekannte Schlüssel, redundante Deltas

check_deltas

Expansion gegen die von Orca selbst geschriebenen Deltas prüfen

meldet redundante Schlüssel und unerklärte Vektorlängen getrennt

set_values

Werte mit Neuberechnung der Deltas setzen

create_profile

ein Benutzerprofil erstellen

rename_profile, delete_profile

umbenennen und löschen

normalize_profile

Schlüssel verwerfen, die mit denen des Elternprofils identisch sind

Werte werden exakt so zurückgegeben, wie die Dateien sie speichern: "0.20" bleibt "0.20", und "100%" bleibt ein Prozentsatz. Die Engine normalisiert beides beim Slicen; dieser Server tut das nicht, sodass das, was du liest, das ist, was das Profil angibt, und das, was zurückgeschrieben wird, unverändert bleibt.

Profile schreiben

Deine eigenen Profile können frei bearbeitet werden. Das Anfassen eines System- oder gebündelten Profils erfordert force=true: Diese Dateien gehören zu einer Herstellerbibliothek, das nächste Profilupdate stellt sie wieder her, und jeder Nachkomme erbt die Änderung.

Schreibvorgänge laufen über eine temporäre Datei und eine atomare Umbenennung, sodass ein unterbrochener Schreibvorgang ein Profil nicht abschneiden kann, und zuerst wird eine Sicherungskopie neben der Datei erstellt (backup=false deaktiviert sie). Werte werden geprüft, bevor etwas geschrieben wird — ein Schlüssel, der zu einem anderen Profiltyp gehört, ein Vektor, wo die Engine einen Skalar erwartet, oder eine Zahl, wo das Format eine Zeichenkette verlangt, wird abgelehnt, statt gespeichert und von Orca stillschweigend verworfen zu werden. Einstellungen, die dein fixierter Snapshot nicht erkennt, werden unangetastet durchgereicht, sodass ein von einem neueren Orca geschriebenes Profil sie nicht verliert.

OrcaSlicer liest Profile beim Start und schreibt sie beim Beenden neu. Änderungen, die vorgenommen werden, während die Anwendung läuft, werden überschrieben — schließe Orca zuerst.

Wie die Korrektheit geprüft wird

Orcas CLI kann die Vererbung nicht überprüfen. --export-settings gibt die Engine-Standardwerte plus die in den übergebenen Dateien vorhandenen Schlüssel zurück und geht niemals inherits durch; das Auswählen von Voreinstellungen über OrcaSlicer.conf aktiviert sie nicht; das Übergeben einer gesamten Kette als Dateiliste wird als doppelte Konfigurationsdatei abgelehnt. Alle drei wurden gegen 2.4.2 ausprobiert.

Was Orca zurücklässt, ist ein Beleg seiner eigenen Expansion: Wenn es ein Benutzerprofil speichert, speichert es das minimale Delta gegenüber dem vollständig expandierten Elternprofil. Jedes Profil, das Orca geschrieben hat, ist also eine aufgezeichnete Antwort. check_deltas berechnet diese Deltas neu und vergleicht — eine Abweichung bedeutet, dass der Resolver ein Elternprofil anders expandiert als die Engine.

Das ist es, was tests/test_smoke.py gegen die installierte Bibliothek prüft, und so wurde der Vektorfehler des Toolchangers gefunden.

Schlüssel, die gespeichert werden, obwohl sie bereits mit dem Elternprofil übereinstimmen, werden getrennt gemeldet: Sie sind harmlose Überbleibsel von vor einer Änderung des Elternprofils, keine Resolver-Fehler.

Engine-Snapshot aktualisieren

Engine-Standardwerte, die Variantenschlüsselsätze und die Pro-Typ-Schlüssellisten werden aus der installierten Orca in src/orca_profiles_mcp/data/engine-snapshot.json übernommen, fixiert auf ihren Versions-Tag. Nach dem Upgrade von OrcaSlicer:

uv run python scripts/build_snapshot.py
uv run pytest

Tests

uv run pytest

Vier Ebenen:

  • Unit-Tests über eine Miniatur-Fixture-Bibliothek, einer pro Grenzfall — herstellerübergreifende Vererbung, der Generic-Fallback, renamed_from, Zyklen, fehlende Elternprofile, Vektoren mit Schrittweite 1 und 2, nil-Elemente;

  • Schreib-Roundtrips: lesen → unverändert schreiben → die Datei ist byte-identisch;

  • End-to-End-Tests, die den gepackten Einstiegspunkt als Unterprozess starten und ihn über MCP stdio steuern, abdeckend Werkzeugregistrierung, einen vollständigen Erstellen/Bearbeiten/Prüfen/Löschen-Zyklus und Fehlerweitergabe;

  • Prüfungen gegen die installierte Bibliothek, einschließlich der oben beschriebenen Delta-Verifizierung.

Tests, die die echte Bibliothek verwenden, überspringen sich selbst, wenn kein Orca-Datenverzeichnis vorhanden ist; alles andere läuft gegen Fixtures.

Dokumente

  • Design: docs/specs/2026-08-17-orca-profiles-mcp-design.md — enthält, was das Lesen der OrcaSlicer-Quellen über das Profilformat ergeben hat und was die CLI-Experimente ausgeschlossen haben

  • Implementierungsplan: docs/plans/2026-08-17-orca-profiles-mcp.md

Lizenz

AGPL-3.0, passend zu OrcaSlicer selbst. Dieses Projekt enthält keinen OrcaSlicer-Code, aber seine Vererbungslogik ist eine zeilenweise Portierung von Preset.cpp und PrintConfig.cpp, und der Engine-Snapshot enthält Standardwerte und Schlüssellisten, die aus dieser Quelle extrahiert wurden.

Nicht verbunden mit dem OrcaSlicer-Projekt und nicht von ihm unterstützt.

-
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