Skip to main content
Glama

end_process

Destructive

Terminates a process by PID, sending SIGTERM then SIGKILL if it does not exit; optionally ends its process tree first. Refuses critical system and Anabolic processes.

Instructions

Ends a process (SIGTERM, then SIGKILL if it has not ended within two seconds), or with tree=true it and every process under it (those first). Unsaved work in it may be lost. The system's critical processes (init, the kernel, the session's compositor) and Anabolic are refused; a game or anti-cheat program needs force=true after the user agreed.

Input Schema

NameRequiredDescriptionDefault
pidYesThe process ID.
treeNoAlso every process under it (they end first).
forceNoTrue only after the user agreed to the risk this tool described.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond the destructiveHint annotation: the escalation signal sequence, the two-second grace window, the ordering guarantee that children die first under tree=true, the data-loss caveat, and the refusal list including init, the kernel, the compositor, and Anabolic. These are exactly the operational 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.

Conciseness4/5

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

Dense and mostly front-loaded, with the escalation behavior first, the danger warning second, and the refusal/force rules last. The clause "or with tree=true it and every process under it (those first)" is grammatically elliptical and takes a second read, which is the main structural blemish.

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 three-parameter destructive tool with no output schema, the description covers the danger, the escalation timing, the subtree ordering, and the refusal/force policy — everything needed to call it correctly and safely. Return shape need not be explained absent an output schema, and error behavior is adequately implied by the refusal list.

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, but the description adds meaning the schema does not: it names the concrete class of programs (games, anti-cheat) that require force=true, and restates the tree ordering constraint. The pid parameter's semantics (liveness, reuse, what happens if the process already exited) are not elaborated.

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 precise verb and resource ("Ends a process") and immediately specifies the mechanism (SIGTERM, then SIGKILL after two seconds) plus the tree variant. An agent can tell this apart from siblings like suspend_process, limit_process, or why_process_will_not_end without opening any schema.

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?

Gives clear conditional guidance: tree=true for the subtree, force=true only after user agreement for games/anti-cheat, and notes which processes will be refused. It stops short of naming an explicit alternative (e.g., why_process_will_not_end when a kill is refused, or suspend_process when termination is not wanted), so routing to siblings is left implicit.

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