Skip to main content
Glama
GeiserX
by GeiserX

Remove service

remove_service
DestructiveIdempotent

Deletes a deployed service's containers from a worker while keeping volumes, so earnings stop but node identities and wallets survive for later redeployment.

Instructions

Remove a deployed service from one worker: its containers are deleted and it stops earning. Volumes are kept, so node identities and wallets survive and a later deploy_service picks them up. Confirm with the user before calling.

Input Schema

NameRequiredDescriptionDefault
slugYesService to remove. Lowercase catalog slug, e.g. "honeygain"; list_deployed_services and list_available_services show them.
worker_idNoWorker (server) to act on, from list_workers. Required when more than one worker is online; with a single online worker CashPilot picks it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.3.0
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / slug / description
      Previous value: -"Service slug to remove"New value: +"Service to remove. Lowercase catalog slug, e.g. \"honeygain\"; list_deployed_services and list_available_services show them."
    • addedInput schema / properties / slug / pattern
      Added value: +"^[a-z0-9][a-z0-9._-]{0,63}$"
    • addedInput schema / properties / worker_id
      Added value: +{
      +  "description": "Worker (server) to act on, from list_workers. Required when more than one worker is online; with a single online worker CashPilot picks it.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, and the description goes well beyond them by specifying exactly what is destroyed (containers, earning stops) and what survives (volumes, node identities, wallets). The confirmation requirement is a genuine operational instruction not present in any structured field.

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?

Three tight sentences, front-loaded with the action and scope, followed by consequences then the safety instruction. No filler or redundant restatement of the name.

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 two-parameter destructive tool with a fully documented schema and no output schema, the description covers destruction scope, data preservation, reversibility, and the required user confirmation. Nothing an agent needs in order to invoke it safely is missing.

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

Parameters3/5

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

Schema coverage is 100% and both parameters already carry cross-references to list_deployed_services, list_available_services and list_workers. The description only adds the phrase "from one worker" and otherwise adds nothing the schema does not already say, so baseline 3 applies.

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?

"Remove a deployed service from one worker" names a specific verb, resource and scope, and the follow-on sentences clarify the exact semantics (containers deleted, volumes retained). It stops short of explicitly contrasting with the similar-sounding siblings stop_service/restart_service, so an agent must infer that this is the permanent-removal option rather than a lifecycle toggle.

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?

It gives a concrete usage constraint ("Confirm with the user before calling") and describes the recovery path via deploy_service, which tells the agent this is reversible. It does not explicitly state when to prefer stop_service over remove_service, so alternatives are only implied.

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