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 syncЗарегистрируйте в Claude Code:
claude mcp add orca-profiles -- uv --directory ~/job/orca-profiles-mcp run orca-profiles-mcpИнструменты
Инструмент | Назначение |
| обнаруженные корни, версия Orca, вендоры, выбранные пресеты |
| поиск по типу, имени, вендору, источнику |
| профиль в режиме |
| цепочка наследования до корня |
| откуда взялось конкретное значение |
| какие профили наследуют от этого |
| сравнить два профиля |
| сравнение с репозиторием OrcaSlicer |
| сломанные |
| проверить развёртывание по дельтам, которые записала сама Orca |
сообщает об избыточных ключах и необъяснимых длинах векторов отдельно | |
| установить значения с пересчётом дельт |
| создать пользовательский профиль |
| переименовать и удалить |
| удалить ключи, идентичные родительским |
Значения возвращаются ровно в том виде, в каком они хранятся в файлах: "0.20"
остаётся "0.20", а "100%" остаётся процентным значением. Движок нормализует
оба при нарезке; этот сервер — нет, поэтому вы читаете ровно то, что указано
в профиле, и записывается обратно без изменений.
Запись профилей
Ваши собственные профили можно редактировать свободно. Изменение системного
или встроенного профиля требует force=true: такие файлы принадлежат библиотеке
вендора, следующее обновление профилей восстановит их, и каждый потомок
унаследует изменение.
Запись выполняется через временный файл и атомарное переименование, поэтому
прерванная запись не может обрезать профиль; сначала рядом с файлом создаётся
резервная копия (backup=false отключает её). Значения проверяются до записи
чего-либо: ключ, принадлежащий другому типу профиля, вектор там, где движок
ожидает скаляр, или число там, где формат требует строку, — отклоняются,
а не сохраняются и молча отбрасываются Orca. Настройки, которые ваш закреплённый
снимок не распознаёт, переносятся без изменений, поэтому профиль, записанный
более новой Orca, не теряет их.
OrcaSlicer читает профили при запуске и переписывает их при выходе. Изменения, сделанные во время работы приложения, будут перезаписаны — сначала закройте Orca.
Как проверяется корректность
CLI Orca не может проверить наследование. --export-settings возвращает
значения по умолчанию движка плюс ключи, присутствующие в переданных ему файлах,
и никогда не обходит inherits; выбор пресетов через OrcaSlicer.conf не
активирует их; передача всей цепочки как списка файлов отклоняется как
дублирующийся конфигурационный файл. Все три варианта были опробованы на версии
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 pytestЧетыре уровня:
модульные тесты на миниатюрной библиотеке фикстур, по одному на каждый краевой случай — наследование между вендорами, запасной вариант
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