orca-profiles-mcp
orca-profiles-mcp
一个读取和编辑 OrcaSlicer 配置文件的 MCP 服务器。它会展开完整的 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。
如何检查正确性
Orca 的 CLI 无法验证继承关系。--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