Skip to main content
Glama

penny_delete

DestructiveIdempotent

Move to Trash. Project: projectId + expectedRevision + operationId; penny_edit op:restore recovers. Repeat in_progress with the same operationId; report partial_recovery conflicts. Note/tracker_entry: ids (max100); skill/rhythm: one id; profile_block: ids are block names. Tag/link removal uses the identifiers below. Tasks are canceled via penny_edit; tracker definitions are archived, not deleted.

Input Schema

NameRequiredDescriptionDefault
idsNonote/tracker_entry: IDs to trash, max 100. rhythm/skill: exactly one ID. profile_block: block names to trash.
tagANotag_relation: required edge endpoint to remove.
tagBNotag_relation: required other endpoint.
scopeNoProfile block scope; Project private overrides defaults, workspace requires workspaceId.
noteIdsNotracker_note_link: required note IDs to unlink.
projectIdNo
entityTypeYesWhat to trash.
operationIdNo
trackerEntryIdNotracker_note_link: required entry to detach notes from.
expectedRevisionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / ids / description
      Previous value: -"entityType:\"note\"/\"tracker_entry\" — ids to trash (max 100); \"rhythm\"/\"skill\" — exactly one id; \"profile_block\" — block names to trash."New value: +"note/tracker_entry: IDs to trash, max 100. rhythm/skill: exactly one ID. profile_block: block names to trash."
    • changedInput schema / properties / noteIds / description
      Previous value: -"entityType:\"tracker_note_link\" (required) — the notes to unlink."New value: +"tracker_note_link: required note IDs to unlink."
    • changedInput schema / properties / tagA / description
      Previous value: -"entityType:\"tag_relation\" (required) — one endpoint of the edge to remove."New value: +"tag_relation: required edge endpoint to remove."
    • changedInput schema / properties / tagB / description
      Previous value: -"entityType:\"tag_relation\" (required) — the other endpoint."New value: +"tag_relation: required other endpoint."
    • changedInput schema / properties / trackerEntryId / description
      Previous value: -"entityType:\"tracker_note_link\" (required) — the entry to detach notes from."New value: +"tracker_note_link: required entry to detach notes from."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds real value beyond them: the operationId retry rule ('repeat in_progress with the same operationId'), partial_recovery conflict reporting, and the recovery path via penny_edit op:restore. It does not state permission/auth requirements or the shape of a partial_recovery response, which keeps it from a 5.

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?

The purpose is front-loaded and every fragment carries information, but the telegraphic, semicolon-chained style ('Project: projectId + expectedRevision + operationId') strains readability. No sentence is filler, yet a little more structure would aid parsing.

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, no-output-schema, destructive multi-entity tool, the description covers recovery, idempotent retry, conflict handling, and per-entity applicability. It leaves gaps on return values and on which entity types accept which of the remaining parameters, but overall it is enough to call the tool safely.

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?

At 70% schema coverage the schema carries much of the load, yet the description adds conditional requirements the schema does not encode (projectId + expectedRevision + operationId for projects; 'one id' for skill/rhythm; block names for profile_block; tag/link identifiers). Some content, such as max 100 and 'exactly one ID', duplicates the ids schema description.

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?

The opening 'Move to Trash' states a specific action (soft delete, not hard delete) on memory entities, and the description goes on to distinguish per-entity behavior. It explicitly contrasts itself with penny_edit for tasks and tracker definitions, so an agent can separate this from siblings like penny_edit and penny_write without opening their schemas.

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?

It gives positive conditions (Project needs projectId + expectedRevision + operationId; tag/link removal uses the identifiers below) and explicit exclusions (tasks are canceled via penny_edit; tracker definitions are archived, not deleted). Alternatives are named rather than implied.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources