Skip to main content
Glama

Remove a person's access

people_remove
DestructiveIdempotent

Revoke a person's local access across private HTTP/file services, then clean up pending device invitations; confirm first. Retains a deny tombstone so retries resume deferred remote cleanup.

Instructions

Revokes a person locally across private HTTP/file services before cleaning up pending device invitations, so confirm with the user before calling. Retains a deny tombstone. Local denial needs no token; remote cleanup needs a user-owned API token and reports deferred or partial work in complete/cleanup. Retry resumes cleanup. Unknown POSTs require explicit owner-verified reconcile_invites app=id or app=none, with remote listing. Accepted network shares may remain. TCP/Funnel are outside person enforcement; in-flight streams finish.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
whoYes
reconcile_invitesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
loginYes
cleanupYes
removedYes
revokedYes
completeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare destructive/openWorld/idempotent, but the description goes well beyond them: a retained deny tombstone, no token needed for local denial vs. a user-owned API token for remote cleanup, deferred or partial work surfaced in complete/cleanup, retry resuming cleanup, accepted network shares possibly remaining, and TCP/Funnel and in-flight streams being outside enforcement. This is exactly the extra side-effect and partial-success disclosure that annotations cannot carry.

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?

It is front-loaded with the action and the confirmation warning, and nearly every sentence carries distinct information. The cost is heavy jargon ('deny tombstone', 'owner-verified reconcile_invites app=id') that makes the later sentences hard to parse on first read.

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 destructive, token-gated operation with an output schema present and safety annotations already supplied, the description covers the behavioral edge cases (partial work, retries, tombstones, unenforced transports) well. The main gap is that it does not position the tool against its near-identical sibling people_revoke.

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 description coverage is 0% for 2 parameters, so the description must compensate. It partly does for reconcile_invites (owner-verified, app=id or app=none, tied to unknown POSTs with remote listing) but leaves the shape and semantics of the nested object vague, and says nothing about 'who' beyond the obvious person reference.

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 description states a specific verb and resource: it 'revokes a person locally across private HTTP/file services' and cleans up pending device invitations, so the core action is unambiguous. However, it never distinguishes itself from the very close sibling people_revoke (nor people_grant/guest_revoke), so an agent cannot tell from the text which removal tool to pick.

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

Usage Guidelines3/5

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

It gives an operational directive ('confirm with the user before calling') and conditional triggers for retry and for reconcile_invites on unknown POSTs, which is useful context. But it names no alternatives and gives no explicit when-not guidance relative to people_revoke or the other revoke/remove siblings, leaving selection to inference.

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