Skip to main content
Glama

termgram

crates.io GitHub release ci license

Telegram in the terminal. A complete MTProto client, an MCP server, and a push stream, in one place.

termgram talks to Telegram natively over MTProto (via the grammers stack). No Bot API, no external services. One unified command sends text, rich media, tappable date chips and scheduled messages. A local mirror makes search instant. And two hooks let your own tools react the moment a message lands:

  • termgram-mcp, an MCP server: every CLI command becomes a tool, and new messages are pushed to the client as server→client notifications.

  • termgram-notify, an SSE stream: a plain HTTP endpoint any script can subscribe to.

For people who live in the terminal and want AI on top of their chats.

Highlights

  • One unified send pipeline. Text, plain/markdown/html formatting parsed into real Telegram entities, tappable date chips, photos, documents, voice notes, albums, replies, scheduling, forum topics. All through one send command.

  • Local search mirror. sync once, then search offline-instant across every chat. Missing chats auto-sync on demand, with a live API fallback.

  • Full chat tooling. Polls, reactions, drafts, pins, folders, contacts, members, kick/ban/promote, export/import/wipe.

  • Push, not polling. New messages arrive through a broadcast signal; wait blocks server-side on a real Telegram push and returns instantly.

  • Per-chat notification filter. Tell the MCP server which chats to push, or push everything.

  • One auth for everything. A single session drives the CLI, MCP server and notifier. Multiple accounts supported.

Related MCP server: Fast MCP Telegram

Getting started

1. Register an app

Telegram needs an API ID and hash per client. Create one at my.telegram.org (any value works; it's your own account).

2. Configure

termgram keeps everything under ~/.config/termgram/. On first run it writes a config.toml template; fill it in:

# ~/.config/termgram/config.toml
api_id = 123456
api_hash = "0123456789abcdef0123456789abcdef"

3. Login

termgram login            # enter your phone number, receive a code
termgram login 12345      # verify the code

Your session is stored in ~/.config/termgram/session.db. One login is shared by the CLI, the MCP server and the notifier.

4. Install the binaries

Build the workspace and copy the three binaries into your PATH:

cargo build --release
cp target/release/termgram ~/.local/bin/
cp target/release/termgram-mcp ~/.local/bin/
cp target/release/termgram-notify ~/.local/bin/

Or install each crate from crates.io with cargo install termgram-cli termgram-mcp termgram-notify, or from source with cargo install --path crates/cli, cargo install --path crates/mcp, cargo install --path crates/notify. Prebuilt binaries are attached to every GitHub release.

CLI

Send anything, one command

termgram send saved 'hello'                      # plain text
termgram send saved '**bold** text' --format md  # rich text
termgram send saved 'see you' --date '14/09 17:00' --date '15/09 09:00'
termgram send saved 'photo' --file shot.png      # photo / document / voice
termgram send saved --file a.png --file b.png    # album
termgram send someone --at '16:00'                 # scheduled
termgram send saved 'into a topic' --topic 42    # forum topic
termgram send saved 'reply me' --reply 1108131   # reply

--date repeats to add more tappable date chips. Formats are plain, md, and html.

Everyday commands

termgram dialogs                 # all chats, unread counts, last message
termgram messages saved          # recent messages, newest last
termgram watch saved             # tail a chat live
termgram watch --unread          # survey chats with unread messages
termgram read saved              # mark as read
termgram sync                    # index everything locally
termgram search 'query'          # search the local mirror
termgram search --chat someone 'query'
termgram poll saved 'which one' red green blue --multi --anon
termgram react saved 1108131 🎉  # Premium required to send
termgram profile someone          # full profile
termgram status someone           # online status
termgram kick group user          # and: ban, unban, promote, members, pinned
termgram export ~/termgram-backup

Full surface: me men dialogs messages read watch send edit delete forward pin react reactions drafts draft profile set block unblock typing status scheduled cancel contacts folders folder-new folder-rm pinned members kick ban unban promote grab export import wipe poll topics search searchin searchall sync cached.

Text formats

Markdown and HTML are parsed into real Telegram entities before sending. Dates rendered this way become tappable chips, not raw text.

Local search mirror

termgram sync              # index dialogs + recent messages
termgram search 'query'    # offline search across all chats
termgram cached someone 50  # last 50 cached messages
termgram searchall 'x'     # global Telegram search (API)
termgram searchin someone 'x' # search inside one chat (API)

Chat names match case-insensitively (someone = SOMEONE). Searching a chat that isn't mirrored auto-syncs it; if the mirror still has nothing, it falls back to a live API search.

MCP server

termgram-mcp speaks the Model Context Protocol over stdio. Register it with your MCP client; for opencode:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "termgram": {
      "type": "local",
      "command": ["/home/you/.local/bin/termgram-mcp"],
      "enabled": true
    }
  }
}

Or in any standard MCP client:

{
  "mcpServers": {
    "termgram": {
      "command": "/home/you/.local/bin/termgram-mcp",
      "args": []
    }
  }
}

termgram-mcp --catalog starts a session-less mode that answers only MCP discovery calls (no Telegram connection). It exists so directory services can introspect the server without credentials.

Tools

Every CLI command is exposed as a tool. send accepts the same unified model (text, files, format, dates, reply, topic, at), plus poll, topics, watch, upload, album, voice, schedule, scheduled, cancel, edit, draft, drafts, react, reactions, search / searchin / searchall, sync, mirror access, admin tools, and export / import / wipe.

Push notifications

The MCP server pushes every new incoming message to the client as a server→client custom notification:

method: notifications/termgram/message
params: {
  "chat":  "-1001234567890",   // dialog id (negative = group/channel)
  "id":    423,
  "at":    1770000000,         // unix timestamp
  "out":   false,              // true when the message is your own
  "from":  "Alice",            // sender display name
  "text":  "hey, check this",
  "media": "photo"             // photo|document|sticker|contact|poll|…, null if none
}

Pushes are off by default. Control them with the notify tool:

Call

Effect

notify { on: true, target: "@someone" }

push only that chat

notify { on: true }

push every chat

notify { on: false, target: "@someone" }

stop pushing that chat

notify { on: false }

stop all pushes

SSE stream

termgram-notify is a tiny standalone HTTP server (no extra deps, one process). It streams the same new-message events as text/event-stream:

termgram-notify &          # binds 127.0.0.1:6837
curl -N http://127.0.0.1:6837/events                 # all chats
curl -N 'http://127.0.0.1:6837/events?chat=178220800' # one chat

Each event is a single data: line with the same JSON shape as the MCP notification, followed by a blank line. A : ping comment heartbeat arrives every 15 seconds to keep the connection alive. Override the port with TERMGRAM_NOTIFY_PORT, filter with the query string, and connect from a browser, curl, or any SSE client.

A note on streams

An MCP or SSE connection streams the account's incoming events. Messages tied to an exchange that happens on a different live session (for example, another terminal's running termgram process replying to a bot) can stay on that session's feed instead of reaching your stream. In the common case the same process that sends also pushes, so nothing is missed. The MTProto layer guarantees constant streaming, not per-session lockstep.

How it's built

Single Rust workspace, four crates:

Crate

Binary

Role

crates/core

—

MTProto client, signals, config, mirror, media, every operation

crates/cli

termgram

the terminal client

crates/mcp

termgram-mcp

MCP server over stdio + push notifications

crates/notify

termgram-notify

SSE HTTP push server

All three binaries share one session and config. The core exposes a broadcast Update stream so the CLI, MCP server and notifier all wake instantly on new messages.

Security

  • Credentials (api_id, api_hash) and your session live only in ~/.config/termgram/, never in this repository.

  • The notifier binds to 127.0.0.1 only.

  • Nothing in the push payloads stores or forwards your secrets.

Notes

  • Reacting with new emoji requires Telegram Premium; reading reactions works for everyone.

  • Two termgram processes on the same account share one session.db. Run long-lived watchers on their own; concurrent write commands may surface database is locked.

Contributing

This project is actively looking for maintainers. The current maintainer uses termgram daily but isn't adding features; if you want it to keep evolving, the maintainer seat can be yours. Report bugs, open issues for direction, send PRs, or volunteer to co-maintain. Start with CONTRIBUTING.md. Small PRs merge fast; big ones get discussed in an issue first.

License

MIT

Available Tools

61 tools
add_contactC

Add a contact by phone number

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about authentication requirements, duplicate-contact handling, or what happens on a number already in contacts. For a mutation tool with zero annotation coverage this is a real gap.

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?

A single short sentence with the action front-loaded and no filler. Its brevity is efficient, though it shades into under-specification rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A zero-parameter, no-output-schema, no-annotation tool that nonetheless claims a phone-number input leaves the calling contract ambiguous. The description does not close that gap, so an agent cannot reliably invoke it.

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?

With zero parameters the baseline would be 4, but the description asserts the contact is added "by phone number" while the schema declares no properties, leaving the agent unsure how the phone number is actually supplied. That mismatch between stated input and structured schema is a semantic gap, not added value.

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 + resource ("Add a contact") and adds a discriminator ("by phone number") that separates it from siblings like import_contacts or add-by-username tools. It is clear but stops short of explicitly contrasting with import_contacts/contacts siblings.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative routing is given, even though the sibling list contains import_contacts, contacts, and delete_contact that an agent must choose between. The implied distinction from bulk import is left entirely to inference.

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

