Skip to main content
Glama

telegram_archive_forget

DestructiveIdempotent

Erase a Telegram chat's archived messages from local storage using its marked chat ID. Idempotent; returns forgotten false if nothing was stored.

Instructions

Effect local_write. Use when the user wants one chat's archived messages erased from this machine. Do not use this to leave the chat on Telegram; call telegram_plan_leave_chat, or telegram_archive_status to see what is stored first. Deliberately not gated on the read allowlist: a chat just removed from it is precisely the one whose copy on disk ought to go, and refusing would strand personal data with no way to remove it. Idempotent — forgetting a chat that was never archived reports forgotten: false rather than failing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountNoAccount label to use. Omit when exactly one account is configured.
chat_idYesMarked chat id to erase from the archive, as `archive status` reports it. An id and not a @username or a link: deleting local data must not depend on Telegram resolving anything, or a chat that has since been left could never be erased.

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 cover destructive/idempotent/openWorld, but the description adds real context beyond them: the deliberate exemption from the read allowlist and the rationale (a chat just removed from it must still be erasable or data is stranded), plus the observable idempotent behavior (reports forgotten: false instead of failing).

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?

Front-loads the effect marker and the primary trigger, then layers exclusions, rationale, and idempotency. Slightly long and the allowlist rationale is discursive, but every sentence carries decision-relevant information rather than filler.

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 local mutation with no output schema, the description supplies the authorization posture, the alternative route for the tempting-but-wrong sibling action, and partial return semantics (forgotten: false). It stops short of describing the full response shape, but that is a minor gap.

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 100% and the schema already states that chat_id is 'an id and not a @username or a link' with the resolution rationale, so the description adds little parameter meaning beyond structured fields. Baseline 3 is correct; it neither misleads nor enriches the params.

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+resource+scope: erasing ONE chat's archived messages from THIS machine. It also explicitly demarcates itself from adjacent operations (leaving the chat) and names the tools that serve those purposes. An agent can tell it apart from telegram_archive_sync/status/search 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 Guidelines5/5

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

Explicit when-to-use (user wants a chat's archived messages erased locally), explicit when-NOT (not for leaving the chat), and routes to alternatives: telegram_plan_leave_chat for leaving and telegram_archive_status to inspect what is stored first. Nothing is left to inference.

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