Skip to main content
Glama
orcaslicer-mcp

orcaslicer-mcp

Open project (replaces the open session)

open_project
Destructive

Opens a saved .3mf project with its plates, objects, presets, and colors, replacing the current project and resolving unsaved changes by save, discard, or fail.

Instructions

Open a saved .3mf project with its plates and settings, replacing the open one; load_model only adds a model's geometry.

As with File > Open Project, plates, objects, per-object and per-plate settings, slot presets and colours all come back. Use open_recent_project for an entry of File > Recent and browse_projects to find project files in a folder.

The two prompts OrcaSlicer would show are answered from the arguments, so nothing blocks. Unsaved preset overrides are dropped before the open because the project's config replaces them; the reply names those groups in discarded_changes. Call get_project first if you are unsure whether the user has unsaved work in the window, and pass if_unsaved='save' or 'discard' deliberately. A project that brings its own scripts, custom G-code or printer connection is refused (blocked_by_remote_api_policy, with the keys) unless the user allows those edits in OrcaSlicer's Preferences; nothing changes then. Needs fork v2.4.2-mcp.15 or later.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "path": "<path>"
    },
    "name": "open_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
pathYesA .3mf project on the OrcaSlicer host.
presetsNo'project' (default) selects the printer, print and filament presets stored in the project, as OrcaSlicer does. 'keep_current' opens the project and then selects the presets that were active before the call again (for names that still exist); the project's own config overrides are not kept in that mode.project
if_unsavedNoWhat to do when the current project has unsaved changes: 'fail' (default) refuses and changes nothing, 'save' writes it to its own path first (fails with no_project_path if it has none), 'discard' throws the changes away.fail

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.21

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint=true annotation: it discloses that unsaved preset overrides are dropped and surfaced in discarded_changes, that the usual interactive prompts are auto-answered from arguments, that projects with scripts/custom G-code/printer connections are refused with blocked_by_remote_api_policy, and that a minimum fork version is required. The only gap is that it doesn't say much about what the reply contains beyond discarded_changes, but the destructive consequences are fully spelled out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and sibling differentiation in the first sentence, then behavior, then prerequisites. Dense and mostly waste-free, though the parenthetical policy and version notes make it longer than strictly needed for a three-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive open/replace operation with no output schema, it covers consequences (discarded preset groups), failure modes (blocked_by_remote_api_policy, unsaved-work handling), and version requirements. Nothing an agent needs to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it tells the agent to pass if_unsaved='save' or 'discard' deliberately (the default 'fail' changes nothing) and explains the consequence of dropped config. It doesn't re-explain the presets enum, which the schema already covers well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Open a saved .3mf project') and immediately scopes it ('with its plates and settings, replacing the open one'), then contrasts with load_model which 'only adds a model's geometry'. The agent can distinguish it from related siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names three alternatives with the condition that selects each: open_recent_project for File > Recent entries, browse_projects for locating files in a folder, load_model for geometry-only adds. It also gives a pre-condition workflow: 'Call get_project first if you are unsure whether the user has unsaved work in the window'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.