albumB

Send multiple files as one media album (caption is plain text)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose one real trait: the caption is plain text (no HTML/markdown formatting). However, it omits file-count limits, ordering behavior, whether sending is destructive/irreversible, and any permission or auth requirements for a mutation-style operation.

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?

A single short sentence with the core action front-loaded and the caption caveat appended in a tightly scoped parenthetical. Nothing is wasted and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a send operation with no annotations, no output schema, and an empty parameter schema, the description is too thin. The agent cannot determine where the album is sent (no dialog/chat argument), how the files are passed, or any limits, which is essential for correct invocation.

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?

The schema declares zero properties, so per the 0-param baseline this would normally be a 4; but the description explicitly references 'multiple files' and a 'caption', implying inputs that the schema does not define. That mismatch leaves an agent without any documented way to supply the files or destination, reducing the score below baseline.

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 ('Send') and resource ('media album') and distinguishes the operation from the generic 'send'/'upload' siblings by emphasizing multiple files grouped as one album. It stops short of explicitly naming which sibling to prefer for single-file sends.

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

Usage Guidelines2/5

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

There is no when-to-use guidance: it never says to prefer this over 'send' for single files or over 'upload', nor does it state prerequisites such as a target dialog/chat or an active session. The agent must infer the routing decision entirely.

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

banC

Ban a user in a channel

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Ban' implies a destructive, permission-gated admin action, but the description says nothing about required privileges, whether the ban is reversible, or what happens to the user's existing messages — and gives no hint about the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

A single front-loaded sentence with no filler, which is structurally clean. But it is under-specified rather than concise — the brevity reflects missing information, not economy of expression.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive moderation action with no annotations, no output schema, and no parameters, the description leaves critical gaps: target resolution, permission requirements, and reversibility. An agent could not safely call this tool from the definition alone.

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?

Zero parameters means the schema baseline is high, but that is precisely the problem here: a ban tool with no inputs gives no clue how the target user and channel are resolved (reply context, current chat, prior selection). The description adds nothing to resolve this ambiguity, so it falls short of the 0-param baseline.

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?

States a specific verb ('Ban') and resource ('a user in a channel'), which is clear enough to distinguish it from the sibling 'unban' and from 'block'/'unblock' (which read as global). However, it never explicitly contrasts itself with 'kick', the closest sibling, so the boundary between removal and ban is left for the agent to infer.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g., admin rights in the channel), and no mention of alternatives such as 'kick' or 'block'. The agent is left to guess the intended scenario from the verb alone.

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

blockC

Block a user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden and largely fails it. It never says what blocking actually does (suppress messages? hide presence? remove contact?), whether it is reversible, or what permissions it requires — only that a mutation of some kind occurs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The phrase is short and front-loaded with no wasted words, but its brevity reflects under-specification rather than disciplined conciseness. There is room for a clause on target selection or effect without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing moderation tool with no annotations and no output schema, the description omits the essentials: how the target is determined (implicit from context?), side effects, and reversibility. An agent could not confidently invoke this without outside knowledge.

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?

The schema declares zero parameters, so per the baseline for parameterless tools the description has nothing to compensate for. It is scored at the standard baseline, not for any added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Block a user" states a recognizable verb and resource, so the general intent is graspable. But it is indistinguishable from sibling tools ban, kick, and unblock, and it gives no hint how the target user is identified given a zero-parameter schema. That ambiguity keeps it at minimum-viable rather than clear.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, when not to, or how it differs from ban/kick. The agent is left to guess at the selection criteria among several similar moderation tools.

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

block_listC

List blocked users

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden. 'List' weakly implies a read-only, non-destructive operation, but the description discloses nothing about authentication requirements, whether results are paginated or capped, or the shape of the returned entries.

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?

Three words, front-loaded and waste-free. It is efficient, though the brevity edges into under-specification rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no output schema, the description is barely sufficient: an agent knows what it returns at a high level but not the entry fields, ordering, or limits. No output schema exists to absorb that gap, so a little more context would help.

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?

The tool takes zero parameters, so the baseline is 4; there is no parameter surface for the description to clarify. Nothing in the description conflicts with the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'List blocked users' names a verb and resource, so the basic purpose is unambiguous. However, it is essentially a plain-language restatement of the tool name 'block_list' and adds no scope detail (pagination, ordering, whose block list) that would distinguish it from siblings like block, unblock, or contacts.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all, despite obvious sibling tools (block, unblock) that an agent must choose between. Nothing states whether this lists the caller's own blocked users or a global list, nor what condition should trigger its use.

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

cachedB

Read cached messages of a chat from the local mirror

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries the full behavioral burden. It does not state whether the local mirror can be stale or when it syncs (though 'sync' is a sibling), nor return shape, failure modes, or whether it requires an established session (login is a sibling). For a read tool with zero annotations and no output schema, this is a notable gap.

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?

A single concise clause that front-loads the action and target ('Read cached messages of a chat') before the source ('from the local mirror'). No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-param read with no annotations or output schema, the definition is only just sufficient. It omits the one thing an agent needs most: how this differs from 'messages' and what the local mirror's freshness/availability guarantees are.

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?

Zero parameters and four is the baseline. No parameter semantics are needed, and the description introduces no confusing parameter claims.

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?

States a specific verb (Read) and resource (cached messages of a chat) and adds the qualifier 'from the local mirror', which signal a distinct read path. It is largely self-explanatory but does not explicitly contrast with the sibling 'messages', which appears to be the live counterpart, so it falls short of an unambiguous 5.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool instead of the sibling 'messages' or 'read'. The phrase 'local mirror' implies an offline/cached read, but the agent is left to infer the scenario without any stated condition or alternative.

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

cancelB

Cancel a scheduled message of a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a mutation targeting scheduled messages, but it does not disclose permissions required, reversibility, what happens if the message was already sent, or any return behavior.

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?

The description is a single, front-loaded sentence with no filler or repetition. It states the action and resource immediately and efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and an empty input schema, the description does not explain how the target scheduled message or chat is identified. It omits critical invocation context and behavioral details needed to call the tool correctly.

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?

The tool has zero parameters and an empty schema with 100% description coverage. Per the baseline for zero-parameter tools, the schema provides all necessary parameter structure; the description adds no parameter details, but none are expected.

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 ('Cancel') and resource ('a scheduled message of a chat'), making the purpose clear. It implicitly distinguishes from siblings like delete or schedule by targeting scheduled messages, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as delete or schedule. The context of cancelling scheduled messages is implied, but there are no explicit conditions, prerequisites, or sibling routing instructions.

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

contactsB

List contacts of the account

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it discloses almost nothing beyond the implied read-only nature of "List". It says nothing about pagination, ordering, result limits, or authentication requirements for a tool that could return an unbounded account contact list.

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?

A single short sentence with no waste, and the core action is front-loaded. It is arguably under-specified rather than over-verbose, but it is structurally clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description is minimally adequate but omits return-shape expectations (e.g. does it return all contacts, is there a cap?). An agent can invoke it correctly but cannot predict what it gets back.

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?

The tool takes zero parameters and the schema is empty, so there is nothing for the description to compensate for. Baseline 4 applies; the description correctly implies no filtering arguments exist.

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 ("List contacts") scoped to "of the account", which is clear enough to distinguish it from add_contact/delete_contact/import_contacts siblings by inference. It does not explicitly name those siblings, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus searchall, export_contacts, or block_list, and no stated prerequisites. The agent must infer usage from the verb alone.

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

deleteC

Delete messages from a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for a destructive operation. It does not disclose whether deletion is permanent or reversible, what permissions are required, whether it applies to a single message or a bulk range, or what happens to the chat afterward.

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?

A single short sentence with no waste and the action front-loaded. It is appropriately sized, though brevity here edges toward under-specification rather than genuine conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and an empty input schema, the description is the only source of behavior for a destructive tool and it leaves irreversibility, scope, auth, and return behavior entirely unstated. It is not adequate for the complexity of the operation.

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?

The input schema declares zero parameters, so there is no parameter surface for the description to enrich (baseline would be 4). But the empty schema makes the tool's target ambiguous -- there is no chat identifier or message selector -- and the description does not compensate by explaining how messages are scoped, which is a real gap for a delete tool.

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?

States a specific verb (Delete) and resource (messages from a chat), which separates it from siblings like del_photo, delete_contact, or folder_rm. However, it does not differentiate from the several other destructive siblings (wipe, cancel, kick, ban) or clarify scope beyond the resource noun.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no named alternatives. Given the large sibling list containing wipe, delete_contact, and del_photo, an agent gets no help choosing this tool over them.

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

delete_contactC

Delete a contact

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations and no output schema, the description carries the full burden of behavioral disclosure. It says nothing about whether deletion is permanent, what permissions are required, or what happens on success/failure. 'Delete' implies destruction but offers no safety or reversibility context.

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?

Extremely concise at three words, front-loaded with the action. It is appropriately sized for a no-param tool, though it borders on being too terse to be useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations, no output schema, and no parameter guidance, the description is inadequate. An agent needs to know if deletion is irreversible, if authentication is required, and what the effect is on related data. None of this is provided.

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?

