Skip to main content
Glama
Zmokizmoghi

orca-profiles-mcp

by Zmokizmoghi

orca-profiles-mcp

Un servidor MCP que lee y edita perfiles de OrcaSlicer. Expande toda la cadena de inherits y muestra qué eslabón estableció cada valor.

Qué hace

Un perfil de OrcaSlicer solo almacena sus diferencias respecto a su padre. Abrir el archivo no basta para conocer la velocidad de la pared exterior: el valor puede provenir del padre, del padre del padre o de los valores predeterminados integrados en el motor. Este servidor recorre la cadena hasta su raíz, calcula los valores efectivos y conserva su procedencia.

Se ocupa de las partes de Orca que rompen a los lectores ingenuos:

  • los padres se resuelven por nombre, entre proveedores — un filamento Sovol hereda de OrcaFilamentLibrary;

  • un padre Generic … ausente recurre a Generic <material> @System, y los perfiles renombrados se encuentran a través de su lista renamed_from;

  • los vectores vinculados a variantes de extrusor se fusionan elemento a elemento, incluido el marcador nil que significa «mantén aquí el valor del padre»;

  • un hijo puede declarar más extrusores que su padre — un cambiador de herramientas sobre un perfil de máquina de un solo extrusor — y ambos extrusores conservan sus valores;

  • las claves que no pertenecen al tipo de perfil se descartan, porque Orca también las descarta; se notifican en lugar de aplicarse silenciosamente.

Configuración

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

Regístrate con Claude Code:

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

Herramientas

Herramienta

Propósito

get_setup

raíces descubiertas, versión de Orca, proveedores, ajustes preestablecidos seleccionados

list_profiles

búsqueda por tipo, nombre, proveedor, fuente

get_profile

perfil en modo raw / resolved / traced

get_chain

cadena de herencia hasta la raíz

explain_key

de dónde procede un valor concreto

find_children

qué perfiles heredan de este

diff_profiles

comparar dos perfiles

compare_with_upstream

comparar con el repositorio de OrcaSlicer

validate

inherits rotos, ciclos, claves desconocidas, deltas redundantes

check_deltas

verificar la expansión contra los deltas que el propio Orca escribió

informa por separado de las claves redundantes y de las longitudes de vector no explicadas

set_values

establecer valores con recálculo de deltas

create_profile

crear un perfil de usuario

rename_profile, delete_profile

renombrar y eliminar

normalize_profile

eliminar las claves idénticas a las del padre

Los valores se devuelven exactamente como los almacenan los archivos: "0.20" sigue siendo "0.20" y "100%" sigue siendo un porcentaje. El motor normaliza ambos al cortar; este servidor no lo hace, así que lo que lees es lo que dice el perfil y lo que se escribe de vuelta no cambia.

Escritura de perfiles

Tus propios perfiles se editan libremente. Modificar un perfil del sistema o incluido requiere force=true: esos archivos pertenecen a una biblioteca de proveedor, la próxima actualización de perfil los restaura y todos los descendientes heredan el cambio.

Las escrituras pasan por un archivo temporal y un cambio de nombre atómico, de modo que una escritura interrumpida no puede truncar un perfil; además, primero se hace una copia de seguridad junto al archivo (backup=false la desactiva). Los valores se comprueban antes de escribir nada: se rechaza una clave que pertenezca a otro tipo de perfil, un vector donde el motor espera un escalar o un número donde el formato exige una cadena, en lugar de almacenarlo y dejar que Orca lo descarte silenciosamente. Los ajustes que tu instantánea fijada no reconoce se conservan intactos, de modo que un perfil escrito por una versión más reciente de Orca no los pierde.

OrcaSlicer lee los perfiles al iniciarse y los reescribe al salir. Los cambios realizados mientras la aplicación está en ejecución se sobrescribirán: cierra Orca primero.

Cómo se comprueba la corrección

La CLI de Orca no puede verificar la herencia. --export-settings devuelve los valores predeterminados del motor más las claves presentes en los archivos que se le pasan y nunca recorre inherits; seleccionar ajustes preestablecidos mediante OrcaSlicer.conf no los activa; pasar una cadena completa como lista de archivos se rechaza por ser un archivo de configuración duplicado. Las tres opciones se probaron contra 2.4.2.

Lo que Orca sí deja atrás es evidencia de su propia expansión: cuando guarda un perfil de usuario, almacena el delta mínimo respecto al padre totalmente expandido. Así que cada perfil que Orca ha escrito es una respuesta registrada. check_deltas recalcula esos deltas y los compara: un desajuste significa que el resolvedor expande un padre de forma distinta a como lo hizo el motor.

Esto es lo que tests/test_smoke.py comprueba contra la biblioteca instalada, y así es como se encontró el defecto del vector del cambiador de herramientas.

Las claves almacenadas aunque ya coinciden con el padre se notifican por separado: son restos inofensivos de antes de que el padre cambiara, no errores del resolvedor.

Actualizar la instantánea del motor

Los valores predeterminados del motor, los conjuntos de claves de variante y las listas de claves por tipo se capturan de la instalación de Orca en src/orca_profiles_mcp/data/engine-snapshot.json, fijados a su etiqueta de versión. Tras actualizar OrcaSlicer:

uv run python scripts/build_snapshot.py
uv run pytest

Pruebas

uv run pytest

Cuatro capas:

  • pruebas unitarias sobre una biblioteca de datos de prueba en miniatura, una por caso límite — herencia entre proveedores, el respaldo de Generic, renamed_from, ciclos, padres ausentes, vectores de paso 1 y paso 2, elementos nil;

  • rondas de escritura de ida y vuelta: leer → escribir sin cambios → el archivo es idéntico byte a byte;

  • pruebas de extremo a extremo que lanzan el punto de entrada empaquetado como subproceso y lo controlan mediante MCP stdio, cubriendo el registro de herramientas, un ciclo completo de creación/edición/verificación/eliminación y la propagación de errores;

  • comprobaciones contra la biblioteca instalada, incluida la verificación de deltas descrita anteriormente.

Las pruebas que usan la biblioteca real se omiten cuando no hay ningún directorio de datos de Orca; todo lo demás se ejecuta contra datos de prueba.

Documentos

  • Diseño: docs/specs/2026-08-17-orca-profiles-mcp-design.md — incluye lo que la lectura de las fuentes de OrcaSlicer estableció sobre el formato de perfil y lo que descartaron los experimentos con la CLI

  • Plan de implementación: docs/plans/2026-08-17-orca-profiles-mcp.md

Licencia

AGPL-3.0, al igual que OrcaSlicer. Este proyecto no contiene código de OrcaSlicer, pero su lógica de herencia es un port línea a línea de Preset.cpp y PrintConfig.cpp, y la instantánea del motor contiene valores predeterminados y listas de claves extraídos de esa fuente.

No está afiliado ni respaldado por el proyecto 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