orca-profiles-mcp
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 aufGeneric <material> @Systemzurück, und umbenannte Profile werden über ihrerenamed_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 syncBei Claude Code registrieren:
claude mcp add orca-profiles -- uv --directory ~/job/orca-profiles-mcp run orca-profiles-mcpWerkzeuge
Werkzeug | Zweck |
| erkannte Wurzeln, Orca-Version, Hersteller, ausgewählte Voreinstellungen |
| Suche nach Typ, Name, Hersteller, Quelle |
| Profil im Modus |
| Vererbungskette bis zur Wurzel |
| woher ein bestimmter Wert stammt |
| welche Profile von diesem erben |
| zwei Profile vergleichen |
| mit dem OrcaSlicer-Repository vergleichen |
| kaputte |
| Expansion gegen die von Orca selbst geschriebenen Deltas prüfen |
meldet redundante Schlüssel und unerklärte Vektorlängen getrennt | |
| Werte mit Neuberechnung der Deltas setzen |
| ein Benutzerprofil erstellen |
| umbenennen und löschen |
| 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 pytestTests
uv run pytestVier 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 habenImplementierungsplan:
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.
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