orca-profiles-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@orca-profiles-mcpTrace where my outer wall speed value comes from in my current PLA profile."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
orca-profiles-mcp
An MCP server that reads and edits OrcaSlicer profiles. It expands the whole
inherits chain and shows which link set every value.
What it does
An OrcaSlicer profile stores only its differences from its parent. Opening the file is not enough to learn the outer wall speed: the value may come from the parent, from the parent's parent, or from the engine's built-in defaults. This server walks the chain to its root, computes the effective values and keeps their provenance.
It handles the parts of Orca that break naive readers:
parents are resolved by name, across vendors — a Sovol filament inherits from the OrcaFilamentLibrary;
a missing
Generic …parent falls back toGeneric <material> @System, and renamed profiles are found through theirrenamed_fromlist;vectors bound to extruder variants merge element by element, including the
nilmarker that means "keep the parent's value here";a child may declare more extruders than its parent — a toolchanger on top of a single-extruder machine profile — and both extruders keep their values;
keys that do not belong to the profile's type are dropped, because Orca drops them too; they are reported instead of being silently applied.
Related MCP server: renovate-mcp
Setup
cd ~/job/orca-profiles-mcp
uv syncRegister with Claude Code:
claude mcp add orca-profiles -- uv --directory ~/job/orca-profiles-mcp run orca-profiles-mcpTools
Tool | Purpose |
| discovered roots, Orca version, vendors, selected presets |
| search by type, name, vendor, source |
| profile in |
| inheritance chain to the root |
| where a specific value came from |
| which profiles inherit from this one |
| compare two profiles |
| compare against the OrcaSlicer repository |
| broken |
| verify expansion against the deltas Orca itself wrote |
reports redundant keys and unexplained vector lengths separately | |
| set values with delta recomputation |
| create a user profile |
| rename and delete |
| drop keys identical to the parent's |
Values are returned exactly as the files store them: "0.20" stays "0.20",
and "100%" stays a percentage. The engine normalises both when it slices;
this server does not, so what you read is what the profile says and what gets
written back is unchanged.
Writing profiles
Your own profiles are edited freely. Touching a system or bundled one requires
force=true: those files belong to a vendor library, the next profile update
restores them, and every descendant inherits the change.
Writes go through a temporary file and an atomic rename, so an interrupted
write cannot truncate a profile, and a backup copy is made next to the file
first (backup=false disables it). Values are checked before anything is
written — a key belonging to another profile type, a vector where the engine
wants a scalar, or a number where the format requires a string is refused
rather than stored and silently dropped by Orca. Settings your pinned snapshot
does not recognise are carried through untouched, so a profile written by a
newer Orca does not lose them.
OrcaSlicer reads profiles at startup and rewrites them at exit. Edits made while the application is running will be overwritten — close Orca first.
How correctness is checked
Orca's CLI cannot verify inheritance. --export-settings returns the engine
defaults plus the keys present in the files handed to it and never walks
inherits; selecting presets through OrcaSlicer.conf does not activate them;
passing a whole chain as a file list is rejected as a duplicate config file.
All three were tried against 2.4.2.
What Orca does leave behind is evidence of its own expansion: when it saves a
user profile it stores the minimal delta against the fully expanded parent. So
every profile Orca has written is a recorded answer. check_deltas recomputes
those deltas and compares — a mismatch means the resolver expands a parent
differently than the engine did.
This is what tests/test_smoke.py asserts against the installed library, and
it is how the toolchanger vector defect was found.
Keys stored despite already matching the parent are reported separately: they are harmless leftovers from before a parent changed, not resolver errors.
Refreshing the engine snapshot
Engine defaults, the variant key sets and the per-type key lists are captured
from the installed Orca into src/orca_profiles_mcp/data/engine-snapshot.json,
pinned to its version tag. After upgrading OrcaSlicer:
uv run python scripts/build_snapshot.py
uv run pytestTests
uv run pytestFour layers:
unit tests over a miniature fixture library, one per edge case — cross-vendor inheritance, the
Genericfallback,renamed_from, cycles, missing parents, stride-1 and stride-2 vectors,nilelements;write round-trips: read → write unchanged → the file is byte-identical;
end-to-end tests that spawn the packaged entry point as a subprocess and drive it over MCP stdio, covering tool registration, a full create/edit/verify/delete cycle, and error propagation;
checks against the installed library, including the delta verification described above.
Tests using the real library skip themselves when no Orca data directory is present; everything else runs against fixtures.
Documents
Design:
docs/specs/2026-08-17-orca-profiles-mcp-design.md— includes what reading the OrcaSlicer sources established about the profile format, and what the CLI experiments ruled outImplementation plan:
docs/plans/2026-08-17-orca-profiles-mcp.md
Licence
AGPL-3.0, matching OrcaSlicer itself.
This project contains no OrcaSlicer code, but its inheritance logic is a
line-by-line port of Preset.cpp and PrintConfig.cpp, and the engine snapshot
holds default values and key lists extracted from that source.
Not affiliated with or endorsed by the OrcaSlicer project.
Available Tools
15 toolscheck_deltasB
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
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description meaningfully explains what happens: deltas are recomputed, compared, mismatches indicate resolver/engine divergence, and redundant keys are reported separately and are harmless. Since no annotations are present, this behavioral disclosure is valuable, though side effects or read-only status are not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense sentence with no filler and front-loads the main purpose. The additional clause about mismatch meaning and harmless redundant keys is useful, though the phrasing is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain return format and parameter effects. It explains core semantics well but leaves scope undocumented and does not describe what the tool actually returns or prints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, scope, is entirely absent from the description. The schema provides a name, type, and default, but not the accepted values or how scope affects behavior. With 0% schema description coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action—verify inheritance expansion against the deltas Orca wrote—and explains what the verification does and what a mismatch means. It differentiates itself from siblings like validate or diff_profiles by focusing on whether the resolver expansion matches Orca's own delta records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like validate, compare_with_upstream, or diff_profiles. The context is implied by the description but no exclusions or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_with_upstreamC
Compare a profile against its version in the OrcaSlicer repository
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | main | |
| name | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the tool performs a network fetch, whether it can fail when the profile is missing upstream, what happens if the ref is invalid, or what the comparison output looks like. 'Compare' implies a read-only operation, but the description leaves important behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or repetition. It front-loads the action and object, and every word contributes to the core meaning. Conciseness here is excellent, though the content is incomplete in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no schema descriptions, no annotations, and no output schema, the description must carry substantial context. It provides only a one-line summary of the operation. An agent has no way to know how to fill the parameters, what the outcome will be, or how this fits with sibling tools. This is inadequate for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining the parameters. The meaning of 'type', 'name', and 'ref' is not clarified beyond raw titles, and no guidance is given about how they identify the profile or the upstream version. The description only mentions 'a profile', which is insufficient for three undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: compare a profile against the version in the OrcaSlicer repository. The 'against its version in the OrcaSlicer repository' phrasing helps distinguish it from the sibling diff_profiles, which is likely a more generic profile comparison. It could be slightly more explicit about exactly which profile identifier is used, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like diff_profiles, get_profile, or check_deltas. It does not mention prerequisites, when a comparison is appropriate, or when to prefer another tool. The intended context is only implied by the name and brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_profileC
Create a user profile inheriting from the given one
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| values | Yes | ||
| inherits | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure, but it only says the profile is created and inherits from another. It does not explain whether the new profile copies values, references the parent, merges CASECAPS, requires any permissions, or what happens if the parent path is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the core action and resource, and the inheritance behavior is included without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with four required parameters, a nested object, no output schema, and no annotations, the description is far too thin. An agent would not know the expected shape of 'values', how inheritance works, or whether the operation returns the created profile or merely confirms success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining what type, name, inherits, and values mean. It only hints at the 'inherits' parameter through 'inheriting from the given one,' leaving the semantics of 'values' and 'type' entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action—create—and a clear resource—a user profile—while adding the distinctive inheritance relationship via 'inheriting from the given one.' It is more informative than the bare tool name, but it does not explicitly differentiate from siblings like set_values or delete_profile beyond the obvious create semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as set_values, normalize_profile, or get_profile. The reader has to infer that creation is the intended use; there are no prerequisites, no exclusions, and no mention of whether the 'given one' must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_profileB
Delete a profile; deleting outside your own profiles needs force=True, and cloud-synced ones keep a flagged .info
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| force | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals two meaningful behaviors: the force requirement for profiles outside your own, and the leftover flagged .info for cloud-synced profiles. It does not mention irreversibility, permission errors, or what happens on success, which would strengthen transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence delivers the core purpose and two important behavioral caveats without filler. The information is front-loaded and every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the deletion action and the force rule, but it omits semantics for two required parameters, has no output schema, and lacks any note about confirmation or reversibility. For a destructive tool with no annotations, this is a meaningful gap in what an agent needs to call it correctly across scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains when force=True matters, but leaves the required `type` and `name` parameters undocumented. An agent would not know what values are valid for `type` or how `name` should be formatted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Delete') and resource ('profile'), with additional nuance about force and cloud-synced profiles. It does not explicitly contrast with sibling tools, but no sibling is a delete operation, so the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The force condition ('deleting outside your own profiles needs force=True') gives useful context for a specific scenario, and the overall use case is implied. However, it does not explicitly state when not to use this tool or point to alternatives such as rename_profile or create_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_profilesB
Compare two profiles by effective values (mode=resolved) or by their stored deltas (mode=raw)
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes | ||
| mode | No | resolved | |
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It does disclose the key behavioral distinction between mode=resolved (effective values) and mode=raw (stored deltas), which is useful. However, it does not state whether the operation is read-only, what the output shape is, or any error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core purpose and then adds the key mode distinction. Every word earns its place, and it is efficiently sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and zero schema description coverage, so the description must be self-sufficient. It explains the mode semantics but fails to address the required 'type' parameter, profile identifier format, or what the returned diff looks like. An agent could not reliably call this tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all four parameters. It adds meaning for 'mode' by explaining resolved vs raw, and it clarifies that a and b are two profiles, but the required 'type' parameter is completely unexplained. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Compare two profiles') and the two comparison modes, which distinguishes it from the raw name. However, it does not explicitly distinguish it from sibling tool compare_with_upstream, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for comparing two profiles, but it gives no guidance on when to choose this tool versus alternatives like compare_with_upstream or check_deltas. There are no exclusions, prerequisites, or explicit when-to-use/when-not-to-use cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_keyB
Where a key's value came from: originating link, overridden values, engine default
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| name | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does reveal that the tool produces provenance information and indicates the categories of origin it reports. It does not state whether the operation is read-only, what the return format is, or how it handles unresolved keys, leaving notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core purpose and uses a colon to enumerate the relevant provenance sources. It is concise and easy to parse, though the brevity comes at the cost of omitting parameter and usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three required parameters, no annotations, and no output schema, so the description must provide substantial guidance. It explains the general purpose but not how to fill in the parameters, what the response looks like, or how this tool relates to siblings such as get_chain or compare_with_upstream. An agent would struggle to invoke it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to explain the parameters, but it only gives meaning to 'key' by implying it refers to the key whose value is being explained. The 'type' and 'name' parameters remain completely unexplained, making it unclear how they identify the context or profile containing the key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as explaining a key's value provenance and names the categories involved: originating link, overridden values, and engine default. This distinguishes it from siblings like get_profile or diff_profiles, which perform different operations. It lacks an explicit verb, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use it when you need to understand why a key has a particular value or where that value came from. However, there is no explicit guidance on when not to use it or which sibling alternatives might be more appropriate for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_childrenC
Profiles inheriting from this one. Check before editing shared profiles
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. 'Check before editing shared profiles' implies a read-only, non-destructive query, which is useful, but the description does not specify whether inheritance is direct or transitive, what the returned data looks like, or any additional behavior an agent should expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely short, with no filler, and the use-case directive follows the functional phrase immediately. The main structural weakness is the vague referent 'this one,' which adds ambiguity despite the concise format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two unnamed parameters, no annotations, and no output schema, the description is too thin for an agent to call the tool confidently. It fails to explain how to populate name/type, what result to expect, and whether the child set is recursive, so the pre-edit check hint alone is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema exposes two required strings, 'name' and 'type', with zero descriptions, and the tool description never mentions either parameter. At 0% schema coverage, the description needed to compensate by explaining what values are valid, but it provides no parameter semantics at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'profiles inheriting from this one,' which tells the agent that the tool deals with descendant profiles, but it lacks an explicit verb such as 'find' or 'list' and reads as a sentence fragment. It does not distinguish this tool from sibling tools like list_profiles or get_chain, so the purpose is only inferable rather than precisely stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Check before editing shared profiles' gives a clear and actionable context: the tool should be invoked as a safety pre-check before modifications. It does not, however, name alternatives or state when this tool should not be used, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chainC
The inheritance chain to its root, with how each link was resolved
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that the output includes how each link was resolved, which is a useful behavioral detail, but it does not indicate whether the operation is read-only, what inputs it requires, or any side effects, errors, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and the core resource is front-loaded. It is appropriately sized for a simple two-parameter retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two required but undocumented parameters and no output schema, a one-sentence description of the result is insufficient. It does not explain what type and name refer to, how the chain is rooted, or how this relates to profiles and siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions 'type' or 'name'. The agent cannot infer what these parameters identify or what values are expected, so the description completely fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource—the inheritance chain to its root—and adds a useful detail about how links were resolved. The action is implied by the tool name 'get_chain', and the chain/root framing distinguishes it from siblings like get_profile or find_children, though no explicit verb is present.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as find_children or explain_key. There is no mention of prerequisites, input meaning, or situations where this tool is preferred or not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileC
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
| Name | Required | Description | Default |
|---|---|---|---|
| keys | No | ||
| mode | No | resolved | |
| name | Yes | ||
| type | Yes | ||
| group | No | ||
| limit | No | ||
| include_defaults | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the behavioral burden. It does disclose meaningful behavior: inheritance is expanded, mode changes what is returned, and engine defaults are excluded by default. However, it does not describe the output structure, how keys and limit affect results, or what errors/cases might occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the core purpose and packs mode semantics plus default-handling behavior efficiently. It has no filler, though it could have used a clearer subject-verb structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters, no annotations, no output schema, and many siblings, the description is too thin. It omits how the profile is located, what keys and limit do, what the returned data looks like, and when this tool should be preferred over related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all seven parameters. It only explains mode and include_defaults; keys, name, type, group, and limit are left unexplained, which is insufficient for confident invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning a profile with inheritance expanded and distinguishes its three modes (raw, resolved, traced), which separates it from sibling tools like list_profiles or normalize_profile. It lacks an explicit verb like 'returns', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains mode choices and the include_defaults behavior, but it never says when to choose get_profile over the many sibling tools, such as get_chain, explain_key, or diff_profiles. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_setupB
Discovered Orca profile roots, application version, vendors, selected presets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does convey that the tool surfaces discovered setup data, implying a read-only inspection, but it does not explicitly state side effects, caching, discovery behavior, or error/failure characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact line with no filler and it lists exactly the relevant output domains. However, it reads as a fragment rather than a complete instruction, so it could be slightly clearer without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, listing the returned data categories is nearly sufficient for correct invocation. It could be more explicit about the shape or grouping of the returned setup object, but nothing essential is missing for an agent deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty with zero parameters, so there is nothing for the description to add about parameters. The baseline of 4 applies because parameter semantics are not applicable here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource: discovered Orca setup data including profile roots, application version, vendors, and selected presets. This makes the purpose reasonably clear and implicitly distinct from profile-specific siblings, although the description lacks a direct verb such as 'returns' or 'gets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to call get_setup versus alternatives like list_profiles or get_profile. No conditions, prerequisites, or exclusions are mentioned, so the agent must infer usage from the tool name and the listed data fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_profilesC
Search profiles by type, name, vendor and source
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| query | No | ||
| source | No | ||
| vendor | No | ||
| compatible_with | No | ||
| include_abstract | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavior disclosure. 'Search profiles' implies a read-only listing operation, which is reasonably clear, but the description does not mention output shape, result limits, default behaviors like include_abstract=false, or whether filters are exact or partial matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise, front-loaded sentence with no filler or redundant phrasing. It is efficient, though it omits several parameters and usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 optional parameters, no output schema, and no annotations, yet the description covers only a subset of the filtering capabilities. There is no explanation of how query relates to name, what compatible_with does, how limit behaves, or what the response will contain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for type, 'name' (which is not an actual parameter), vendor, and source, but omits limit, compatible_with, and include_abstract, and does not explain the role of query. This is partial and slightly misleading due to 'name' not appearing in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a search action over profile resources and lists filtering dimensions: type, name, vendor, and source. It implies a listing/search tool distinct from singular operations like get_profile, but it does not explicitly differentiate itself from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_profile, diff_profiles, or find_children. The description gives no exclusions, prerequisites, or context to help an agent choose this tool over related profile tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normalize_profileC
Drop keys whose values are identical to the parent's
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| force | No | ||
| backup | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior, but it only says keys are dropped. It does not mention that this modifies profiles in place, whether changes are reversible, what backup/force do, what happens to child profiles, or any side effects—so a mutating tool is under-disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The sentence is grammatically tight and front-loaded with the main action, with no filler. However, it is so terse that it sacrifices necessary context about parameters and effects, making it under-specified rather than appropriately complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, no output schema, and no annotations, yet the description only covers the core drop behavior. It omits what 'parent' means, how force/backup alter execution, what happens to the profile, and what the result looks like, so the definition is not complete enough for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions none of the four parameters: name, type, force, or backup. It does not explain how these parameters affect the normalization behavior, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('drop') and the object ('keys whose values are identical to the parent's'), which clearly conveys a normalization/removal operation and distinguishes it from sibling tools like get_profile or delete_profile. However, it never explicitly names 'profile' or defines what 'parent' refers to, so a bit of inference is required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use normalize_profile versus alternatives such as diff_profiles, check_deltas, or compare_with_upstream. The use case is only implied by the operation described, with no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_profileC
Rename a user profile
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| new_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure, but it only states the action 'rename.' It does not disclose side effects, whether the operation is reversible, uniqueness constraints on new_name, or failure behavior for nonexistent profiles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, and there is no redundant text. However, brevity comes at the cost of substance, so it is merely minimally structured rather than well-crafted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and three required parameters, so the description should compensate; it does not. An agent cannot confidently determine the meaning of type or the expected result/errors from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the three parameters. It defines none of them: name, type, and new_name are left for the agent to guess, and type is especially ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('rename') and resource ('user profile'), which clearly sets it apart from sibling operations like create_profile, delete_profile, or list_profiles. It doesn't explicitly contrast itself with normalize_profile, but the rename operation is unambiguous enough for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use rename_profile rather than create_profile, delete_profile, or normalize_profile. There is no mention of prerequisites such as the profile existing, whether the rename is applied to an active setup, or how name/type identify the target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_valuesA
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes | ||
| force | No | ||
| backup | No | ||
| values | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it reveals automatic delta recomputation, paired .info updates, and the cascading effect on descendants when editing system or bundled profiles. It does not cover backup behavior or reversibility, but the key side effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. The main action is front-loaded, and the force qualification is placed in the second sentence without unnecessary explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, a nested values object, no output schema, and no annotation coverage. The description explains core side effects but leaves too much unresolved for correct invocation, especially the meanings of type, name, backup, and the expected structure of values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the 5 parameters, but it only adds meaning for force=True. It does not explain what type means, how name selects a profile, what shape values should take, or what backup does. This is a significant gap for required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Set profile values') and the word 'Editing' makes clear this modifies existing profiles. It is readily distinguished from siblings like create_profile, rename_profile, delete_profile, and read-oriented tools such as get_profile or list_profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given for when to use this tool versus alternatives such as create_profile or normalize_profile. The force=True note is a requirement for system/bundled profiles, not a tool-selection condition, and no exclusions or fallback tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validateC
Integrity check: broken inherits, cycles, unknown keys, redundant deltas, name collisions
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It lists what kinds of integrity problems are checked, but does not state whether the tool mutates anything, what kind of output it returns, whether it fails fast, or how results are reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, scannable, and front-loaded with the core purpose. The colon-delimited list of checks conveys a lot in a compact form, though it omits some necessary operational context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only one optional parameter, some brevity is acceptable, but the description leaves major ambiguities: what does 'scope' control, what does a successful or failed validation look like, and is the tool read-only? The agent would need to introspect or guess to invoke it correctly in a meaningful way.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the single optional 'scope' parameter at all. The schema only gives a default of 'user', leaving the agent without any understanding of what scope values are valid or how scope affects the validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific operation—'integrity check'—and enumerates concrete validation dimensions: broken inherits, cycles, unknown keys, redundant deltas, and name collisions. This is clearer than a generic 'validate' and helps distinguish it from sibling tools like check_deltas or normalize_profile, though it never names the resource being validated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to run validate versus related sibling tools such as check_deltas, normalize_profile, or compare_with_upstream. The description gives no context about prerequisites, exclusions, or the typical situation in which this tool should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
15 tool updates
v0.1.0- First observed
check_deltas - First observed
compare_with_upstream - First observed
create_profile - First observed
delete_profile - First observed
diff_profiles - First observed
explain_key - First observed
find_children - First observed
get_chain - First observed
get_profile - First observed
get_setup - First observed
list_profiles - First observed
normalize_profile - First observed
rename_profile - First observed
set_values - First observed
validate
TDQS
Most tools have clearly distinct purposes: get_profile expands inheritance, get_chain shows the chain, explain_key traces a single key's origin. However, validate and check_deltas both verify integrity and could be confused; diff_profiles and compare_with_upstream both compare but to different targets. Descriptions are detailed enough to resolve ambiguity.
All tool names follow a consistent snake_case imperative verb-noun pattern (get_setup, list_profiles, set_values, create_profile). Even compound names like compare_with_upstream and check_deltas fit the pattern. No mixed conventions or vague verbs.
15 tools is well-scoped for a profile management server, covering discovery, inspection, mutation, validation, and comparison. Each tool addresses a distinct need without unnecessary duplication.
The tool surface provides full lifecycle coverage: create, read (multiple views), update, delete, rename, plus validation, diffing, and impact analysis (find_children). Missing operations like import/export are not core to the domain, and the set appears complete for effective profile management.
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
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI assistants to control and monitor Klipper 3D printers via the Moonraker API. It supports comprehensive printer management, including G-code execution, toolchanger operations, and real-time status monitoring.22-
- AlicenseNot gradedqualityAmaintenanceAn MCP server for interactively reading, validating, previewing, and saving Renovate configurations with LLM assistance.8810MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for the Obsidian CLI with controlled profiles for governed read-only and mutation operations, plus a personal-unrestricted profile for full access.16AGPL 3.0
- FlicenseNot gradedqualityBmaintenanceProfile-driven MCP server for safely inspecting and changing local Git repositories via a Streamable HTTP endpoint with deny-by-default security.1-
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