Skip to main content
Glama

Update one Workbench component

update_component
DestructiveIdempotent

Update one Workbench component by id: re-run its install script to fetch the current version. Preview with dryRun; set confirm:true to apply, overwriting files and requiring write permission.

Instructions

Update one Workbench component in place by id: re-run its install script to fetch the current version (e.g. opencode re-runs the official installer; npm-mcps reinstalls the latest globals). It OVERWRITES the component's files, needs write permission, and can take minutes for global installs; the resolved version may change. Parameter semantics: component must be an id from describe_workbench; workspace defaults to ~/opencode-workbench; dryRun previews; confirm defaults to false — set confirm:true to apply. For the whole profile use apply_clone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoReport the action without changing anything.
targetYesThe machine to operate on: this host (local) or a remote host over SSH (ssh).
confirmNoSet true to actually update. When absent, the call returns a preview and makes no changes.
componentYesComponent id from describe_workbench.
workspaceNoProfile repo directory (used by components whose update needs it).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesComponent id acted on.
codeYesExit code of the action.
actionYesWhat happened: removed, updated, already absent, or manual (no automated uninstall).
outputYesCaptured output (truncated).
targetYesLabel of the target.
requiresConfirmationNoTrue when the call returned a preview without acting; re-call with confirm:true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.0.1

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/openWorldHint annotations: it discloses that files are OVERWRITTEN, that write permission is needed, that the operation can take minutes for global installs, that the resolved version may change, and that confirm defaults to false with a preview otherwise. These are exactly the operationally relevant facts an agent needs before invoking a destructive tool.

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

Conciseness5/5

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

Purpose and mechanism are front-loaded, then risk (overwrite, permission, duration), then parameter semantics, then the sibling alternative. Dense but every clause carries information; nothing is redundant with the schema or annotations.

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, long-running, permission-gated mutation with an output schema and full parameter documentation, the description covers effect, preconditions, duration, defaults, and the alternative tool. An agent has everything needed to call it correctly without inferring anything.

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 already 100%, so the baseline is 3, but the description adds value the schema does not: it constrains `component` to an id from describe_workbench and supplies the actual default for `workspace` (`~/opencode-workbench`), which the schema leaves unspecified. It omits detail on the nested `target` object, but that is thoroughly documented in the schema.

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 and resource ('Update one Workbench component in place by id') and immediately explains the mechanism: re-running the component's install script to fetch the current version, with concrete examples (`opencode`, `npm-mcps`). This is unmistakably distinct from the sibling apply_clone, which it explicitly names as the whole-profile alternative.

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

Usage Guidelines4/5

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

Clearly tells the agent how to actually apply the change ('set `confirm:true` to apply', `dryRun` previews) and routes the whole-profile case to apply_clone. It does not explicitly state when *not* to use this tool (e.g. use install_component for a component that isn't installed yet), so it stops short of full 5-level routing.

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