Skip to main content
Glama

ship

Destructive

Apply edits, create or move files, then run verify commands in one call. If any check fails, all files are restored byte-for-byte so changes only land when tests pass.

Instructions

Edit files and run the tests in ONE call. Applies search/replace edits or a patch, new files, moves and deletes across any number of files, then runs your verify command(s). If verify fails, every file is restored byte-for-byte and you get the failing output. If an edit cannot be applied, nothing is written and the reply shows the nearest text. Prefer it over separate edit calls (or apply_patch) plus a test run whenever a change spans files or must pass a check.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "ship"
  }
}

Input Schema

NameRequiredDescriptionDefault
rootNoSubdirectory of the workspace to work in (default: the workspace root).
editsNoSearch/replace edits. search is text copied from the file and must identify one place, unless replace_all. Several edits may name the same file.
movesNoRename or move files. Edits in the same call use the new path.
patchNoInstead of edits: one patch for any number of files, in apply_patch format (*** Begin Patch / *** Update File: path / @@ / lines starting with space, - or +) or as a unified diff.
verifyNoCommands that must each exit 0, run in order, e.g. ["npm test"]. Omit only for untestable changes.
writesNoCreate or fully replace files.
deletesNoFiles to delete.
timeout_msNoPer-command verify timeout (default 60000, max 300000).
allow_secretsNoAllow changing secret files.
rollback_on_failNoRestore files if verify fails (default true).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructive=true and non-idempotent, but the description adds the critical behavior the annotations cannot express: all-or-nothing semantics. It states that a failed verify restores every file byte-for-byte, that an unappliable edit writes nothing, and that the reply returns failing output or the nearest matching text — exactly the failure-mode information an agent needs before invoking a destructive multi-file write.

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?

Four sentences, front-loaded with the one-call purpose, followed by success path, failure semantics, and a routing rule. No filler or restatement of the tool name; each sentence carries distinct information.

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

Completeness4/5

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

For a 10-parameter destructive tool with no output schema, the description covers atomicity, rollback, and error diagnostics well. It stops short of describing the success reply shape or where verify commands execute, which an agent composing calls might still want.

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; the description earns above that by explaining how parameters interact — edits and moves are applied together (edits use the new path), and verify gates whether any of it persists. It does not elaborate on timeout_ms, allow_secrets, or root, but the schema covers those adequately.

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?

The first sentence states a specific compound action — apply file edits (search/replace, patch, writes, moves, deletes) and run verify commands atomically in one call. It is unambiguous about scope (any number of files) and distinguishes itself from generic 'separate edit calls' or 'apply_patch' plus a test run. It does not name or contrast the sibling tools 'batch' and 'pack', so sibling differentiation is only partial.

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?

The closing sentence gives an explicit selection rule: prefer this over separate edit calls or apply_patch plus a test run 'whenever a change spans files or must pass a check'. The schema further narrows it ('Omit [verify] only for untestable changes'). Both the when and the when-not are stated.

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

Deploy Server

Other Tools