Zero parameters, so the schema coverage is 100% and there are no parameters to document. Per the rules, 0 params yields a baseline of 4. The description adds nothing but also needs to add nothing.

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?

States a specific verb (Delete) and resource (contact), clearly distinguishing it from sibling add_contact and import_contacts. However, the description is minimal and provides no additional scope or detail beyond the core action.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like block or unblock, nor any prerequisites or warnings. The description is a bare statement with no contextual help for an AI agent.

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

del_photoB

Remove the profile photo of a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Remove' implies a destructive, likely irreversible mutation, but the description does not say whether the deletion is permanent, whether it requires admin/ownership rights in the chat, or what happens if no photo is set.

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?

A single short sentence with the action verb front-loaded and no wasted words. It is appropriately sized, though it is perhaps overly terse given it is a destructive operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool the core intent is conveyed, but with no annotations and no output schema, the description omits behavioral details (irreversibility, permission requirements, error conditions) that an agent invoking a destructive mutation would benefit from.

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?

The tool takes zero parameters, so there is nothing for the description to clarify beyond what the empty schema already conveys. Baseline 4 applies for a parameterless operation.

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 gives a specific verb (Remove) and resource (profile photo of a chat), which is clearer than the generic 'delete' sibling. However, it does not explicitly distinguish itself from close siblings like 'setphoto', 'photo', or 'profile', so an agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as 'setphoto' (which could also clear a photo) or the generic 'delete'. No prerequisites, conditions, or exclusions are stated.

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

dialogsB

List chats with unread count and last message preview

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations and no behavioral details. The description does not state whether this is a read-only operation (though 'List' implies it), nor does it mention pagination, ordering, or authentication requirements. For a no-parameter list tool, such context would be valuable.

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?

A single sentence that front-loads the action and resource, with no waste. It is appropriately sized for a simple list operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the basic purpose and return fields, it omits behavioral context (ordering, pagination, read-only nature) and does not help differentiate from siblings. It is minimally adequate given the lack of annotations and output schema, but gaps remain.

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?

The tool takes zero parameters, so there are no parameter semantics to document. Baseline for zero params is 4; the description correctly does not invent parameters.

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 ('List') and resource ('chats') with added scope detail (unread count, last message preview). It is clear what the tool returns. However, it does not distinguish itself from close siblings like 'messages' or 'topics', which also deal with chat content.

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

Usage Guidelines2/5

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

No indication of when to use this tool versus alternatives. The sibling list contains many list-adjacent tools (messages, topics, folders, pinned), but there is no guidance on selection. Usage is implied only by the description's content.

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

downloadA

Download media from a chat message to the local media dir

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It discloses the destination (local media dir) but omits auth requirements, overwrite behavior, rate limits, and return format. It provides some behavioral context but is far from complete.

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?

A single, front-loaded sentence with no filler. It efficiently conveys the action, source, and destination.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 0-parameter tool, it is critical to explain how the target chat message is identified (e.g., current context, last message). The description does not address this, nor does it cover authentication or error handling, leaving a significant gap.

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?

The tool has 0 parameters, so the baseline is 4. The description adds no parameter information because there are no parameters to describe.

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 specific verb ('Download') and resource ('media from a chat message') plus destination ('local media dir'). This clearly distinguishes it from siblings like upload and edit.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like grab, cached, or export. The function is implied by the description, but there are no explicit when/when-not conditions.

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

draftC

Save or clear a draft in a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose that clearing a draft destroys content, whether the operation is scoped to the current session/chat, or whether any permissions are required. For a tool that can delete user content, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

It is a single, front-loaded sentence with no wasted words, but its extreme brevity is under-specification rather than effective conciseness. It does not earn its place as a complete definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and no parameters, the description is the only source of behavioral information, and it omits the mechanism for identifying the chat, the destructiveness of clearing, and any response behavior. It is insufficient for an agent to call this tool confidently.

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?

The schema declares zero parameters, which normally sets a baseline of 4, but the description never explains how the target chat or draft content is identified given that no inputs exist. That omission leaves a real semantic gap rather than merely repeating structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ('Save or clear a draft in a chat'), which is more than a restatement of the name, but it bundles two opposite operations (save vs. clear) without explaining how they are selected. It also fails to distinguish itself from the sibling 'drafts' tool, leaving the agent unsure which one 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 Guidelines2/5

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

There is no guidance on when to use this tool rather than 'drafts', 'edit', or 'delete', and no indication of the conditions under which a draft is saved versus cleared. Usage is only implied by the tool name.

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

draftsB

List all saved drafts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, but the word 'List' and the absence of any input parameters make the read-only, non-destructive nature reasonably evident. It still says nothing about ordering, result limits, or whether drafts from all conversations are included, which leaves meaningful gaps for a no-annotation tool.

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?

A single four-word sentence that front-loads the verb and resource with no filler. Nothing is wasted and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no output schema, the description is minimally sufficient to call it. It nonetheless omits ordering/limit behavior and any hint of what a draft record contains, which an agent would need to use the results meaningfully.

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?

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description correctly implies the operation is unfiltered ('all').

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?

States a specific verb ('List') and resource ('saved drafts'), so the operation is unambiguous. However, it does nothing to distinguish itself from the sibling tool 'draft' (singular), which an agent could easily confuse with this one, so it falls short of the 5 bar.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no reference to alternatives such as the singular 'draft' sibling. The agent must infer that this is the retrieval counterpart to draft creation/editing.

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

editC

Edit a message you sent

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does disclose one real behavioral trait — the message must be one you sent — but says nothing about what fields are editable, time limits on edits, permission requirements, or whether the edit is reversible or visible to recipients.

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?

A single front-loaded sentence with no filler or redundancy. It is efficient, though it is terse to the point of leaving gaps rather than being optimally sized for a mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and an empty parameter schema, the description is the only information source — yet it omits how the target message is referenced, what may be edited, and what the result looks like. Far too thin for an edit operation.

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?

The schema declares zero parameters, which is anomalous for a mutation tool: there is no visible way to identify the target message or supply new content. The nominal 0-param baseline of 4 does not hold here because the emptiness looks like an omission rather than a genuinely argument-free call, and the description adds nothing to compensate.

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?

States a specific verb and resource (edit a message) plus a scope constraint (one you sent), which separates it from siblings like send, forward, delete, and pin. It does not explicitly name an alternative, but the verb+resource pair is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus delete, forward, or send — e.g. whether an edited message can be re-edited, or what the alternative is when editing is not permitted. The agent must infer all usage conditions.

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

exportB

Export the account session, mirror and config to a folder

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden and falls short. It reveals the export contents and that output lands in 'a folder', but says nothing about where that folder is, whether existing files are overwritten, the size/time cost, or the important fact that a session export contains credential material.

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?

A single front-loaded sentence with no filler; the verb and destination come first. It is efficient, though arguably too terse for a tool that writes sensitive data to disk.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, no-annotation, no-output-schema operation that writes session credentials to disk, the description omits destination path, overwrite behavior, and safety warnings. An agent cannot confidently predict the side effects or outcome of calling it.

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?

The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate. No parameter meaning is missing because none exist.

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?

States a specific verb (Export) and enumerates the resources involved (account session, mirror, config) plus the destination (a folder). It is distinguishable from sibling export_contacts, though the term 'mirror' is jargon that isn't explained.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives such as export_contacts or grab/cached. No prerequisites, no mention of what state the account must be in, and no indication of when exporting is appropriate or inadvisable.

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

export_contactsB

Export all contacts of the account

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden, and it only discloses scope ('all contacts'). It says nothing about what the export produces (a file, a blob, a list), whether it is a read-only operation, whether it requires elevated auth, or whether it has size/rate limits.

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?

A single front-loaded sentence with no filler; the verb, resource and scope all appear immediately. Nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations means the description must explain the return value and side effects, and it does not — the agent cannot tell whether this returns contacts inline, writes a file, or triggers an asynchronous job. For a tool whose whole purpose is producing output, that gap is material.

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?

The tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate. Baseline for a 0-parameter tool is 4.

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?

States a specific verb ('Export') and resource ('contacts') with scope ('all contacts of the account'), which cleanly separates it from contacts, add_contact, delete_contact and import_contacts. It does not, however, differentiate itself from the generic 'export' sibling or explain how the two relate.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no named alternative, despite siblings like contacts, import_contacts and export being plausible confusions. The agent must infer that this is the bulk-extraction counterpart to import_contacts.

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

folder_newC

Create a chat folder with the given chats

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It doesn't say whether creation is idempotent, what happens on duplicate folder names, whether the chats must already exist, or what permissions are needed. For a mutation tool with zero annotation coverage this is a notable gap.

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?

A single short, front-loaded sentence with no filler. It is efficient, though the dangling 'with the given chats' clause carries no usable information given the empty schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create operation with no output schema the description is minimally sufficient, but with no annotations and an empty parameter schema it leaves the agent without any information on chat membership, permissions, or error behavior.

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?

