orca-profiles-mcp
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 aGeneric <material> @System, y los perfiles renombrados se encuentran a través de su listarenamed_from;los vectores vinculados a variantes de extrusor se fusionan elemento a elemento, incluido el marcador
nilque 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 syncRegístrate con Claude Code:
claude mcp add orca-profiles -- uv --directory ~/job/orca-profiles-mcp run orca-profiles-mcpHerramientas
Herramienta | Propósito |
| raíces descubiertas, versión de Orca, proveedores, ajustes preestablecidos seleccionados |
| búsqueda por tipo, nombre, proveedor, fuente |
| perfil en modo |
| cadena de herencia hasta la raíz |
| de dónde procede un valor concreto |
| qué perfiles heredan de este |
| comparar dos perfiles |
| comparar con el repositorio de OrcaSlicer |
|
|
| 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 | |
| establecer valores con recálculo de deltas |
| crear un perfil de usuario |
| renombrar y eliminar |
| 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 pytestPruebas
uv run pytestCuatro 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, elementosnil;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 CLIPlan 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.
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