Skip to main content
Glama

Apply a Workbench clone

apply_clone
DestructiveIdempotent

Apply the OpenCode Workbench profile to a local or SSH target: clones repo, installs missing components, and overwrites config; preview by omitting confirm.

Instructions

Apply the Workbench profile to a target: clone the repo and install missing components (OpenCode CLI, Node/pnpm, MCP servers, skills, plugins, optional Docker). It OVERWRITES <home>/.config/opencode/opencode.json, copies AGENTS.md, resets an existing profile repo to origin/main, and runs global installs that need write permission (plus SSH for mode:ssh) and can take minutes. Writes a names-only ~/.env.workbench (mode 600); never secret values. Consent-gated and idempotent: without confirm:true it returns the plan and changes nothing. Parameter semantics: components defaults to required+core; workspace defaults to ~/opencode-workbench; skipRepo skips the clone/update; profileUrl overrides the git remote; dryRun returns the plan. To preview only, use plan_clone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoReport only; make no changes.
targetYesThe machine to operate on: this host (local) or a remote host over SSH (ssh).
confirmNoSet true to actually install. When absent, the call returns a plan and makes no changes.
skipRepoNoDo not clone/update the profile repo on the target.
workspaceNoTarget directory for the profile repo.
componentsNoComponent ids to include; defaults to required+core.
profileUrlNoOverride profile git URL.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
planNoPresented when confirmation is required.
modelYesDefault model selected for the target (DeepSeek when its key is present, else the OpenCode Zen free floor).
dryRunYesTrue when the run made no changes.
targetYesLabel of the target.
envPathYesPath of the written ~/.env.workbench template.
envVarsYesEnvironment variable names listed in the env template.
skippedYesComponent ids skipped (already present or manual).
degradedYesCapabilities disabled because required credentials are absent; fill the named env vars to enable them.
installedYesComponents installed, with exit codes and output.
workspaceYesDirectory where the profile repo was cloned.
configPathYesPath of the written opencode.json.
providerModeYesWhich provider the model resolves to.
requiresConfirmationNoTrue when the call returned a plan without applying; re-call with confirm:true to install.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.0.1

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the exact files overwritten (opencode.json, AGENTS.md), the repo reset to origin/main, global installs requiring write permission and SSH for mode:ssh, multi-minute duration, and the names-only mode-600 ~/.env.workbench write with no secret values. This is rich behavioral context consistent with destructiveHint=true and idempotentHint=true.

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?

Dense but front-loaded, leading with the destructive writes before the softer parameter notes. Every sentence carries new information; slightly long as a single block, but nothing is redundant with the schema.

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, multi-step, consent-gated tool with an output schema, the description covers the side effects, permission/time requirements, and parameter defaults an agent needs to invoke it safely. Return-value explanation is correctly omitted since an output schema exists.

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% (baseline 3), but the description adds real meaning: it documents defaults not fully stated in the schema (workspace defaults to ~/opencode-workbench), clarifies skipRepo/profileUrl/dryRun behavior, and ties mode:ssh to SSH auth requirements.

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 ('Apply the Workbench profile', clone repo, install missing components) and enumerates the exact artifacts touched. It clearly distinguishes itself from the sibling plan_clone by naming it as the preview-only alternative.

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?

Explicitly tells the agent when to use it and when not: consent-gated (needs confirm:true, otherwise returns a plan and changes nothing) and 'To preview only, use plan_clone.' Named alternative plus the condition that selects it.

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