The schema declares zero properties, so there is no parameter documentation to add to. However, the description references 'the given chats', implying an input that the schema does not expose, which is a real mismatch rather than useful semantic enrichment.

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?

States a specific verb+resource ('Create a chat folder'), which is clearly distinguishable from siblings like folder_rm (delete) and folders (list). The trailing phrase 'with the given chats' is ambiguous because no chat parameter exists in the schema, which slightly muddies the stated purpose.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as folder_rm or folders. The agent must infer from the name alone that this is the creation counterpart to folder_rm.

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

folder_rmB

Delete a chat folder

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, yet it only says 'delete'. It omits that removal is likely irreversible, what happens to the folder's chats, and whether permissions are required. For a destructive operation with zero annotation coverage this is a significant gap.

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?

A single front-loaded sentence with no wasted words. It is appropriately terse for the amount of content, though the brevity edges toward under-specification for a destructive tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and no parameters, the description would need to explain targeting and destructive effects; instead it supplies only the bare action. An agent cannot determine which folder is deleted or what else is affected.

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?

The tool takes zero parameters, so the schema cannot convey selection semantics and the baseline for no-params tools is 4. The description does not explain how the target folder is identified without parameters, which is a minor residual gap but not a schema deficiency.

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?

States a specific verb plus resource ('Delete a chat folder'), so an agent knows this removes a folder rather than a chat, message, or contact. It is distinguishable from generic siblings like 'delete' and 'folders' by the folder noun, but it does not explicitly say how it relates to folder_new/folders.

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

Usage Guidelines2/5

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

There is no statement of when to use this instead of 'delete', 'folders', or 'folder_new', nor any prerequisite or context about which folder is targeted. Usage is only inferable from the name.

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

foldersB

List chat folders

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure, and it offers none: no auth requirements, no indication of whether folders are user-specific, no pagination or ordering behavior. The only hint is the word 'List', which implies a read.

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?

A single three-word fragment is maximally front-loaded with no waste, but it is terse to the point of being a label rather than a description, leaving no room for useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trivial no-parameter list tool with no output schema, the description is minimal but workable. It still omits the return shape and any scoping (e.g. per-account vs global folders) that an agent would want before invoking.

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?

The tool takes zero parameters, so there is nothing to disambiguate; the baseline for a 0-param tool is 4. The description does not need to compensate for any schema gap.

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?

States a specific verb ('List') and resource ('chat folders'), which is unambiguous against siblings like folder_new and folder_rm. It does not explicitly name or differentiate from those siblings, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use this versus folder_new/folder_rm or how folders relate to dialogs/messages. The verb implies read-only listing, but the agent gets no context or exclusions.

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

forwardC

Forward messages between chats

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about whether this creates a new message, requires prior access to both chats, whether media/albums are preserved, or rate limits. Only 'between chats' hints at the two-endpoint nature of the operation.

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?

A single front-loaded sentence with no filler, which is efficient. Its brevity is partly because it omits necessary information, but on structure alone it is clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Forwarding is a non-trivial operation and here there are no annotations, no output schema describing the result, and no parameters for specifying source, destination, or which messages to forward. The description leaves the agent without the information needed to invoke the tool correctly.

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?

The schema declares zero parameters, which normally earns the baseline of 4, but the description's phrase 'between chats' strongly implies source and destination chat identifiers (and message selection) that the empty schema cannot express. That gap between implied inputs and an empty schema is a genuine deficiency, so a 3 is warranted.

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?

States a specific verb (Forward) and resource (messages) with a scope qualifier (between chats), which is enough to distinguish it from most siblings like send or edit. It does not explicitly contrast with the nearest alternative (send), so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus send, edit, or grab, nor any mention of prerequisites such as needing an existing dialog or source message. The agent must infer the use case entirely.

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

grabC

Download every media of a chat into the local media dir

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It reveals the destination (local media dir) and the bulk scope ('every media'), but says nothing about permissions, rate limits, overwrite behavior, or what 'every' means for large chats.

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?

A single front-loaded sentence with no filler. It is efficient, though arguably under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A bulk media-download operation with no parameters, no annotations, and no output schema leaves the agent guessing how the target chat is identified and what side effects occur. The description should compensate for that structured-data vacuum and does not.

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?

The tool takes zero parameters, so by rule the baseline is 4. The description does not need to explain parameter semantics, though it leaves the implicit question of which chat is being targeted unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (download every media of a chat) plus a destination, but does not distinguish itself from the sibling 'download' tool. An agent cannot tell from this text why it would pick 'grab' over 'download'.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or prerequisite information is given. The existence of both 'download' and 'grab' as siblings makes the absence of routing guidance a real gap.

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

importB

Import an exported account folder into this session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the import targets 'this session' but does not describe permissions required, whether it overwrites existing data, side effects, or rate limits. This is a significant gap for a mutation operation.

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?

The description is a single, well-structured sentence that front-loads the action and resource without any wasted words. It is appropriately sized for the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, output schema, and any explanation of what an 'exported account folder' entails or what happens during import, the description is insufficient. It does not cover prerequisites, expected outcomes, or error conditions, leaving the agent with little context beyond the basic operation.

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?

The input schema has zero parameters, so the baseline for parameter semantics is 4. There are no parameters to clarify, and the description does not need to add parameter meaning beyond what the schema provides.

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 ('Import') and resource ('exported account folder') with the destination ('into this session'). It is clear what the tool does, but it does not differentiate itself from sibling tools like 'import_contacts' or 'export', which also deal with importing/exporting data.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as 'import_contacts' or 'sync', nor any prerequisites or context for its use. The implied usage is weak, and the description offers no explicit when-to-use or when-not-to-use statements.

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

import_contactsB

Import contacts by phone number

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that this is a write operation, whether it requires permissions, how duplicates are handled, or what happens to existing contacts. Only the action is implied, yielding a low score.

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?

A single, front-loaded phrase with no wasted words. It is concise, though the method clause 'by phone number' is slightly ambiguous. Still appropriate for a zero-param tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param tool with no output schema or annotations, the description should explain what is imported and from where. It does not clarify whether contacts come from a device, a server, or phone number input, leaving the agent without enough context to invoke confidently.

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?

The tool has zero parameters, which per the calibration baseline yields a 4. The description adds no parameter detail because there is none to add; the schema is trivially complete.

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 clear verb ('Import') and resource ('contacts'), and adds a method ('by phone number') that differentiates it slightly from a generic import tool. However, it does not explicitly contrast with siblings like add_contact or import, so it maxes out at 4.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternatives are provided. The agent must infer from the name alone when this tool is appropriate versus add_contact, import, or export_contacts. Score 2 reflects this absence.

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

kickB

Kick a user from a group

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state required permissions, whether the removal is reversible, whether the user is notified, or any other side effects of the mutation.

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 description is a single front-loaded sentence with no wasted words. It is extremely terse, but the conciseness dimension is satisfied.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the definition is materially incomplete. It does not explain how the target user or group is identified, what privileges are required, or what happens after the kick.

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?

The schema defines zero parameters, so the baseline is 4. There are no parameter semantics for the description to add beyond what the empty schema provides.

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?

States a specific verb and resource: 'Kick a user from a group.' The action is clear, but the description does not differentiate it from related administration siblings such as ban, unban, or promote.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like ban or delete_contact. The verb implies a removal action, but no conditions or prerequisites are given.

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

loginA

Check login state; interactive OTP login only via termgram login in a terminal

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that no authentication flow occurs here, but says nothing about the returned state values, whether it can prompt, or what happens if the session is unauthenticated/unexpired.

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?

A single compact sentence, front-loaded with the actual function and followed immediately by the exclusion. Every clause earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description should ideally say what the check returns (e.g. logged-in flag, account identity). That gap leaves the agent guessing about the result shape, though the critical constraint about OTP login is covered.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No parameter-level detail is needed or missing.

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 gives a specific verb+resource ('Check login state') and immediately clarifies that the tool is not the way to actually authenticate, which is the key ambiguity raised by the name 'login'. It is distinguishable from the closest sibling, 'logout', though it does not explicitly name that sibling.

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 routes the agent precisely: interactive OTP login must happen via `termgram login` in a terminal, so this tool is for state checking only. That is a clear when-not-to-use statement with a named alternative, though it never states the positive condition for calling it (e.g. before operations that require an authenticated session).

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

logoutB

Log out the current session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it only says the session ends. It does not disclose whether the auth token is invalidated, whether other devices/sessions are affected, whether the action is reversible, or what happens on subsequent calls.

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?

A single short sentence with no waste, and the action is front-loaded. Nothing needs trimming or reordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description is minimally sufficient, but with no annotations it should at least note the side effect (session termination requiring re-login) to be fully callable with confidence.

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?

The tool takes zero parameters, so the schema needs no further semantic explanation and the baseline of 4 applies. The description correctly implies no input is required.

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?

States a specific verb+resource ('Log out the current session') that an agent can immediately distinguish from the sibling 'login'. It is unambiguous, though it never explicitly names the sibling it complements.

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?

Usage is only implied by the tool name; there is no statement of when to call it (e.g., end of session, before switching accounts) or what alternative to use if a session is already invalid. Adequate but leaves routing to inference.

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

meA

