Skip to main content
Glama

apps_save

Destructive

Publish a completed draft and atomically save its .vrchapp package, while reporting package-save success separately from preview or device application results.

Instructions

Publish the completed draft and atomically save its .vrchapp package. Separate saved package success from preview/device application results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
operationIdNo
workspaceIdYes
expectedRevisionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructive=true, idempotent=false, readOnly=false, and openWorld=true, so the safety profile is covered. The description adds real value with 'atomically' and the warning to separate package-save success from preview/device application results, but it says nothing about the optimistic-concurrency behavior implied by expectedRevision or what a failed atomic save leaves behind.

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?

Two tight sentences with the primary action front-loaded and no filler. The second sentence earns its place by disambiguating two result channels, though it reads as terse CLI-style prose rather than an explainable definition.

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

Completeness2/5

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

This is a destructive, non-idempotent mutation with a required concurrency parameter, no output schema, and no parameter documentation — and the description omits the failure/retry story, permission requirements, and the relationship to apps_publish. Given that complexity, two sentences are not enough for an agent to call it safely.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema documents no parameter meaning at all and the description must compensate — it does not. None of operationId, workspaceId, or expectedRevision are named or explained, and expectedRevision in particular is a concurrency token whose semantics are essential and entirely undocumented.

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

Purpose4/5

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

States a specific verb and resource ('Publish the completed draft and atomically save its .vrchapp package'), which is far more concrete than a tautology. However, it does not distinguish itself from the sibling tool literally named apps_publish, leaving genuine ambiguity about which one an agent should call.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus apps_publish, apps_preview_input, or apps_control, all of which plausibly overlap. The only guidance is interpretive ('Separate saved package success from preview/device application results'), which tells the agent how to read results, not when to invoke the tool.

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