MCP server that reads and edits OrcaSlicer profiles with full inheritance expansion
Server has 15 well-named tools with consistent verb_noun patterns (get_, list_, create_, delete_, etc.). All tools have descriptions (10 - 200 chars, within baseline 34 - 392 range). However, input schemas are INFERRED from Python function signatures, not explicitly visible in JSON Schema format. Parameter descriptions exist in docstrings but are not formally declared in schema objects. Output schemas are completely undocumented, LLMs cannot predict return structure. Error handling is absent; no recovery guidance or categorization. Security considerations (force flags, backup options) are present but not formally gated. Composition is strong: tools are single-responsibility and chainable (e.g., list_profiles → get_profile → explain_key). Naming is excellent (18 - 24 chars, action-first). This is a solid domain-specific server hampered by schema formality and error handling gaps.
Verify inheritance expansion against the deltas Orca itself wrote: for every profile, the delta is recomputed and compared with the file. A mismatch means the resolver expands the parent differently than the engine did; redundant keys are reported separately and are harmless
Compare a profile against its version in the OrcaSlicer repository
Create a user profile inheriting from the given one
Delete a profile; deleting outside your own profiles needs force=True, and cloud-synced ones keep a flagged .info
Compare two profiles by effective values (mode=resolved) or by their stored deltas (mode=raw)
Where a key's value came from: originating link, overridden values, engine default
Input schemas are inferred from Python function signatures, not formally declared as JSON Schema objects. LLMs cannot parse parameter types, constraints, or enums from code, they need explicit schema definitions.
Output schemas are completely undocumented. Tools return dicts with no declared structure. LLMs cannot predict fields, types, or nesting, forcing them to guess or fail on downstream tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Profiles inheriting from this one. Check before editing shared profiles
The inheritance chain to its root, with how each link was resolved
A profile with inheritance expanded. mode: raw — file contents, resolved — effective values, traced — values with provenance. Engine defaults are excluded unless include_defaults is set
Discovered Orca profile roots, application version, vendors, selected presets
Search profiles by type, name, vendor and source
Drop keys whose values are identical to the parent's
Rename a user profile
Set profile values. The delta against the parent is recomputed automatically and the paired .info is updated. Editing a system or bundled profile affects every descendant and needs force=True
Integrity check: broken inherits, cycles, unknown keys, redundant deltas, name collisions. Returns counts per code plus the first `limit` diagnostics; narrow with code= or severity=
No error handling or recovery guidance. Tools fail silently or return generic dicts. LLMs cannot distinguish retryable errors from user-fixable ones, and have no guidance on next steps.
Destructive operations (delete_profile, set_values, normalize_profile) lack confirmation or dry-run support. Agents can accidentally delete or modify profiles without a safety gate.
Parameters like 'mode' and 'scope' accept free-form strings with no enum constraints. LLMs may hallucinate invalid values (e.g., mode='invalid' instead of 'raw'|'resolved'|'traced').