Show the logged-in account identity

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Show' implies a read-only operation and 'logged-in' implies an authenticated context, which is useful behavioral context. However, it does not explicitly state side effects, permissions required, or error behavior.

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?

The description is a single, front-loaded sentence with no wasted words. It states the core purpose immediately and is appropriately sized for a zero-parameter tool.

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 simple, zero-parameter read tool with no output schema, the description conveys enough to understand the operation. It could mention the return format or authentication requirement more explicitly, but it is largely complete given the low complexity.

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?

The tool takes zero parameters, so the baseline score is 4. The description correctly does not need to explain any parameters, and the empty schema is appropriate for this simple identity retrieval.

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: 'Show the logged-in account identity'. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools like 'profile' or 'contacts'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as 'profile' or 'contacts'. The purpose implies a use case, but the description provides no explicit context, exclusions, or routing information.

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

membersB

List members of a group or channel

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and does not meet it. It does not disclose whether this is read-only (implied but unstated), whether it requires admin rights, whether results are paginated or truncated, or what fields come back. For a listing tool with zero annotation coverage this is a significant gap.

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?

A single short sentence with the action front-loaded and no wasted words. It is efficient, though the terseness edges toward under-specification rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and no parameters means the description is the only source of information, and it omits the critical question of which group or channel is being listed. It also says nothing about result shape or limits, so an agent cannot confidently invoke it.

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?

The schema declares zero parameters, so per the baseline there is nothing for the description to document or compensate for. No parameter syntax is needed, though the description could have explained how the target group is otherwise determined.

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?

States a specific verb and resource: 'List members of a group or channel'. This distinguishes it from siblings like contacts, block_list, or dialogs, which deal with different entities. It stops short of 5 because it never clarifies how the target group or channel is identified, which matters given the tool takes no parameters.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives such as contacts or block_list, and no mention of prerequisites (e.g., membership in the group, or whether it works on channels as well as groups). The only hint is the phrase 'group or channel', which implies scope but not selection criteria.

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

messagesB

Show recent messages in a chat, newest last

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals ordering ('newest last') but says nothing about how many messages are returned, whether the operation requires authentication, which chat is targeted (especially with zero parameters), or how the result is paginated.

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?

A single, front-loaded sentence with no wasted words. The ordering constraint is placed at the end for emphasis. It is appropriately sized for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and no annotations, the description should at least explain how the target chat is determined (e.g., current context). It fails to do so, nor does it clarify the scope of 'recent' or how the result is used. This leaves a critical invocation gap for an agent.

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?

The tool has zero parameters, so the baseline score is 4 per the rubric. The description does not add parameter meaning, but there are no parameters to clarify. The implicit reliance on an unstated context ('a chat') is a minor concern but does not affect the parameter-specific score.

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?

States a specific verb ('Show'), resource ('recent messages in a chat'), and ordering ('newest last'). However, it does not distinguish itself from sibling tools such as 'read', 'dialogs', or 'search', which likely also surface messages. The purpose is clear but not unique.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus alternatives like 'read' or 'search'. There is no mention of prerequisites, context, or exclusions. Only an implicit assumption that it is for viewing recent messages in a chat.

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

notifyC

Control the server-to-client push filter for new-message notifications

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it only paraphrases the name. It does not disclose whether calling this mutates server state, what the resulting filter state becomes, whether the change is persistent or per-session, or what the response contains.

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?

A single short sentence with no filler, and the resource is front-loaded after the verb. It is efficient, though the brevity contributes to the ambiguity rather than resolving it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation-style control tool with no annotations, no output schema, and no parameters, the description leaves key questions open: what the call does to the notification filter and how success is observed. The absence of any return-value or state semantics makes it under-specified for reliable invocation.

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?

The tool takes zero parameters, so there is no parameter semantics to document. Baseline 4 applies. The description does not need to explain arguments, though it could have clarified how a parameterless tool 'controls' a filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a resource ('server-to-client push filter for new-message notifications') and a verb ('Control'), which is more than a tautology. But 'Control' is vague about the actual operation — is this a toggle, an enable/disable, a query of current state? With zero parameters there is no way to infer the action, and the name 'notify' plus siblings like 'watch', 'wait', 'poll', and 'sync' leave the boundary unclear.

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

Usage Guidelines2/5

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

There is no guidance on when to invoke this versus alternatives. Given siblings such as 'watch', 'poll', 'wait', and 'sync' that all touch message delivery behavior, an agent has no basis to choose 'notify' over any of them. No prerequisites or conditions are stated.

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

photoB

Send a photo to a chat (caption is rich text)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it discloses only that the caption is rich text. It says nothing about authentication requirements, how the photo binary is supplied, rate limits, or whether the send is reversible.

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?

A single sentence, front-loaded with the verb and resource, with the parenthetical caption detail appended rather than buried. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate but incomplete for a media-send operation: the description mentions a caption that the schema does not expose, and it never explains how the photo itself is referenced. With no output schema and no annotations, more context was needed to call this correctly.

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?

The schema declares zero parameters, so the baseline is 4. The description adds one piece of meaning beyond the schema by noting that the caption is rich text — relevant because caption does not even appear as a declared property.

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?

States a specific verb+resource (send a photo to a chat), which distinguishes it from setphoto (profile photo) and del_photo (deletion) among siblings. It does not, however, explicitly differentiate itself from the generic send, upload, voice, or album tools that could also plausibly deliver media.

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

Usage Guidelines2/5

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

No guidance on when to use this versus send, upload, album, or voice, nor any prerequisite (e.g. whether the photo must first be uploaded). The agent is left to infer the routing from the name alone.

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

pinB

Pin or unpin a message in a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It identifies a mutation action but omits permissions, reversibility, side effects, and how pin versus unpin is selected.

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?

A single front-loaded sentence with no wasted words. It is appropriately concise for the minimal information it provides.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and an empty input schema, the description is insufficient for an agent to know how to invoke the tool or what will happen. It names the action but leaves critical execution context missing.

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?

The tool has zero parameters, and the schema description coverage is listed as 100%. Per the rubric, zero parameters sets a baseline of 4; the description adds no parameter detail because there are none to describe.

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?

States a specific action and resource: pinning or unpinning a message in a chat. It does not explicitly distinguish itself from the sibling 'pinned' tool, but the core purpose is clear.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as 'pinned' for listing pinned messages. The only implied usage is the action itself.

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

pinnedB

List pinned messages of a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'List' implies a read operation, but nothing is said about how the chat is resolved (there are zero parameters), whether authentication is required, ordering, or pagination behavior.

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?

A single short sentence, front-loaded with verb and resource, with no filler. It is arguably too terse for the surrounding gaps, but it wastes nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and no parameters, the description is the only source of context and it supplies just one line. It omits how the target chat is determined, the return shape, and ordering/limits, leaving an agent guessing about the most important scoping question.

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?

The schema has zero parameters, so the baseline is 4 and there is no parameter syntax for the description to add meaning to. The one semantic gap is that the chat context is implicit and unexplained, but that is not a schema-documented parameter.

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 ('List pinned messages') and the scope ('of a chat'), which distinguishes it from the sibling 'pin' (which pins) and 'messages' (which lists all messages). It is clear on its own, though it never explicitly names or contrasts with those siblings.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus 'messages' or 'pin', no preconditions, and no note about which chat is targeted. The usage is only inferable from the name and verb.

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

pollC

Create a poll in a chat with 2 to 10 answer options

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not say whether the poll requires specific chat permissions, whether it posts immediately, whether options are mutable after creation, or what the response contains. Only the option-count constraint is disclosed.

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?

A single efficient sentence with the resource and the key constraint front-loaded. Nothing is padded, though it is arguably under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation/mutation tool with no annotations, an empty parameter schema, and no output schema, the description is insufficient: it never states which chat is targeted or how the 2-10 options are passed. An agent would have to guess the call signature.

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?

With zero parameters defined and 100% (vacuous) schema coverage, the baseline is a 3-4. The description names inputs that matter (target chat, answer options) but these are absent from the schema entirely, so an agent cannot tell how to supply them; the description hints at parameters without resolving them.

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?

States a specific verb and resource ('Create a poll') with a concrete constraint (2 to 10 answer options), and no sibling tool overlaps with poll creation, so it is distinguishable. It stops short of saying where the poll is created or what it returns.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, no mention of alternatives (e.g., send or schedule for other message types), and no prerequisites. The 2-to-10 constraint is a validation rule, not usage guidance.

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

profileC

Show a user's full profile

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state whether this is a read-only, authenticated, or self-only operation, what 'full' includes, or whether any privacy scoping applies.

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?

A single short, front-loaded sentence with no filler. However, the extreme brevity leaves ambiguity (whose profile) rather than resolving it, so it is efficient but under-informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description must explain what the tool returns and for whom. Given the zero-param signature and the adjacent 'me' tool, the near-total absence of detail leaves the agent unable to call it confidently.

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?

The tool takes zero parameters, so there is no schema surface for the description to document. The baseline for a parameterless tool is 4; the description introduces no param confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource ('Show ... profile'), but 'a user's' is ambiguous when the tool takes zero parameters to identify which user. It also does not distinguish itself from the sibling 'me', which likely returns the caller's own profile.

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

Usage Guidelines2/5

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

No when-to-use guidance is given. With a sibling named 'me' and no parameters, the agent cannot infer whether 'profile' is for the current user or another user, nor when to prefer it over 'me'.

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

promoteB

Promote a user to admin in a channel

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the action but omits critical behavioral details such as required permissions, reversibility, side effects, and what happens if the user is already an admin. For a privileged mutation, this is a significant gap.

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?

A single, front-loaded sentence with no wasted words. It is appropriately sized for the action described.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a privileged mutation with no annotations and no output schema, the description should explain permissions, error conditions, or expected outcomes. It provides none of these, leaving the agent without essential context.

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?

The tool has zero parameters, so per the scoring rule the baseline is 4. The description mentions 'user' and 'channel' conceptually, but since no parameters exist, it neither adds nor detracts from parameter semantics.

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 (promote) and resource (user to admin in a channel), making the action clear. However, it does not explicitly differentiate from siblings like kick, ban, or unban, which are also user-management actions, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives (e.g., kick, ban, unban) or under what conditions it applies. It only states what it does, leaving usage context entirely implied.

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

reactB

React to a message with an emoji, or remove the reaction

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses two modes (add/remove), which is useful, but does not state required permissions, whether removal requires an existing reaction, or any other side effects or constraints.

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?

The description is a single, front-loaded sentence with no filler. It clearly presents the primary action before the alternative remove mode, and every word contributes to the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool performs a mutation, has no annotations, no parameters, and no output schema. The description does not explain how to specify the target message or emoji, whether authentication is required, or what happens on success or failure, leaving major gaps for correct invocation.

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?

The schema has 0 parameters, so the baseline is 4. The description mentions a message and an emoji as conceptual inputs, which adds some semantic context, though those inputs are not represented in the schema.

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: reacting to a message with an emoji or removing the reaction. It is clearer than a vague operation, but it does not distinguish this tool from the sibling 'reactions' tool, leaving some ambiguity about which one to use for retrieving reactions.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, prerequisites, or alternatives. It does not mention when to choose 'react' instead of 'reactions', 'send', or other messaging tools. Usage is left entirely to inference.

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

reactionsC

List the reactions on a message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no indication of whether authentication is required, whether the read is safe/non-mutating, how results are ordered, or whether pagination applies. 'List' weakly implies a read, but this is not stated.

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?

A single short sentence with no filler and the key information front-loaded. It is efficient, though its brevity is as much under-specification as conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should explain how the target message is identified and what the reaction list looks like. It does neither, leaving a zero-parameter read tool ambiguous about its input context.

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?

The schema declares zero parameters with 100% coverage, which normally sets a baseline of 4, but the description refers to 'a message' as the target while offering no parameter or mechanism to identify that message. That ambiguity between description and empty schema reduces the score below baseline.

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 gives a specific verb and resource ('List the reactions') plus a scope ('on a message'), so the agent knows this reads reactions rather than creating one. It is clearly distinct from the sibling 'react' (which adds a reaction), though it never names that sibling to make the distinction explicit.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus 'react', 'messages', or 'read', and no mention of prerequisites or the context in which the target message is determined. The agent must infer usage entirely.

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

readB

Mark a chat as read

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It identifies a state-changing operation ('mark as read') but omits permission requirements, reversibility, side effects on unread counts, and how the target chat is determined.

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?

The description is a single front-loaded sentence with no filler or repetition. Every word earns its place, even if additional context is missing elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no annotations, and no output schema, the description is too sparse. It never explains which chat is affected or how the target is selected, which is essential for an agent to invoke the tool correctly.

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?

The tool has zero parameters and 100% schema description coverage, so the baseline is 4. The description does not add parameter meaning, but there are no parameters to clarify.

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 action and target: 'Mark a chat as read.' This clarifies the otherwise ambiguous tool name 'read.' It does not, however, distinguish this tool from any sibling alternatives because no related tool is named.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The action is implied, but an agent receives no explicit usage context.

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

scheduleB

Schedule a rich text message for a future unix timestamp

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that a message will be scheduled for a future timestamp, but it does not mention authentication requirements, side effects, reversibility, error behavior, or return information for this mutation-style operation.

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?

The description is a single front-loaded sentence with no filler. It is appropriately sized for the amount of information it attempts to convey.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and an empty input schema, the description is severely incomplete for a scheduling operation. It does not explain how to supply the rich text message, the future unix timestamp, or the target chat, nor does it describe authentication, results, or error handling.

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?

The input schema has zero parameters, and per the rubric this establishes a baseline of 4. The description does not need to explain parameter semantics because there are none, though the mention of a future unix timestamp suggests an input that the schema does not actually expose.

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 gives a specific verb ('Schedule') and resource ('a rich text message for a future unix timestamp'), so the action is clear. However, it does not explicitly distinguish this tool from siblings like send, scheduled, or cancel, which limits it to a 4 rather than a 5.

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

Usage Guidelines2/5

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

The phrase 'for a future unix timestamp' implies when the tool should be used, but there is no explicit when-to-use guidance, no when-not-to-use guidance, and no mention of alternatives such as send for immediate delivery or cancel for removing a scheduled message.

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

scheduledC

List scheduled messages of a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the bare purpose. It does not state whether this is a read-only listing, what permissions or auth are needed, whether results are paginated or ordered, or what scope 'of a chat' actually binds to.

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?

A single six-word sentence with the resource front-loaded and zero filler, which is ideal for scanning. It is arguably too terse to be self-sufficient, but nothing in it is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and no parameters, the description is the only source of behavioral information and it supplies almost none: no return shape, ordering, pagination, or scoping for 'of a chat'. For a listing tool in a crowded 60-tool sibling set, this leaves real gaps an agent cannot resolve elsewhere.

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?

The schema is empty, which normally warrants a baseline of 4, but the phrase 'of a chat' asserts a scoping parameter that no structured field supports, leaving the agent unsure whether a chat identifier is expected or implicit from session context. That unresolved claim lowers the score from the no-parameter baseline.

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?

States a specific verb ('List') and resource ('scheduled messages') in one clear phrase, so an agent knows exactly what it retrieves. However, it does not distinguish itself from the adjacent sibling tools 'schedule' and 'cancel', which sit in the same scheduling family, so an agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus 'schedule' (create a scheduled message) or 'cancel' (remove one), and no prerequisites, state, or timing conditions are stated. Usage is only implied by the resource name.

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

searchallB

Search all chats in the local sync mirror

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full behavioral burden. It usefully discloses that the search operates against the 'local sync mirror' rather than a live server, hinting at possible staleness or offline behavior. However, it omits read-only nature, result format, pagination, and any limits.

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?

A single front-loaded sentence with no redundant or filler content. Every word contributes to conveying the search scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter search tool with no output schema and no annotations, the description is minimally viable. It does not indicate what results look like, how they are ordered, whether they are paginated, or how they differ from the sibling 'search' tool, leaving clear gaps.

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?

The tool has zero parameters, so there is nothing for the description to clarify beyond what the empty schema already conveys. The baseline of 4 applies for a parameterless tool.

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?

States a specific verb ('Search') and resource ('all chats'), with a scoping qualifier ('local sync mirror') that distinguishes it from sibling search tools like 'search' and 'searchin'. It doesn't explicitly contrast itself with those siblings, but the 'all chats' scope implies a different span of search.

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

Usage Guidelines2/5

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

No guidance on when to choose this over the sibling 'search' or 'searchin' tools, nor any prerequisites or exclusions. The agent is left to infer usage from the name and one-line description alone.

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

searchinC

Search messages within one chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says nothing about permissions, result limits, pagination, or whether the search covers all messages or only cached ones. For a search operation with zero annotation coverage, this is inadequate.

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?

A single, short sentence that is front-loaded and contains no filler. It is exactly as long as needed for the limited information it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should clarify scope, return behavior, and relationship to sibling search tools. It provides none of this, leaving the agent without enough context to use the tool confidently.

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?

The schema has zero parameters, so the baseline is 4. The description does not need to explain parameters, and it correctly implies that the chat context is implicit rather than passed as an argument.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb (search) and resource (messages within one chat), which is clearer than a tautology. However, it does not distinguish this tool from the closely named sibling 'search' or 'searchall', leaving ambiguity about which search scope applies. An agent would need to inspect siblings to choose correctly.

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

Usage Guidelines2/5

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

The description provides no when-to-use guidance, no exclusions, and no comparison to alternatives like 'search' or 'searchall'. With multiple search-related siblings present, the absence of routing guidance is a significant gap.

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

sendC

Send text and/or files to a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden. It implies a write/send operation but does not disclose permissions, side effects, rate limits, return behavior, or whether messages are delivered immediately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The single sentence is front-loaded and wastes no words, but it is under-specified for a core mutation tool. Its brevity leaves important context unstated rather than being efficiently complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and an empty input schema, the description is not complete enough for reliable invocation. It never explains how to identify the target chat or how text/files are supplied, leaving essential operational context missing.

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?

With zero parameters, the baseline is 4. The description adds that text and/or files can be sent, providing some meaning beyond the empty schema, though it does not map these to named parameters.

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 ('Send') and resource ('text and/or files to a chat'), making the core purpose clear. It does not explicitly differentiate from siblings like upload or forward, but the action is understandable without opening schemas.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternatives are provided. The agent must infer usage entirely from the name and description, with no help distinguishing this from siblings such as upload or forward.

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

setbioB

Set your account bio

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says 'set' but does not disclose whether this overwrites an existing bio, requires authentication, has length limits, or what the result looks like.

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?

A single front-loaded sentence with no wasted words. It is appropriately concise for a simple tool name and purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and an empty input schema, the description is incomplete. It does not explain how a bio value is supplied or what happens when the tool is invoked, despite the tool requiring some way to set the bio.

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?

The tool has zero parameters and schema description coverage is 100%, so the baseline is 4. The description adds no parameter meaning because there are no parameters to document.

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?

States a specific verb and resource: 'Set' plus 'account bio'. The resource differentiates it from siblings like setname and setphoto, but the description does not explicitly call out those alternatives.

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

Usage Guidelines2/5

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

Provides no when-to-use context, prerequisites, or comparison to alternatives such as profile, setname, or setphoto. Usage is only implied by the tool name and purpose.

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

setnameC

Set your account first and last name

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not say whether the change requires re-authentication, is reversible, replaces both names atomically, or what the result looks like. For a mutation tool with zero annotation coverage this is thin.

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?

A single short sentence with the verb and target front-loaded and no filler. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter this could be adequate, but the empty parameter schema leaves the agent with no way to actually pass the names the description promises. The definition is incomplete at the point of invocation.

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

Parameters2/5

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

The input schema declares an empty object with no properties, yet the description asserts that a first and last name are supplied. An agent reading the description would expect two inputs that the schema does not accept, making the call ambiguous rather than informative.

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?

Specific verb ('Set') plus the exact resource and fields ('your account first and last name'), which implicitly separates it from siblings like setbio and setphoto. No explicit sibling routing, but the resource is unambiguous.

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

Usage Guidelines2/5

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

No statement of when to use this versus setbio/setphoto/profile, no prerequisites, and no note that it only affects the caller's own account (that is only implied by 'your'). The agent gets no guidance beyond the name.

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

setphotoB

Set your account profile photo from a local file

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not say whether the call overwrites an existing photo, what file formats/sizes are accepted, whether authentication is required, or what happens on failure for what is clearly a mutating operation.

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?

A single short sentence, front-loaded with the verb and object, with no filler. Nothing can be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and an empty input schema despite claiming to take 'a local file', the definition leaves an agent unable to tell how the file is supplied or what the result looks like. Considerably more disclosure is needed.

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?

With zero declared parameters, the rubric baseline is 4 and schema coverage is reported at 100%. The phrase 'from a local file' hints at the input source but leaves the actual file-passing mechanism unclear, keeping it below a 5.

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?

States a specific verb (Set) and resource (account profile photo) plus the input source (local file), which lets an agent place it among sibling photo tools like photo, del_photo, and album. It does not explicitly contrast itself with those siblings, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus alternatives such as del_photo or upload, no prerequisites, and no conditions under which it should not be called. The purpose implies usage but nothing is spelled out, so this sits just above 'no guidance'.

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

statusC

Show a user's online status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and does not say whether this is a read-only, side-effect-free call, how often status can be polled, or whether presence is cached/stale. For a presence lookup with related tools like 'watch' and 'poll', this context matters.

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?

A single short sentence that is front-loaded with the action. It is efficient, though too thin to earn full marks given the surrounding ambiguity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no params, no output schema, no annotations), so a one-liner can suffice. Still, it leaves the key question of whose status is returned unanswered, which is exactly what the description should resolve for a presence tool.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a parameterless tool is 4; the description adds only the notion of presence, with no format details to convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a clear verb and resource ('Show ... online status'), which is better than a tautology. However, 'a user's' is ambiguous given the tool takes zero parameters, so it is unclear whether it returns the caller's own status or someone else's. It also does not distinguish itself from siblings like 'me' or 'profile'.

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

Usage Guidelines2/5

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

No guidance on when to call this versus 'me' or 'profile', and no exclusions or prerequisites. The agent must guess whether this is a self-status check or a gateway to other users' presence.

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

syncB

Sync dialog list and recent messages into the local search mirror

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Sync ... into the local search mirror' implies a local mutation, but it does not disclose whether it is incremental or full-refresh, whether it overwrites or merges existing mirror data, whether it blocks until complete, or any auth/rate-limit constraints.

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?

A single sentence that front-loads the verb and states the target store. No filler, no restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no params, no output schema, no annotations), but the key operational questions remain unanswered: is this a prerequisite for 'search', is the mirror wiped or appended, and does the call return before or after the mirror is updated. For a state-mutating sync with zero structured support, this leaves an agent guessing.

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?

The tool takes zero parameters, so there is nothing to document and the schema cannot be a source of confusion. Baseline 4 applies; the description's mention of scope (dialogs + recent messages) at least characterizes what the implicit sync covers.

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?

Specific verb (sync) plus concrete resources (dialog list and recent messages) and a named destination (the local search mirror), which is far more informative than the bare name 'sync'. It does not, however, distinguish itself from adjacent siblings such as 'cached', 'grab', 'search', or 'export', which also deal with local/remote content.

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

Usage Guidelines2/5

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

The description never says when an agent should call this — e.g. before running 'search', after login, or on a schedule. There are no preconditions, no cadence guidance, and no exclusions relative to dozens of sibling tools.

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

topicsB

List forum topics in a forum-enabled chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read-only operation, but nothing is said about auth requirements, pagination/limits, whether it errors on non-forum chats, or what is returned. This is thin for a tool with zero annotation coverage.

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?

A single, front-loaded sentence with no filler, which is well-sized for a parameterless list tool. It is efficient, though extremely terse, leaving room for a short note on return behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema listing tool, the description is minimally viable. However, with no annotations it should at least signal that this is a safe read and note what happens outside forum-enabled chats.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. Schema coverage is 100% trivially.

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 pairs a clear verb ('List') with a specific resource ('forum topics') and a scoping condition ('forum-enabled chat'). It cleanly differentiates from neighboring list-style tools like dialogs and messages, though it does not name an alternative explicitly.

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

Usage Guidelines2/5

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

It states the context ('forum-enabled chat') but gives no guidance on when to reach for this tool versus messages or dialogs, and no exclusions or prerequisites. Usage is only inferable from the noun phrase.

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

typingB

Broadcast a typing action in a chat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden. It doesn't disclose whether this requires an active chat session, what permissions are needed, whether it's idempotent, or any side effects. It only states the action without behavioral details.

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?

A single, clear sentence that is front-loaded and contains no unnecessary words. It efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no annotations, and no output schema, the description is minimal but could be adequate. However, for a tool that might have implicit context (e.g., current chat), it lacks explanation of how it operates within a chat session. It's the minimum viable but leaves gaps.

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?

The tool has 0 parameters, so there is no parameter schema to describe. The description appropriately doesn't mention parameters. Baseline for 0 params is 4.

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?

States a specific verb (Broadcast) and resource (typing action in a chat). It's clear what the tool does. However, with siblings like send, notify, watch, it doesn't explicitly distinguish when to broadcast typing versus sending a message or notifying, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It doesn't mention that this is for simulating typing indicators or that it's typically used before sending a message. The description only implies usage without any explicit context.

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

unbanC

Unban a user in a channel

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden. It states the action but discloses nothing about permissions required, reversibility, side effects, or what happens to the user's access, leaving the agent with no behavioral context.

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?

A single, front-loaded sentence with no wasted words. For a zero-parameter tool, this is maximally concise and well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a mutation tool with no annotations, no output schema, and no parameters, the description is too sparse. It doesn't explain how the affected user/channel is determined, what authorization is needed, or what the result will be, leaving important context missing.

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?

The input schema has zero parameters and the coverage is effectively complete, so the baseline for 0 params applies. The description adds no parameter detail, but there are no parameters to explain, making this adequate.

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 ('Unban') and resource ('a user in a channel'), and it clearly distinguishes itself from sibling tools like 'ban' and 'kick'. It loses a point only because it doesn't clarify how the user or channel is identified, though the tool has no parameters.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, prerequisites, or explicit alternatives. An agent must infer that it reverses a ban rather than using 'ban' or 'kick', but there is no stated condition or exclusion.

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

unblockC

Unblock a user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a state mutation but says nothing about permissions required, whether the unblocked user is notified, whether the action is reversible, or what entity scope it operates on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

Three words, front-loaded with the verb. It is concise, but the brevity crosses into under-specification rather than efficient communication, since the phrase merely restates the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, no-annotation, no-output-schema mutation tool, the description is the only source of behavior and routing information, and it supplies neither. The relationship to the 'unban' sibling and any permission requirements are left entirely unexplained.

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?

The schema declares zero parameters, so per the rubric the baseline is 4. The description adds no parameter detail, but there is nothing for it to document — though it is worth noting that a tool named 'unblock a user' taking no target identifier is semantically odd.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/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 ('Unblock a user'), which is clearer than a tautology. However, it does nothing to distinguish this tool from the very similar sibling 'unban' (and the related 'block'/'ban'/'kick' cluster), leaving the agent unable to tell which removal-of-restriction tool applies.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the alternative 'unban'. The agent must infer the distinction between unblocking and unbanning entirely on its own.

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

uploadB

Upload a file to a chat (sends a photo, document, or voice note by type; caption is rich text)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It adds one useful behavioral detail ('caption is rich text') and implies type-driven send modes, but says nothing about authentication, size limits, error behavior, or what happens on success.

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?

A single front-loaded sentence with the core action first and clarifying detail in parentheses. No wasted words, though the parenthetical is slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an empty schema, no annotations, and no output schema, the description is the only source of information. It conveys intent but leaves open how the file and target chat are supplied, which is a meaningful omission for an upload tool.

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?

The schema has zero parameters, so the baseline of 4 applies per the scoring rules. The description mentions 'type' and 'caption' concepts that do not surface as schema fields, but this is a schema gap rather than misleading parameter documentation.

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 concrete verb and resource ('Upload a file to a chat') and clarifies the media it handles (photo, document, voice note), which helps separate it from the text-oriented 'send' sibling. It stops short of explicitly naming when to prefer 'photo' or 'voice' over this tool, so it is clear but not fully differentiated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives such as 'send', 'photo', or 'voice', nor any stated prerequisites like a target chat. Usage is only inferable from the tool name and the parenthetical about media types.

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

voiceC

Send an audio file as a voice message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says nothing about authentication, file size/format limits, whether the message is delivered immediately or queued, or what happens on failure — all important for a messaging mutation.

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?

A single efficient sentence with the action front-loaded, no padding or redundancy. It is appropriately sized for the very small amount of information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, an empty parameter schema, and a large ambiguous sibling set, the description should explain file input, delivery behavior, and relationship to 'send'. It leaves the agent without enough to invoke the tool reliably.

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?

The input schema declares zero properties, so there are no parameters to document and the baseline would ordinarily be 4. But a 'send an audio file' tool with no way to specify the file is a semantic gap the description does not address; a 3 reflects that the definition is not self-sufficient about its input.

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?

States a specific verb and resource ('Send an audio file as a voice message'), which is clearer than the bare name 'voice'. However, it does not distinguish itself from the sibling 'send' or 'upload', which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

No guidance on when to choose this over 'send', 'upload', or any other delivery sibling, and no prerequisites mentioned. The agent is left to infer that this is a special-case variant of 'send'.

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

waitA

Wait (push, no polling) until a new message arrives

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It usefully discloses the push mechanism rather than a polling loop, which is real behavioral context. But it says nothing about how long the call blocks, whether there is a timeout, whether it can be cancelled, or whether the wait is blocking-only — significant gaps for a blocking call.

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?

A single short sentence with the mechanism front-loaded in the parenthetical and zero wasted words. Nothing could be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must cover more ground. It does not say what is returned when a message arrives (the message itself?), nor what happens on timeout or connection loss, nor whether it blocks the caller. For a blocking, output-less-schema tool this leaves a meaningful gap.

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?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to disambiguate or compensate for.

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?

States a specific verb ('Wait') and the resource condition ('until a new message arrives'), and the parenthetical '(push, no polling)' implicitly distinguishes it from the sibling 'poll' tool. It stops short of naming 'poll' explicitly, but the contrast is clear enough for selection.

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?

The phrase 'until a new message arrives' implies the use case (block until inbound activity) and the 'no polling' note hints at when to prefer this over the 'poll' sibling. However, there is no explicit when-to-use/when-not guidance, no mention of blocking duration or timeout behavior, and no conditions under which an agent should pick a different sibling.

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

watchC

Snapshot the last messages of a chat, or the latest dialogs when target is omitted

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the snapshot is a read-only retrieval, whether it mutates or marks messages as read, what permissions are needed, or what the result contains. The single sentence is grossly inadequate for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

It is a single short sentence with no waste, but it is front-loaded with the vague term 'Snapshot' rather than the concrete action. Brevity is achieved at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Zero parameters, no annotations, no output schema, and 48 sibling tools. Without annotations, the description must carry the full behavioral burden. It fails to explain the return format, the meaning of 'last', whether the snapshot is persisted or ephemeral, or how it differs from messages/dialogs. It is not sufficient for an agent to call correctly.

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?

Parameter count is 0, so the baseline is 4. However, the description references a 'target' parameter that is absent from the schema, which is confusing and slightly undermines its usefulness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mentions 'snapshot the last messages of a chat, or the latest dialogs' but does not actually state the core action. The word 'Snapshot' is vague; it could mean read, retrieve, copy, or capture. It references a 'target' parameter that does not exist in the schema, and does not distinguish this tool from siblings like read, messages, or dialogs.

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

Usage Guidelines2/5

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

It gives a fallback ('when target is omitted') but no positive condition for when to use this over read, messages, or dialogs. No when-not-to-use or alternative selection guidance is provided.

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

wipeA

Delete the session, mirror and media of the current account

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the destructive scope (session + mirror + media), which is valuable, but it omits irreversibility, whether confirmation is required, or whether it affects server-side or local data only.

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?

One sentence, front-loaded with the destructive verb, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, annotation-free, no-output-schema tool, the description is adequate but thin. It should mention irreversibility and possibly auth/permission requirements given the severity of the operation.

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?

Zero parameters and 100% schema coverage, so the baseline of 4 applies. The description correctly implies no parameterization – it operates on 'the current account' implicitly, which is useful context.

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?

States a specific verb (Delete) and resource set (session, mirror, media of the current account), clearly distinguishing it from siblings like 'delete' (generic message delete) and 'logout' (session termination only). It's clear what it destroys, though 'mirror' is jargon an agent may not disambiguate without domain knowledge.

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?

Usage is implied by the destructive language and the sibling 'logout', but there is no explicit when-to-use guidance or warning against using it casually. With 'delete', 'logout', and 'wipe' all present, some routing guidance would help.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 61 tool updatesv0.1.0
    • First observedadd_contact
    • First observedalbum
    • First observedban
    • First observedblock
    • First observedblock_list
    • First observedcached
    • First observedcancel
    • First observedcontacts
    • First observeddel_photo
    • First observeddelete
    • First observeddelete_contact
    • First observeddialogs
    • First observeddownload
    • First observeddraft
    • First observeddrafts
    • First observededit
    • First observedexport
    • First observedexport_contacts
    • First observedfolder_new
    • First observedfolder_rm
    • First observedfolders
    • First observedforward
    • First observedgrab
    • First observedimport
    • First observedimport_contacts
    • First observedkick
    • First observedlogin
    • First observedlogout
    • First observedme
    • First observedmembers
    • First observedmessages
    • First observednotify
    • First observedphoto
    • First observedpin
    • First observedpinned
    • First observedpoll
    • First observedprofile
    • First observedpromote
    • First observedreact
    • First observedreactions
    • First observedread
    • First observedschedule
    • First observedscheduled
    • First observedsearch
    • First observedsearchall
    • First observedsearchin
    • First observedsend
    • First observedsetbio
    • First observedsetname
    • First observedsetphoto
    • First observedstatus
    • First observedsync
    • First observedtopics
    • First observedtyping
    • First observedunban
    • First observedunblock
    • First observedupload
    • First observedvoice
    • First observedwait
    • First observedwatch
    • First observedwipe

TDQS

C2.5/5.0

Scored across 61 tools

Disambiguation2/5

Several clusters overlap heavily: send/upload/photo/voice/album all send media, search/searchall/searchin all search the mirror, and export/export_contacts, import/import_contacts, ban/kick/block, schedule/scheduled/cancel, draft/drafts, pin/pinned, and react/reactions blur boundaries. Descriptions help somewhat, but an agent could easily misselect among these near-duplicates.

Naming Consistency2/5

Mostly lowercase, but patterns are inconsistent: some compounds use underscores (add_contact, delete_contact, block_list, del_photo), others concatenate (setname, searchall, searchin, setbio, setphoto), and some are noun_verb (folder_new, folder_rm) while others are verb_noun (add_contact). The abbreviation mix of 'del_photo' versus 'delete_contact' further breaks consistency.

Tool Count1/5

61 tools is excessive for a chat client MCP. Many are micro-operations (typing, status, notify, wait, watch) or near-duplicate media/search/contact commands, inflating the surface far beyond a well-scoped set.

Completeness4/5

The surface is broad—auth, messaging, media, contacts, groups/channels, folders, profiles, sync/search, scheduling, drafts, and session export/import/wipe. Gaps include creating/joining/leaving chats, inviting members, archiving/muting, and detailed chat info, but these are minor for most workflows.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Fast MCP Telegram — Production-grade Telegram MCP server with direct MTProto API, multi-user ACL, dual transport (stdio + HTTP SSE), voice transcription, and context-optimized design. One-command setup with uvx fast-mcp-telegram
    8
    49
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Privacy-first Telegram MCP server enabling maintainers to triage chats, inspect context, search messages, draft replies, and send authorized messages locally without a cloud relay.
    32 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A local MCP server that enables full-text and semantic search over your own Telegram chats using your personal MTProto login, with everything running locally.
    7
    MIT