Skip to main content
Glama

Telegram MCP Server

npm npm downloads Node.js TypeScript MCP SDK License: MIT mcp-telegram MCP server

๐Ÿ“– Documentation ยท โ˜๏ธ Cloud version โ€” connect Telegram to Claude.ai or ChatGPT in 30 seconds with QR code, no API keys needed.

Telegram MCP Server โ€” a Model Context Protocol server that connects AI assistants like Claude and ChatGPT to Telegram via the MTProto protocol. Unlike bots, this runs as a userbot -- it operates under your personal Telegram account using GramJS, giving full access to your chats, contacts, and message history.

Features

  • Comprehensive tool coverage -- the most full-featured Telegram MCP server available

  • MTProto protocol -- direct Telegram API access, not the limited Bot API

  • Userbot -- operates as your personal account, not a bot

  • Full-featured -- messaging, reactions, polls, scheduled messages, stickers, media, contacts, and more

  • Forum Topics -- list topics, read per-topic messages, send to specific topics, per-topic unread counts

  • Stickers -- search sticker sets, browse installed/recent stickers, send stickers to any chat

  • Account & profile management -- update profile, set emoji status, birthday, personal channel, profile photo, manage privacy settings, sessions, auto-delete timers

  • Chat folders -- create, edit, delete and reorder folders, toggle folder tags, read suggested folders (v1.33.0)

  • Global privacy -- read and set account-wide privacy settings (v1.33.0)

  • Global search -- search messages across all chats at once

  • Real-time polling -- fetch updates via stateless cursors; agent owns {pts, qts, date} state

  • Inline bots & buttons -- query inline bots, send results, press callback buttons

  • Stories -- read stories from peers, get story view stats; publish/edit/delete stories, react, pin, stealth mode, archive, report (v1.30.0)

  • Discussion -- get discussion-group info for channel posts with comments, list groups eligible for discussion (v1.30.0)

  • Read Receipts -- who read a message in a small group, when your private message was read (v1.30.0)

  • Admin controls -- toggle channel signatures, anti-spam, forum mode, prehistory; approve join requests

  • Stats -- channel and supergroup analytics (GetBroadcastStats / GetMegagroupStats)

  • Boosts & Business -- boost status, boosters list, Telegram Business chat links CRUD, work hours, location, greeting/away/intro messages

  • Star gifts -- browse available and saved gifts, save/convert gifts, manage Stars balance and subscriptions (opt-in via MCP_TELEGRAM_ENABLE_STARS=1, v1.34.0)

  • Shared daemon -- one background process serves multiple MCP clients over a single Telegram session; see the shared-daemon guide (v1.38.0)

  • QR code login -- authenticate by scanning a QR code in the Telegram app

  • Session persistence -- login once, stay connected across restarts

  • Human-readable output -- sender names are resolved, not just numeric IDs

  • Works with any MCP client -- Claude Code, Claude Desktop, ChatGPT, Cursor, VS Code, Mastra, etc.

Related MCP server: MCP Telegram

Prerequisites

  • Node.js 18 or later

  • Telegram API credentials -- API_ID and API_HASH from my.telegram.org

Quick Start

1. Get Telegram API credentials

  1. Go to my.telegram.org and log in with your phone number.

  2. Navigate to API development tools.

  3. Create a new application (any name and platform).

  4. Copy the App api_id and App api_hash.

2. Login

TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH npx @overpod/mcp-telegram login

A QR code will appear in the terminal. Open Telegram on your phone, go to Settings > Devices > Link Desktop Device, and scan the code. The session is saved to ~/.mcp-telegram/session and reused automatically.

Custom session path: set TELEGRAM_SESSION_PATH=/path/to/session to store the session file elsewhere.

Two-step verification (2FA): if your account has a cloud password enabled, scanning the QR code is not enough โ€” Telegram also requires the password. Provide it via TELEGRAM_2FA_PASSWORD so the login can complete:

TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH TELEGRAM_2FA_PASSWORD=YOUR_PASSWORD npx @overpod/mcp-telegram login

The password is only used locally to answer Telegram's SRP challenge and is never persisted.

3. Add to Claude

claude mcp add telegram -s user \
  -e TELEGRAM_API_ID=YOUR_ID \
  -e TELEGRAM_API_HASH=YOUR_HASH \
  -- npx @overpod/mcp-telegram

That's it! Ask Claude to run telegram-status to verify.

Multiple Accounts

Use TELEGRAM_SESSION_PATH to run separate Telegram accounts side by side:

# Login each account with a unique session path
TELEGRAM_API_ID=ID1 TELEGRAM_API_HASH=HASH1 TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-work npx @overpod/mcp-telegram login
TELEGRAM_API_ID=ID2 TELEGRAM_API_HASH=HASH2 TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-personal npx @overpod/mcp-telegram login

Then add each as a separate MCP server:

claude mcp add telegram-work -s user \
  -e TELEGRAM_API_ID=ID1 \
  -e TELEGRAM_API_HASH=HASH1 \
  -e TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-work \
  -- npx @overpod/mcp-telegram

claude mcp add telegram-personal -s user \
  -e TELEGRAM_API_ID=ID2 \
  -e TELEGRAM_API_HASH=HASH2 \
  -e TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-personal \
  -- npx @overpod/mcp-telegram

Each account gets its own session file โ€” no conflicts.

Multiple agents / concurrent clients (shared daemon)

The opposite of multiple accounts: one account driven by many clients at once โ€” several Claude Code windows, parallel sub-agents, or multiple IDEs. Normally each process opens the same session and they evict one another with AUTH_KEY_DUPLICATED. Serve mode fixes this.

Run a single persistent daemon that owns the one Telegram connection. Every other process auto-detects the daemon (via a PID lock) and becomes a thin client that proxies tool calls to it over a local Unix socket:

# On the host, once: start the daemon (owns the connection, no stdio)
TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH mcp-telegram serve
# (or set MCP_TELEGRAM_DAEMON=1 instead of the `serve` argument)

Then point each MCP client at the same install with the same TELEGRAM_SESSION_PATH โ€” no serve argument. They connect to the daemon automatically; closing any client never drops the shared connection. Credentials are only required by the daemon (the owner), so client commands can omit TELEGRAM_API_ID/TELEGRAM_API_HASH and keep them where the daemon runs.

See the shared daemon guide for a systemd unit and SSH usage.

Proxy Support

If Telegram is blocked or you're running in a containerized environment (Docker, K3s), use a SOCKS5 or MTProxy:

# SOCKS5 proxy
TELEGRAM_PROXY_IP=127.0.0.1 \
TELEGRAM_PROXY_PORT=10808 \
npx @overpod/mcp-telegram

# MTProxy
TELEGRAM_PROXY_IP=proxy.example.com \
TELEGRAM_PROXY_PORT=443 \
TELEGRAM_PROXY_SECRET=ee00000000000000000000000000000000 \
npx @overpod/mcp-telegram

Variable

Description

TELEGRAM_PROXY_IP

Proxy server address

TELEGRAM_PROXY_PORT

Proxy server port

TELEGRAM_PROXY_SOCKS_TYPE

4 or 5 (default: 5)

TELEGRAM_PROXY_SECRET

MTProxy secret (enables MTProxy mode)

TELEGRAM_PROXY_USERNAME

Optional proxy auth

TELEGRAM_PROXY_PASSWORD

Optional proxy auth

Connecting via WSS (port 443)

If your VPS or hosting IP is reachable on outbound port 443 but not the default MTProto port 80 (some cloud providers ban port 80 on Telegram DC IP ranges as anti-abuse policy), set:

TELEGRAM_USE_WSS=true npx @overpod/mcp-telegram

Variable

Description

TELEGRAM_USE_WSS

When true, gramJS uses port 443 instead of 80 for the MTProto TCPFull transport. Default: false. Cannot be combined with TELEGRAM_PROXY_* (gramJS limitation) โ€” if both are set, useWSS is ignored and the proxy takes precedence (a warning is logged).

Installation Options

No need to clone or install anything. Just use npx @overpod/mcp-telegram.

Global install

npm install -g @overpod/mcp-telegram
mcp-telegram          # run server
mcp-telegram login    # QR login

Pre-built binary (no runtime needed)

Download from Releases โ€” standalone single-file binaries, zero dependencies:

Platform

Server

Login CLI

Linux x64

mcp-telegram-linux-x64

mcp-telegram-login-linux-x64

Linux ARM64

mcp-telegram-linux-arm64

mcp-telegram-login-linux-arm64

macOS x64

mcp-telegram-darwin-x64

mcp-telegram-login-darwin-x64

macOS ARM64

mcp-telegram-darwin-arm64

mcp-telegram-login-darwin-arm64

Windows x64

mcp-telegram-windows-x64.exe

mcp-telegram-login-windows-x64.exe

# Download (example for Linux x64)
curl -L -o mcp-telegram https://github.com/mcp-telegram/mcp-telegram/releases/latest/download/mcp-telegram-linux-x64
curl -L -o mcp-telegram-login https://github.com/mcp-telegram/mcp-telegram/releases/latest/download/mcp-telegram-login-linux-x64
chmod +x mcp-telegram mcp-telegram-login

# Login
TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH ./mcp-telegram-login

# Run
./mcp-telegram

From source

git clone https://github.com/mcp-telegram/mcp-telegram.git
cd mcp-telegram
npm install && npm run build

Docker

docker build -t mcp-telegram https://github.com/mcp-telegram/mcp-telegram.git

Login (interactive terminal required):

docker run -it --rm \
  -e TELEGRAM_API_ID=YOUR_ID \
  -e TELEGRAM_API_HASH=YOUR_HASH \
  -v ~/.mcp-telegram:/root/.mcp-telegram \
  --entrypoint node mcp-telegram dist/qr-login-cli.js

Run the MCP server:

docker run -i --rm \
  -e TELEGRAM_API_ID=YOUR_ID \
  -e TELEGRAM_API_HASH=YOUR_HASH \
  -v ~/.mcp-telegram:/root/.mcp-telegram \
  mcp-telegram

Note: Login must be done once via terminal. After that, the session is persisted in ~/.mcp-telegram and reused automatically.

Usage with MCP Clients

Claude Code (CLI)

claude mcp add telegram -s user \
  -e TELEGRAM_API_ID=YOUR_ID \
  -e TELEGRAM_API_HASH=YOUR_HASH \
  -- npx @overpod/mcp-telegram

Claude Desktop

  1. Open your config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Add the Telegram server:

{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": ["@overpod/mcp-telegram"],
      "env": {
        "TELEGRAM_API_ID": "YOUR_ID",
        "TELEGRAM_API_HASH": "YOUR_HASH"
      }
    }
  }
}
  1. Restart Claude Desktop.

  2. Ask Claude: "Run telegram-login" -- a QR code will appear. If the image is not visible, it's also saved to ~/.mcp-telegram/qr-login.png. Scan it in Telegram (Settings > Devices > Link Desktop Device).

  3. Ask Claude: "Run telegram-status" to verify the connection.

Note: No terminal required! Login works entirely through Claude Desktop.

Claude Desktop (Binary)

Same setup, but using the pre-built binary instead of npx:

{
  "mcpServers": {
    "telegram": {
      "command": "/path/to/mcp-telegram",
      "env": {
        "TELEGRAM_API_ID": "YOUR_ID",
        "TELEGRAM_API_HASH": "YOUR_HASH"
      }
    }
  }
}

Claude Desktop (Docker)

  1. Login via terminal first (see Docker section above).

  2. Add to your config file:

{
  "mcpServers": {
    "telegram": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "TELEGRAM_API_ID=YOUR_ID",
        "-e", "TELEGRAM_API_HASH=YOUR_HASH",
        "-v", "~/.mcp-telegram:/root/.mcp-telegram",
        "mcp-telegram"
      ]
    }
  }
}
  1. Restart Claude Desktop. Ask Claude: "Run telegram-status" to verify.

Cursor / VS Code

Add the same JSON config above to your MCP settings (Cursor Settings > MCP, or VS Code MCP config).

Mastra

import { MCPClient } from "@mastra/mcp";

const telegramMcp = new MCPClient({
  id: "telegram-mcp",
  servers: {
    telegram: {
      command: "npx",
      args: ["@overpod/mcp-telegram"],
      env: {
        TELEGRAM_API_ID: process.env.TELEGRAM_API_ID!,
        TELEGRAM_API_HASH: process.env.TELEGRAM_API_HASH!,
      },
    },
  },
});

Tools

All tools are auto-discoverable via MCP โ€” your AI client will see the full list with parameters and descriptions when connected.

Category

Tools

Auth

telegram-status, telegram-login, telegram-logout

Messaging

telegram-send-message (incl. quoteText for verbatim reply quotes and Premium message effect), telegram-edit-message, telegram-delete-message, telegram-forward-message, telegram-send-scheduled, telegram-send-typing, telegram-translate-message, telegram-get-message-link

Scheduled

telegram-get-scheduled, telegram-delete-scheduled

Reading

telegram-list-chats, telegram-read-messages, telegram-search-messages, telegram-search-global, telegram-search-chats, telegram-get-unread, telegram-mark-as-read, telegram-get-replies, telegram-get-unread-mentions, telegram-get-unread-reactions, telegram-get-saved-dialogs

Drafts

telegram-save-draft, telegram-get-drafts, telegram-clear-drafts

Forum Topics

telegram-list-topics, telegram-read-topic-messages, telegram-create-topic, telegram-edit-topic, telegram-delete-topic

Polls

telegram-create-poll

Poll Interaction (v1.31.0)

telegram-vote-poll, telegram-get-poll-results, telegram-get-poll-voters, telegram-close-poll

Reactions

telegram-send-reaction, telegram-get-reactions, telegram-set-default-reaction, telegram-get-top-reactions, telegram-get-recent-reactions

Paid Reactions (v1.31.0)

telegram-send-paid-reaction (โ˜… Stars), telegram-toggle-paid-reaction-privacy, telegram-get-paid-reaction-privacy

Audio Transcription (v1.31.0)

telegram-transcribe-audio (Premium), telegram-get-transcription, telegram-rate-transcription

Fact-check (v1.31.0)

telegram-get-fact-check, telegram-edit-fact-check, telegram-delete-fact-check

Stickers

telegram-send-sticker, telegram-get-installed-stickers, telegram-get-recent-stickers, telegram-get-sticker-set, telegram-search-sticker-sets

Media

telegram-send-file, telegram-download-media, telegram-get-profile-photo, telegram-get-web-preview

Rich Media Sending

telegram-send-voice, telegram-send-video-note (round video), telegram-send-location (static or live), telegram-send-venue, telegram-send-contact, telegram-send-dice (๐ŸŽฒ๐ŸŽฏ๐ŸŽฐ๐Ÿ€โšฝ๐ŸŽณ), telegram-send-album (2โ€“10 grouped photos/videos)

Groups

telegram-create-group, telegram-edit-group, telegram-invite-to-group, telegram-join-chat, telegram-leave-group, telegram-kick-user, telegram-ban-user, telegram-unban-user, telegram-set-admin, telegram-remove-admin, telegram-get-my-role, telegram-set-chat-permissions, telegram-set-slow-mode, telegram-get-admin-log

Chat Info

telegram-get-chat-info, telegram-get-chat-members, telegram-get-chat-folders

Folders (v1.33.0)

telegram-create-folder, telegram-edit-folder, telegram-delete-folder, telegram-reorder-folders, telegram-get-suggested-folders, telegram-toggle-folder-tags

Global Privacy (v1.33.0)

telegram-get-global-privacy-settings, telegram-set-global-privacy-settings

Invite Links

telegram-create-invite-link, telegram-get-invite-links, telegram-revoke-invite-link

Contacts

telegram-get-contacts, telegram-add-contact, telegram-get-contact-requests

Moderation

telegram-block-user, telegram-unblock-user, telegram-report-spam

Profiles (read)

telegram-get-profile, telegram-update-profile

Profile (write, v1.32.0)

telegram-set-emoji-status (Premium), telegram-list-emoji-statuses, telegram-clear-recent-emoji-statuses, telegram-set-profile-color (Premium), telegram-set-birthday, telegram-set-personal-channel, telegram-set-profile-photo, telegram-delete-profile-photo

Account

telegram-get-sessions, telegram-terminate-session, telegram-set-privacy, telegram-set-auto-delete

Pinning

telegram-pin-message, telegram-unpin-message

Chat Settings

telegram-mute-chat, telegram-archive-chat, telegram-pin-chat, telegram-mark-dialog-unread

Admin Toggles

telegram-toggle-channel-signatures, telegram-toggle-anti-spam, telegram-toggle-forum-mode, telegram-toggle-prehistory-hidden, telegram-set-chat-reactions, telegram-approve-join-request

Stats

telegram-get-broadcast-stats, telegram-get-megagroup-stats

Inline Bots & Buttons

telegram-inline-query, telegram-inline-query-send, telegram-press-button, telegram-get-message-buttons

Real-Time Polling

telegram-get-state, telegram-get-updates, telegram-get-channel-updates

Stories (read)

telegram-get-all-stories, telegram-get-peer-stories, telegram-get-stories-by-id, telegram-get-story-views

Stories (write, v1.30.0)

telegram-send-story, telegram-edit-story, telegram-delete-stories, telegram-react-to-story, telegram-export-story-link, telegram-read-stories, telegram-toggle-story-pinned, telegram-toggle-story-pinned-to-top, telegram-activate-stealth-mode (Premium), telegram-get-stories-archive, telegram-report-story

Discussion (v1.30.0)

telegram-get-discussion-message, telegram-get-groups-for-discussion

Read Receipts (v1.30.0)

telegram-get-message-read-participants, telegram-get-outbox-read-date

Boosts

telegram-get-my-boosts, telegram-get-boosts-status, telegram-get-boosts-list

Business (v1.32.0)

telegram-get-business-chat-links, telegram-create-business-chat-link, telegram-edit-business-chat-link, telegram-delete-business-chat-link, telegram-resolve-business-chat-link, telegram-set-business-hours, telegram-set-business-location, telegram-set-business-greeting, telegram-set-business-away, telegram-set-business-intro

Opt-in (env-gated)

telegram-get-group-call, telegram-get-group-call-participants (requires MCP_TELEGRAM_ENABLE_GROUP_CALLS=1); Stars & gifts telegram-get-stars-status, telegram-get-stars-transactions, telegram-get-stars-topup-options, telegram-get-stars-subscriptions, telegram-change-stars-subscription, telegram-get-available-star-gifts, telegram-get-saved-star-gifts, telegram-save-star-gift, telegram-convert-star-gift (requires MCP_TELEGRAM_ENABLE_STARS=1); telegram-get-quick-replies, telegram-get-quick-reply-messages (requires MCP_TELEGRAM_ENABLE_QUICK_REPLIES=1)

Tip: Ask your AI assistant "What Telegram tools are available?" to get the full list with parameters and descriptions.

Optional Features

Some tools are disabled by default and must be opted in via environment variables:

Variable

Value

Tools enabled

MCP_TELEGRAM_ENABLE_GROUP_CALLS

1

telegram-get-group-call, telegram-get-group-call-participants

MCP_TELEGRAM_ENABLE_STARS

1

Stars balance & transactions, top-up options, subscriptions, and Star Gifts (browse / save / convert)

MCP_TELEGRAM_ENABLE_QUICK_REPLIES

1

telegram-get-quick-replies, telegram-get-quick-reply-messages

Add these to your .env file or MCP client config to enable them.

Development

npm run dev        # Start with file watching (tsx)
npm start          # Start the MCP server
npm run login      # QR code login in terminal
npm run build      # Compile TypeScript
npm run lint       # Check code with Biome
npm run lint:fix   # Auto-fix lint issues
npm run format     # Format code with Biome

Project Structure

src/
  index.ts            -- MCP server entry point
  telegram-client.ts  -- TelegramService class (GramJS wrapper)
  qr-login-cli.ts     -- CLI utility for QR code login
  tools/              -- Modular tool definitions
    auth.ts           -- Connection & login
    messages.ts       -- Send, read, search, edit, delete, forward; inline bots; real-time polling
    chats.ts          -- Chat listing, group management, admin toggles, stats
    contacts.ts       -- Contacts, profiles, moderation
    media.ts          -- Files, photos, downloads
    reactions.ts      -- Reactions, set-chat-reactions
    extras.ts         -- Pin, schedule, polls, topics
    stickers.ts       -- Sticker sets, send, search, browse
    account.ts        -- Sessions, privacy, auto-delete, profile, emoji status, birthday, chat mute/folders, invite links
    business.ts       -- Telegram Business: chat links CRUD, work hours, location, greeting/away/intro
    boosts.ts         -- Boost status, my boosts, boosters list
    stories.ts        -- Stories: list all, peer, by-id, view stats
    group-calls.ts    -- Group call info and participants (opt-in: MCP_TELEGRAM_ENABLE_GROUP_CALLS)
    stars.ts          -- Stars wallet status and transactions (opt-in: MCP_TELEGRAM_ENABLE_STARS)
    quick-replies.ts  -- Quick replies and messages (opt-in: MCP_TELEGRAM_ENABLE_QUICK_REPLIES)
    shared.ts         -- Shared utilities

Tech Stack

  • TypeScript -- ES2022, ESM modules

  • GramJS (telegram) -- Telegram MTProto client

  • @modelcontextprotocol/sdk -- MCP server framework

  • Zod -- Runtime schema validation for tool parameters

  • Biome -- Linter and formatter

  • tsx -- TypeScript execution without a build step

  • dotenv -- Environment variable management

Troubleshooting

AUTH_KEY_DUPLICATED

A Telegram session can only be used by one process at a time. If you get AUTH_KEY_DUPLICATED, it means another process is already using the same session file.

Solution: Create separate sessions for each environment:

# Local development
TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-local npx @overpod/mcp-telegram login

# Production server
TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-prod npx @overpod/mcp-telegram login

Then set TELEGRAM_SESSION_PATH in each environment's MCP config accordingly.

Security

  • API credentials are stored in .env (gitignored)

  • Session is stored in ~/.mcp-telegram/session with 0600 permissions (owner-only access)

  • Session directory is created with 0700 permissions

  • Phone number is not required -- QR-only authentication

  • No data is sent to third-party services -- all communication goes directly to Telegram servers via MTProto

  • QR login codes are generated locally and never leave your machine

  • One session per process -- using the same session in multiple processes simultaneously causes AUTH_KEY_DUPLICATED errors (see Troubleshooting)

  • This is a userbot (personal account), not a bot -- respect the Telegram Terms of Service

License

MIT

Available Tools

169 tools
telegram-activate-stealth-modeA

Hide your story views retroactively (past=true) and/or for the next 25 minutes (future=true). Requires Telegram Premium โ€” non-Premium accounts receive PREMIUM_ACCOUNT_REQUIRED.

ParametersJSON Schema
NameRequiredDescriptionDefault
pastNoRemove your views from stories you already watched
futureNoHide your views for the next 25 minutes

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate mutation (readOnlyHint=false) and open-world effects (openWorldHint=true). The description adds important behavioral details: the Premium requirement and the specific timeframes for future mode (25 minutes). However, it does not explain if the effect is reversible or how long past mode changes last.

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 highly concise: two sentences covering the core action, parameters, and a key constraint (Premium). Every sentence earns its place with no unnecessary words.

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 mutation tool with two booleans and no output schema, the description covers the main functionality and an important error condition. Minor gaps exist around permanence and future mode toggling, but overall it is sufficiently complete given the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions, so baseline is 3. The tool description restates the parameter purposes in plain language but does not add significant semantic value beyond what the schema already provides.

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?

Description clearly states the tool hides story views, specifying two modes (retroactively for past views and for the next 25 minutes for future views). It also mentions the Premium requirement, which distinguishes it from many other story-related sibling tools that handle sending, deleting, or reading stories.

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 description provides context for when to use the tool (to hide story views) but does not explicitly mention when not to use it or compare it to alternatives like privacy settings or other story tools. No exclusions or alternatives are given.

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

telegram-add-contactA

Add a user to your Telegram contacts. Use this to accept contact requests from non-contacts

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNoPhone number for the contact
userIdYesUser ID or username to add
lastNameNoLast name for the contact
firstNameYesFirst name for the contact

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false) with potential side effects (openWorldHint=true). Description adds no further behavioral details beyond stating the action, such as side effects or prerequisites.

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?

Two short sentences, front-loaded with the action. Every word adds value, no redundancy.

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?

Lacks information about return values (no output schema) and does not clarify parameter usage nuances (e.g., userId can be username). Considering the tool's simplicity and annotation coverage, it is minimally adequate.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. Description does not add additional meaning or usage notes for parameters like 'userId' or 'phone' beyond what is in the schema.

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?

Description clearly states the action ('Add a user to your Telegram contacts') and provides a specific use case ('accept contact requests from non-contacts'). This distinguishes it from sibling tools like telegram-send-contact or telegram-get-contacts.

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?

Explicitly tells when to use ('use this to accept contact requests from non-contacts'). While it doesn't list alternatives, the context makes it clear that this is for adding contacts specifically.

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

telegram-approve-join-requestA

Approve or deny a pending join request for a supergroup or channel (basic groups are not supported). Admin with invite_users permission required

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username where the join request is pending
userIdYesUser ID or username of the requesting user
approvedYestrue to approve the join request, false to deny

TDQS

A3.8/5.0
Behavior3/5

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

The description adds the constraint that basic groups are not supported and the permission requirement, which are useful behavioral traits beyond the annotations' readOnlyHint=false and openWorldHint=true. However, it does not detail side effects, error conditions, or state changes.

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 extremely concise: two sentences, no redundant words, and captures the core purpose and a key requirement efficiently.

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?

Given the tool's simplicity (3 params, no output schema), the description covers the main aspects: action, supported chat types, and permission needed. It lacks details on idempotency or error conditions but is largely sufficient for accurate 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 input schema already provides full descriptions for all three parameters (100% coverage), so the description adds minimal additional semantic value, only clarifying the pending state of requests.

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

Purpose5/5

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

The description clearly states the tool's action (approve or deny a pending join request), the target resource (supergroup or channel), and a critical constraint (basic groups not supported). This distinguishes it from sibling tools like kick-user or invite-to-group.

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 description mentions that admin with invite_users permission is required, which gives usage context, but it does not explicitly compare to alternatives or state when not to use this tool relative to sibling tools.

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

telegram-archive-chatA

Archive or unarchive a Telegram dialog (moves to/from the Archive folder)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
archiveYestrue to archive, false to unarchive

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate it's a write operation (readOnlyHint=false). The description adds context ('moves to/from the Archive folder') but does not disclose potential side effects like notification suppression or permission requirements.

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?

Single sentence of 15 words, front-loaded with action, no wasted words.

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 boolean toggle with fully described parameters, the description adequately explains the basic action. However, it lacks explanation of effects on chat visibility or unread state, which might be relevant.

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

Parameters3/5

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

Schema covers all parameters with descriptions (100% coverage). The description adds no additional parameter meaning beyond what's already in the schema.

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

Purpose5/5

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

The description clearly states the verb (archive/unarchive), resource (Telegram dialog), and effect (moves to/from Archive folder). It distinguishes from all sibling tools, none of which mention archive.

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 does not mention prerequisites (e.g., being a member of the chat) or scenarios where archiving is inappropriate.

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

telegram-ban-userA

Ban a user from a supergroup or channel (permanent until unbanned)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
userIdYesUser ID or username to ban

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already mark as write operation. Description adds permanence detail but omits required permissions, side effects (user removal from group), and whether it purges message history. openWorldHint true suggests unstated effects.

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?

Single sentence, 11 words, immediately conveys action and scope. No redundant or extraneous 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?

Simple tool with no output schema, but description could mention admin permissions requirement and that ban is only for supergroups/channels. Lacks mention of reversal (unban). Adequate but not thorough.

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

Parameters3/5

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

Schema covers both parameters with descriptions. Tool description does not add format details (e.g., username vs numeric ID), so no extra value beyond schema. Baseline 3 due to full schema coverage.

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?

Description clearly states verb 'ban', resource 'user', and context 'supergroup or channel' with permanence. Effectively distinguishes from sibling tools like 'kick' and 'unban'.

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?

Indicates permament ban but does not explicitly guide when to use versus alternatives like 'telegram-kick-user' or 'telegram-block-user'. No prerequisites or exclusion criteria provided.

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

telegram-block-userB

Block a Telegram user. Blocked users cannot send you messages

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesUser ID or username to block

TDQS

B3.2/5.0
Behavior3/5

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

Description adds the behavioral effect 'Blocked users cannot send you messages', which supplements annotations (readOnlyHint=false, openWorldHint=true). However, it does not mention reversibility via unblock, or any side effects beyond blocking messages.

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 two sentences with no unnecessary words. Could be slightly more informative without losing 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?

Tool is simple (one param, no output schema) and description covers the basic action. However, it lacks guidance on parameter format, user existence requirements, or how it interacts with other states (e.g., already blocked).

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?

Input schema provides 100% coverage with description 'User ID or username to block'. The description adds no extra meaning beyond that. Baseline 3 is appropriate.

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?

Description clearly states 'Block a Telegram user' with a specific verb and resource. It distinguishes from siblings like ban-user and kick-user through the word 'block' and the effect 'cannot send you messages', but does not explicitly differentiate.

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 telegram-ban-user or telegram-kick-user. The description only states the effect without context on prerequisites or exclusion scenarios.

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

telegram-clear-draftsA
Destructive

Delete saved message drafts. Pass chatId to clear the draft for a single chat. Without chatId, clears drafts in ALL chats โ€” requires confirmAllChats: true

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdNoChat ID or username. If provided, clears draft only for this chat
confirmAllChatsNoMust be true to wipe drafts across ALL chats when chatId is omitted

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate destructive action. The description adds behavioral context: two modes of operation and the safeguard of confirmAllChats. It does not contradict annotations.

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?

Two sentences, front-loaded with purpose, no extraneous words. Every sentence contributes essential information.

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

Completeness5/5

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

For a two-parameter tool with no output schema, the description covers all behaviors: single chat, all chats, and the confirmAllChats requirement. No 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?

Schema coverage is 100%, and the description adds value by clarifying that confirmAllChats is required when chatId is omitted, and that chatId accepts username as well.

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

Purpose5/5

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

The description clearly states 'Delete saved message drafts' with a specific verb and resource. It distinguishes between single-chat and all-chats usage, which differentiates it from siblings like telegram-save-draft.

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 explains when to use chatId for a single chat and when to omit it for all chats, explicitly noting that confirmAllChats must be true for bulk deletion. No explicit 'when not to use' but clear context.

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

telegram-clear-recent-emoji-statusesA

Clear your recently-used emoji status list (the 'recent' section in the emoji status picker).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true. The description adds context about the specific action and scope but does not disclose additional behavioral traits (e.g., side effects, permissions). With annotations present, the description is adequate.

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 sentence that efficiently communicates the tool's purpose without any extraneous words.

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

Completeness5/5

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

Given the tool has no parameters and no output schema, the description fully explains what the tool does. No additional information is 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?

There are zero parameters, and schema coverage is 100%. The description adds no parameter information, but none is needed. Baseline 4 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('clear') and the specific resource ('your recently-used emoji status list'). It distinguishes itself from sibling tools like 'set-emoji-status' by focusing on the 'recent' section.

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?

The description implies the use case (clearing recent emoji statuses) but does not explicitly provide when-to-use or when-not-to-use guidance. However, the context is clear enough for an agent to select this tool over others.

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

telegram-close-pollA

Close a poll permanently. This is a one-way operation โ€” closed polls cannot be reopened.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID of the poll to close

TDQS

A4.3/5.0
Behavior4/5

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

Discloses the irreversible nature of the operation. Annotations indicate non-read-only, and description adds the key behavioral fact that reopening is impossible.

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?

Two short, direct sentences with no unnecessary information. Every word adds value.

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

Completeness5/5

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

Given the simple operation (close poll) with only two parameters and no output schema, the description is fully complete. It covers purpose, irreversibility, and need for chat and message IDs.

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

Parameters3/5

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

Schema coverage is 100% and parameters are well-described in the schema. Description adds no additional detail beyond what schema provides.

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

Purpose5/5

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

The description uses specific verb 'Close' and resource 'poll', clearly stating the action and its permanent nature. It distinguishes from siblings like vote-poll and create-poll.

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?

Explicitly states it is a one-way operation and that closed polls cannot be reopened, providing clear guidance on when to use and not use. Does not explicitly name alternatives but contextually sufficient.

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

telegram-create-folderA

Create a new Telegram chat folder (filter). Returns the new folder ID. Pass type flags to auto-include entire categories, or list specific chats in includePeers. Emoticon must be a single emoji character.

ParametersJSON Schema
NameRequiredDescriptionDefault
botsNoInclude all bots
titleYesFolder name (max 12 chars)
groupsNoInclude all groups
contactsNoInclude all contacts
emoticonNoSingle emoji icon for the folder
broadcastsNoInclude all channels
excludeReadNoExclude read chats
nonContactsNoInclude all non-contacts
pinnedPeersNoChats to pin at top of this folder (max 5)
excludeMutedNoExclude muted chats
excludePeersNoChat IDs/usernames to explicitly exclude (max 100)
includePeersNoChat IDs/usernames to explicitly include (max 100)
excludeArchivedNoExclude archived chats

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate this is a write operation (readOnlyHint=false) with unknown output structure (openWorldHint=true). The description adds behavioral details: returns the new folder ID and constrains emoticon to a single emoji character. It does not cover all potential side effects, but given annotations, it provides sufficient additional 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?

The description is three sentences, each delivering essential information: primary action and return value, two usage modes, and a constraint. No unnecessary words or repetition. Highly efficient.

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?

Given the tool's complexity (13 parameters, no output schema), the description covers the core creation logic, two key parameter groups, and a notable constraint. It lacks guidance on parameter interaction (e.g., mixing flags and includePeers) but is otherwise adequate for a selective 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?

While the schema describes all 13 parameters individually, the description adds semantic grouping: 'type flags to auto-include entire categories' vs. 'list specific chats in includePeers'. It also adds the constraint that emoticon must be a single emoji character, which is not fully captured in the schema's maxLength=2 description.

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

Purpose5/5

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

The description clearly states the tool creates a new Telegram chat folder and returns its ID. It distinguishes from related sibling tools like telegram-get-chat-folders, telegram-edit-folder, telegram-delete-folder by focusing on creation and mentioning specific usage patterns (type flags vs. includePeers).

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?

The description provides guidance on two main usage patterns: using type flags for auto-including categories or listing specific chats in includePeers. It does not explicitly contrast with other folder tools or explain when to use this over editing, but the context of sibling tool names makes it reasonably clear.

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

telegram-create-groupB

Create a new Telegram group or supergroup

ParametersJSON Schema
NameRequiredDescriptionDefault
forumNoEnable topics (requires supergroup)
titleYesGroup name
usersYesUsernames or IDs to invite
supergroupNoCreate as supergroup (supports >200 members, admin features)
descriptionNoGroup description

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate write operation (readOnlyHint=false) and open world (openWorldHint=true). Description adds the fact that it can create either a group or supergroup based on the supergroup parameter, providing some behavioral context beyond annotations. However, it omits important traits like rate limits or what happens on duplicate attempts.

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?

Single sentence, no redundant words, effectively conveys the core action. Perfectly concise for the information provided.

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 tool with 5 parameters and no output schema, the description lacks essential context: no mention of return value (e.g., created group ID), no explanation of supergroup vs group differences, and no side effects. The agent would be underinformed for proper 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?

Input schema has 100% description coverage for all 5 parameters, so schema already documents each parameter's purpose. The description adds no extra meaning beyond the schema, resulting in baseline score.

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?

Description states 'Create a new Telegram group or supergroup' with a specific verb and resource, clearly distinguishing this tool from siblings like telegram-invite-to-group (adding to existing) and telegram-edit-group (modifying). The purpose 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 tool vs alternatives (e.g., when to choose group vs supergroup, or prerequisites like login). The description assumes basic knowledge, leaving the agent to infer usage context.

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

telegram-create-pollA

Create a poll in a Telegram chat (multiple choice or quiz mode)

ParametersJSON Schema
NameRequiredDescriptionDefault
quizNoQuiz mode (one correct answer)
chatIdYesChat ID or username
answersYesAnswer options (2-10)
questionYesPoll question
correctAnswerNoIndex of correct answer (0-based, required for quiz mode)
multipleChoiceNoAllow multiple answers

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate non-read-only (readOnlyHint=false) and open-world side effects (openWorldHint=true). The description adds that the poll can be multiple choice or quiz mode, which is useful context beyond annotations. No contradictions with annotations.

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, short sentence that immediately conveys the tool's purpose. It is concise and front-loaded, with no unnecessary words or redundancy.

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 has 6 parameters (3 required) and no output schema. The description is minimal and does not mention prerequisites (e.g., bot permissions), error handling, or what the tool returns. While the schema covers parameters, the lack of output schema means the agent has no information about the return value or confirmation of success.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 6 parameters. The description adds little beyond the schema, merely mentioning 'multiple choice or quiz mode' which is covered by the quiz and multipleChoice parameters. The description does not further clarify parameter usage or relationships.

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

Purpose5/5

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

The description clearly states 'Create a poll in a Telegram chat (multiple choice or quiz mode)', specifying the verb (create), resource (poll), and scope (in a Telegram chat) with mode differentiation. This distinguishes it from sibling tools like close-poll, vote-poll, and get-poll-results.

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 description implies when to use the tool (to create a poll) but does not provide explicit guidance on when not to use it or mention alternatives. For example, it doesn't suggest using vote-poll or get-poll-results for other poll-related actions. No when-not or alternative hints are given.

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

telegram-create-topicA

Create a new forum topic in a forum-enabled supergroup

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTopic title
chatIdYesChat ID or username of the forum supergroup
iconColorNoOptional icon color (one of 7322096, 16766590, 13338331, 9367192, 16749490, 16225862)
iconEmojiIdNoOptional custom emoji document ID for the icon (numeric string)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and openWorldHint=true, aligning with the write operation. The description adds the behavioral trait that it targets a forum-enabled supergroup, but no further details (e.g., failure behavior, 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?

The description is a single, well-structured sentence with no wasted words. It front-loads the action and context.

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 creation tool with no output schema, the description covers the essential purpose and prerequisites. However, it lacks information on error scenarios and what the result is, which would be helpful.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described adequately. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'create', the resource 'forum topic', and the context 'forum-enabled supergroup'. It distinguishes from siblings like telegram-create-group (creates a group) and telegram-delete-topic / telegram-edit-topic.

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 guidance on when to use this tool versus alternatives (e.g., telegram-create-group) or what prerequisites are needed beyond stating 'forum-enabled supergroup'. No exclusions or context are provided.

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

telegram-delete-fact-checkA
Destructive

Remove a fact-check annotation. Requires fact-checker privileges.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username (channel)
messageIdYesMessage ID whose fact-check to remove

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, so the description adds the privilege requirement. It does not elaborate on other behaviors like reversibility or side effects. With annotations present, the added value is moderate.

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 minimal: two sentences with no wasted words. All information is essential and front-loaded.

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 delete operation with two parameters and annotations covering destructive behavior, the description is sufficiently complete. It includes the crucial privilege requirement. Lacks info on return value, but output schema is absent and context is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, and the description adds no additional meaning beyond the schema. The two parameters are well-documented in the schema, so the description is adequate but not enhanced.

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

Purpose5/5

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

The description clearly states 'Remove a fact-check annotation' using a specific verb ('Remove') and resource ('fact-check annotation'). It distinguishes from sibling tools like telegram-edit-fact-check and telegram-get-fact-check.

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 description mentions a prerequisite ('Requires fact-checker privileges') but does not explicitly state when to use it vs alternatives or provide exclusion criteria. The usage context is implied by the name and privilege requirement.

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

telegram-delete-folderA

Delete a Telegram chat folder by its ID. Chats inside the folder are not deleted โ€” they remain in All Chats. System folders (0 = All Chats, 1 = Archive) cannot be deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFolder ID to delete (โ‰ฅ 2)

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses important behavioral traits beyond annotations: chats inside are not deleted and system folders cannot be deleted. Annotations indicate mutation (readOnlyHint=false) and potential side effects (openWorldHint=true), which align with the description. No contradictions.

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 two sentences: the first states the core action, the second provides crucial behavioral details and restrictions. It is concise, front-loaded, and every sentence adds value.

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

Completeness5/5

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

Given one parameter, no output schema, and annotations that indicate mutation, the description completely covers what the tool does, its side effects on chats, and its limitations. No additional information is needed.

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 covers the single parameter 'id' with a description 'Folder ID to delete (โ‰ฅ 2)'. The description does not add extra meaning beyond the schema, which already provides full coverage (100%). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (delete a Telegram chat folder by ID) and specifies what happens to chats inside (not deleted) and which folders cannot be deleted (system folders 0 and 1). It distinguishes from sibling tools like create-folder, edit-folder, etc.

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?

The description provides clear context for when to use the tool (delete a folder) and when not to (system folders). However, it does not explicitly mention alternatives, but the context is sufficient 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.

telegram-delete-messageB
Destructive

Delete messages in a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdsYesArray of message IDs to delete

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already set destructiveHint=true, so the description doesn't need to state it's destructive. However, it adds no additional behavioral context (e.g., irreversible, requires permissions, limits on batch size).

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?

Single sentence, no fluff, front-loaded. Could add more context without much length, but current is efficient.

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 2 required params, 100% schema coverage, and no output schema, the description is minimally complete. Lacks usage guidelines and behavioral details for a destructive action.

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

Parameters3/5

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

Schema covers both parameters with descriptions, and the tool description adds no extra semantic meaning. Parameter semantics are adequate but not enhanced beyond schema.

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

Purpose5/5

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

The description 'Delete messages in a Telegram chat' clearly states the action (delete), resource (messages), and scope (Telegram chat). It effectively distinguishes from sibling tools like send-message, edit-message, etc.

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 over alternatives, such as when to delete single vs. multiple messages, or prerequisites like being an admin. No mention of when not to use it.

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

telegram-delete-profile-photoA

Delete one or more profile photos by their photo IDs. Use telegram-get-profile-photo to obtain the current photo ID. Returns which IDs were deleted and which were not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
photoIdsYesArray of photo IDs (stringified long) to delete from your profile photo history

TDQS

A4.3/5.0
Behavior4/5

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

Description discloses that it returns which IDs were deleted and which were not found, providing useful behavioral insight. Annotations indicate readOnlyHint=false (mutation) and description aligns, no contradiction.

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?

Two concise sentences: first states the action, second guides on usage and return value. No wasted words.

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

Completeness5/5

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

For a simple one-parameter delete tool with no output schema, the description covers the purpose, input acquisition, and response behavior completely.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds context about obtaining photo IDs via another tool, but the schema already describes the parameter adequately.

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

Purpose5/5

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

The description explicitly states the action 'delete' and the resource 'profile photos by their photo IDs', clearly distinguishing it from sibling tools like telegram-get-profile-photo and telegram-set-profile-photo.

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?

Provides clear guidance to use telegram-get-profile-photo to obtain the needed photo IDs. While it doesn't explicitly state when not to use it, the context is straightforward for a delete operation.

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

telegram-delete-scheduledB
Destructive

Delete scheduled messages in a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdsYesArray of scheduled message IDs to delete (1-100)

TDQS

B3.1/5.0
Behavior2/5

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

The annotations already mark the tool as destructive (destructiveHint: true). The description adds no further behavioral context beyond that, such as whether deletion is permanent, if it requires specific permissions, or if there are 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.

Conciseness4/5

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

The description is a single concise sentence that efficiently conveys the purpose. However, it could include brief usage notes without losing 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?

For a destructive tool with no output schema, the description lacks details on what happens after deletion (e.g., success response, error cases). It is adequate for a read operation but minimal for a write/mutation tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema already provides (chatId and messageIds with their descriptions).

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

Purpose5/5

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

The description clearly states 'Delete scheduled messages in a Telegram chat', specifying the verb (Delete), resource (scheduled messages), and scope (Telegram chat). It distinguishes from siblings like 'telegram-delete-message' which deletes already sent messages, and 'telegram-send-scheduled'.

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 guidance on when to use this tool versus alternatives like 'telegram-delete-message', nor does it mention prerequisites (e.g., having scheduled messages) or conditions (e.g., cannot delete already deleted scheduled messages).

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

telegram-delete-storiesA
Destructive

Delete one or more of your own stories. This action is irreversible and requires confirm:true.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesStory IDs to delete (1โ€“100 per request)
chatIdNoPeer owning the storiesme
confirmYesPass true to confirm irreversible deletion

TDQS

A4.3/5.0
Behavior5/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds critical behavioral details: 'irreversible' and 'requires confirm:true'. These go beyond annotations, informing the agent of permanent consequences and the mandatory confirmation parameter, which the schema also requires.

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 extremely concise: two sentences that front-load the core action and immediately follow with the critical irreversible+confirm context. Every sentence earns its place with no redundant or verbose phrasing.

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

Completeness5/5

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

Given the low complexity (3 simple params, no output schema, clear annotations), the description covers all key aspects: what it does (delete own stories), behavioral notes (irreversible), and a required confirm flag. It is complete enough for an agent to understand and invoke 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?

Schema coverage is 100% with clear descriptions for all three parameters (ids, chatId, confirm). The description only echoes the confirm requirement without adding new semantic meaning. Baseline is 3 because schema already provides full parameter documentation.

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?

Description clearly states 'Delete one or more of your own stories' using a specific verb and resource, distinguishing it from siblings like telegram-delete-message (deletes messages) and telegram-send-story (sends stories). The phrase 'your own stories' clarifies ownership, leaving no ambiguity.

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 description does not explicitly compare this tool to alternatives or provide when-to-use guidance. It implies usage for deleting own stories but lacks statements like 'use instead of telegram-delete-message for stories' or preconditions. The irreversibility warning is helpful but not comparative.

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

telegram-delete-topicA
Destructive

Delete a forum topic and all its message history

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username of the forum supergroup
topicIdYesTopic ID to delete

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds the detail that it deletes 'all its message history', confirming the destructive scope. This adds value beyond annotations, though it doesn't mention irreversibility or side effects like removing associated data.

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 concise sentence with no wasted words. It immediately communicates the core functionality.

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 the tool's destructive nature, two parameters, and no output schema, the description covers the essential action and scope but lacks guidance on prerequisites, return values, or error conditions. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%โ€”both parameters (chatId, topicId) have descriptions that explain their purpose. The tool description does not add any additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Delete' and the resource 'forum topic', and specifies 'all its message history' to clarify scope. This distinguishes it from siblings like telegram-delete-message (deletes individual messages) and telegram-edit-topic (edits topics).

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 does not provide any when-to-use guidance, prerequisites, or alternatives. It lacks explicit context such as requiring the chat to be a forum or the topic to exist, and does not mention when not to use this tool.

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

telegram-download-mediaA
Read-only

Download media from a Telegram message to a local file

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID containing media
downloadPathYesAbsolute path to save file

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe read operation. The description adds 'download' which implies reading but also local file writing, which is consistent. However, it does not disclose potential side effects like overwriting files or required permissions, so it adds limited value beyond annotations.

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, clear sentence that front-loads the action. No unnecessary words, perfectly concise for a straightforward tool.

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 the tool's low complexity (3 simple params, no output schema, annotations provided), the description is minimally complete. However, it omits details like error handling for missing media, file type, or size limits, which could be important for agent usage.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters having clear descriptions (chatId, messageId, downloadPath). The tool description does not add additional meaning beyond these schema descriptions, hence the baseline score of 3.

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

Purpose5/5

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

The description clearly states the verb 'download', resource 'media from a Telegram message', and outcome 'to a local file'. It distinguishes this tool from siblings like sending messages or searching, as it's the only tool focused on downloading 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?

The description provides no guidance on when to use this tool vs alternatives, such as when a message contains text vs media, or prerequisites like having access to the chat and message. It implicitly assumes the user knows when to download, but no explicit usage context is given.

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

telegram-edit-fact-checkA

Add or update a fact-check annotation. Requires fact-checker privileges (limited to independent verifiers in supported countries).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesFact-check annotation text (1-1024 chars)
chatIdYesChat ID or username (channel)
messageIdYesMessage ID to annotate
parseModeNoText format (currently ignored โ€” plain text only)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, so description adds little beyond privilege note. No extra behavioral details like idempotency or side effects.

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?

Two sentences, front-loaded, no unnecessary words. Efficient and clear.

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, description lacks return value details. Could explain behavior for 'add' vs 'update' (e.g., how it decides which). Privilege context is helpful but incomplete for a modification tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description does not add additional meaning to parameters beyond what schema provides.

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?

Clearly states 'Add or update a fact-check annotation' with verb and resource. Distinguishes from sibling tools like 'telegram-delete-fact-check' and 'telegram-get-fact-check'.

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?

Mentions privilege requirements and geographic limitation, providing clear context for when to use. Does not explicitly name alternative tools but siblings are self-evident.

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

telegram-edit-folderA

Edit an existing Telegram chat folder by its ID (from telegram-get-chat-folders). Only pass fields you want to change โ€” omitted fields keep their current values.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFolder ID (โ‰ฅ 2; 0 = All Chats, 1 = Archive are system folders)
botsNo
titleNoNew folder name (max 12 chars)
groupsNo
contactsNo
emoticonNoNew emoji icon
broadcastsNo
excludeReadNo
nonContactsNo
pinnedPeersNoReplace pinnedPeers list entirely
excludeMutedNo
excludePeersNoReplace excludePeers list entirely
includePeersNoReplace includePeers list entirely
excludeArchivedNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and openWorldHint=true, so the description mainly adds the partial-update behavior. No further side effects, permissions, or return info are disclosed, which is acceptable given 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.

Conciseness5/5

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

Single sentence with a clarifying fragment, perfectly concise and front-loaded with the key action. Every word adds value.

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?

Despite moderate complexity (14 parameters), the description gives minimal contextual information. No details about effects, errors, or behavior after editing. Without an output schema, more context is warranted.

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?

Schema description coverage is only 43%, and the tool description adds no additional parameter-level meaning beyond 'only pass fields to change'. For a mutation with many parameters, more guidance would help.

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

Purpose5/5

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

The description clearly states the action ('Edit') and the resource ('existing Telegram chat folder'), and references how to obtain the ID ('from telegram-get-chat-folders'), distinguishing it from related tools like create, delete, and reorder.

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?

Explicitly says to pass only fields to change and that omitted fields retain values, which guides usage. However, it does not state when not to use (e.g., creation) or explicitly compare to alternatives.

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

telegram-edit-groupA

Edit a group's title, description, or photo

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew group title
chatIdYesChat ID or username
photoPathNoAbsolute path to new group photo image file
descriptionNoNew group description (supergroups only)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, which are consistent with a mutation tool. The description does not contradict these. However, it adds minimal behavioral context beyond what annotations and schema provide, such as potential permission requirements or side effects. The description is adequate but not rich.

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 sentence that efficiently conveys the tool's purpose. It is front-loaded and contains no unnecessary words.

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 no output schema, the description does not explain return values or success/failure behavior. It covers the basic purpose but lacks completeness for a mutation tool that might have side effects or require permissions. It is minimally adequate.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a description. The tool description lists the editable items (title, description, photo) which map to the parameters, but adds no additional meaning or constraints beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Edit') and the resource ('a group'), specifying the editable attributes (title, description, or photo). This distinguishes it from sibling tools such as telegram-create-group and telegram-edit-message.

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 does not provide guidance on when to use this tool versus alternatives like telegram-edit-message or telegram-edit-topic. It mentions 'supergroups only' for description in the schema, but this is a constraint, not comparative guidance. No explicit when-to-use or when-not-to-use information is present.

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

telegram-edit-messageB

Edit a previously sent message in Telegram

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNew message text
chatIdYesChat ID or username
messageIdYesID of the message to edit

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, meaning the tool mutates data. The description does not add any behavioral details beyond the mutation implication, such as whether the edit is immediate, any restrictions on editability, or side effects.

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 sentence that immediately conveys the tool's purpose with no unnecessary words. It is optimally concise and front-loaded.

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 exists, but the description does not explain what the tool returns (e.g., the edited message object). It also lacks information about limitations (e.g., time limits on editing, cannot edit other users' messages). For a mutation tool with zero output schema, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100% (all parameters have descriptions). The tool description does not add any extra meaning beyond the schema; it simply restates the verb. Baseline score of 3 is appropriate when schema fully documents parameters.

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

Purpose5/5

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

The description explicitly states the action 'Edit' and the resource 'previously sent message in Telegram', making it clear what the tool does. It distinguishes from sibling tools like send-message (sending new) and delete-message (deleting), as editing is a distinct operation.

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 provided on when to use this tool versus alternatives such as telegram-delete-message or telegram-send-message. There is no mention of prerequisites, limitations, or context-specific usage.

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

telegram-edit-storyA

Edit an existing story: replace media, update caption ('' clears it), or change privacy rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOverride auto-detected media type for new file
chatIdNoPeer owning the storyme
captionNoNew caption; pass '' to clear
privacyNoNew privacy setting
storyIdYesID of the story to edit
filePathNoAbsolute path to replacement media
parseModeNoCaption parse mode
allowUserIdsNoRequired when privacy='selected'
disallowUserIdsNoBlocked user IDs (ignored for 'selected')

TDQS

A3.7/5.0
Behavior2/5

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

The description adds minimal behavioral context beyond annotations. Annotations already indicate a write operation (readOnlyHint=false) with external side effects (openWorldHint=true). The description does not disclose potential side effects (e.g., notifications, permanent changes, media constraints) that would aid the agent.

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 sentence listing three actions, front-loaded with the core purpose. It is concise, readable, and avoids unnecessary words. The parenthetical clarifies caption clearing behavior efficiently.

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 the tool's complexity (9 parameters, no output schema, annotations present), the description covers high-level capabilities but lacks details on conditional requirements (e.g., allowUserIds needed when privacy='selected') and parameter interactions. It is adequate for basic understanding but not fully complete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline 3. The description adds value by grouping operations: 'replace media' (implicitly references filePath and type), 'update caption ('' clears it)' (explicitly explains special behavior), 'change privacy rules' (references privacy). This contextual grouping helps the agent understand parameter interactions.

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

Purpose5/5

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

The description clearly states the action ('Edit'), the resource ('an existing story'), and specific operations ('replace media, update caption, or change privacy rules'). It distinguishes from siblings like telegram-send-story (create) and telegram-delete-stories (delete).

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 description does not explicitly state when to use this tool vs alternatives (e.g., telegram-send-story for new stories, telegram-delete-stories for removal). It lacks prerequisites or exclusion criteria, though the tool's purpose is self-evident.

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

telegram-edit-topicB

Edit a forum topic โ€” rename, change icon emoji, open/close, or show/hide

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew topic title
chatIdYesChat ID or username of the forum supergroup
closedNoClose (true) or reopen (false) the topic
hiddenNoHide (true) or show (false) the General topic
topicIdYesTopic ID (get from telegram-list-topics)
iconEmojiIdNoNew custom emoji document ID for the icon (numeric string)

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (write operation) and openWorldHint=true (potential side effects). The description mentions editable fields but does not disclose behavioral details like required permissions, rate limits, or impact on topic history. It adds minimal behavioral context beyond the annotations.

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 sentence that front-loads the verb and resource, then lists all possible modifications. Every word is purposeful, no fluff. It is appropriately sized for the tool's complexity.

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 6 parameters (2 required), no output schema, and openWorldHint, the description adequately lists the editable fields but omits contextual details like required permissions (e.g., must be admin), possible errors, or return behavior. It provides minimum viable completeness but leaves gaps for safe 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?

Schema coverage is 100% with each parameter having a description. The tool description mildly augments by listing high-level actions (rename, change icon, etc.), but does not add syntax or format details beyond what the schema provides. Baseline 3 is appropriate since the schema already does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb 'Edit' and resource 'forum topic', and enumerates specific actions: rename, change icon emoji, open/close, show/hide. It effectively distinguishes from sibling tools like 'create-topic' and 'delete-topic' by specifying the edit operation.

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 guidance on when to use this tool versus alternatives (e.g., edit-message, toggle-forum-mode). It does not mention prerequisites such as admin permissions or that the chat must be a forum supergroup. Without explicit usage conditions, the agent may misuse the tool.

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

telegram-export-story-linkA
Read-only

Get a shareable t.me/โ€ฆ URL for a public story.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesPeer who posted the story
storyIdYesStory ID to get the link for

TDQS

A4.3/5.0
Behavior4/5

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

Annotations (readOnlyHint, openWorldHint) already convey read-only nature; description adds that it returns a URL for a public story, consistent with annotations.

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?

Single sentence with no filler, efficiently communicates the tool's purpose.

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

Completeness5/5

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

Given low complexity (2 params, no output schema) and good annotations, the description is complete and sufficient for agent understanding.

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

Parameters4/5

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

Schema provides 100% coverage with descriptions; description adds important context that the story must be 'public', which is not in the schema.

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

Purpose5/5

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

The description uses a specific verb 'Get' and clearly identifies the resource as a 'shareable t.me/โ€ฆ URL for a public story', distinguishing it from sibling tools like telegram-get-story-views.

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?

No explicit when-to-use or when-not-to-use guidance is provided; the description only states the tool's function without discussing alternatives or prerequisites.

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

telegram-forward-messageB

Forward messages between Telegram chats

ParametersJSON Schema
NameRequiredDescriptionDefault
toChatIdYesDestination chat ID or username
fromChatIdYesSource chat ID or username
messageIdsYesArray of message IDs to forward

TDQS

B3.2/5.0
Behavior2/5

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

The description only states the basic function. It does not disclose behavioral traits such as whether the original message is preserved, if sender info is kept, or permission requirements. Annotations are minimal (readOnlyHint=false, openWorldHint=true) and description does not add context beyond annotations.

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?

Single sentence, no wasted words. Efficiently conveys the core functionality.

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 complexity of message forwarding (e.g., how forwarding works in Telegram, whether it's a copy or move, limitations), the description is insufficient. No output schema exists to explain return values. The description lacks essential behavioral details.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the three parameters (fromChatId, toChatId, messageIds). The description adds no additional meaning beyond a general statement of purpose. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Forward messages between Telegram chats' clearly states the action (forward) and the resource (messages between chats), distinguishing it from siblings like send-message or edit-message.

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 send-message or when not to use it (e.g., limitations on forwarding to specific chat types). No exclusion criteria or context provided.

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

telegram-get-admin-logA
Read-only

Get the admin action log (recent event history) of a supergroup or channel. Includes bans, edits, pins, and role changes

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoOptional text filter for events
limitNoNumber of events to return (1-100)
chatIdYesChat ID or username (supergroup or channel)

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint and openWorldHint. The description adds beyond by specifying the kinds of events included (bans, edits, pins, role changes). It does not contradict annotations.

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?

Two concise sentences: first states the purpose with verb and resource, second provides examples. No fluff, appropriately sized.

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?

The description covers the core functionality and examples of returned data. However, with no output schema, a brief mention of return format (e.g., list of events with timestamps) would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all three parameters. The description does not add additional meaning to the parameters beyond the schema, so it meets the baseline.

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

Purpose5/5

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

The description clearly states the tool retrieves the admin action log (recent event history) of a supergroup or channel, and lists specific event types (bans, edits, pins, role changes). This distinguishes it from sibling tools like telegram-get-chat-info or telegram-get-chat-members.

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?

No explicit guidance on when to use this tool versus alternatives. The name and description imply it's for auditing admin events, but it doesn't mention when not to use or compare to other log tools.

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

telegram-get-all-storiesA
Read-only

Fetch active stories from contacts/channels the user follows. Pagination via 'next' + 'state' โ€” pass the returned state back on the next call with next:true to load more. Use hidden:true to read stories from muted/archived peers. Returns compact story metadata (id, date, expireDate, caption, mediaType, counters) without raw media blobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nextNoLoad the next page (use with state from a prior response)
stateNoPagination state token returned by a previous call
hiddenNoFetch stories from hidden/archived peers instead of the main feed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint and openWorldHint as true, and the description adds that non-raw media data is returned. It also details pagination behavior and the hidden parameter, which goes beyond annotations without contradicting them.

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 paragraph that efficiently covers purpose, pagination, hidden option, and output summary. Every sentence adds value and it is appropriately front-loaded.

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?

Despite no output schema, the description specifies the returned metadata fields (id, date, expireDate, caption, mediaType, counters), which is sufficient for an agent to understand the tool's output. It covers the essential aspects needed for correct usage.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions. The description adds valuable context for 'next' and 'state' (e.g., 'pass the returned state back') and explains the effect of 'hidden', enhancing understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the action: 'Fetch active stories from contacts/channels the user follows.' This is a specific verb-resource pair that distinguishes it from sibling tools like telegram-get-peer-stories (stories for specific peers) and telegram-get-stories-by-id (by ID).

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?

The description explains pagination using 'next' and 'state', and when to use 'hidden:true' for muted/archived peers. It provides clear guidance on how to use the tool but does not explicitly cover when not to use it or contrast with alternatives, though the context is adequate.

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

telegram-get-boosts-listA
Read-only

List the boosts applied to a channel/supergroup (premium.GetBoostsList). Returns paginated boost entries with id, userId (or undefined for anonymous gift boosts), date, expires, flags (gift, giveaway, unclaimed), optional giveawayMsgId, usedGiftSlug, multiplier, and stars. Requires channel admin permissions. Supports pagination via nextOffset and an optional gifts filter to show only gift boosts. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatYesChannel or supergroup to query โ€” id, @username, or display name fragment
giftsNoIf true, return only gift boosts
limitNoMax boosts to return per page (default 50, max 100)
offsetNoPagination cursor returned as nextOffset from the previous call

TDQS

A3.8/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint, openWorldHint), the description adds details: 'Read-only', field structure with optional fields (e.g., userId undefined for anonymous), and pagination. No contradiction with annotations.

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 concise (~80 words) and front-loads the main action. It could be more structured (e.g., bullet points) but remains efficient and readable.

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

Completeness5/5

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

With no output schema, the description enumerates returned fields, permissions, pagination, and filter. It covers prerequisites, options, and read-only nature, making it fully informative for an agent.

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 has 100% coverage with clear descriptions. The description reinforces pagination and gift filter but adds minimal new semantic meaning beyond 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 clearly states the tool lists boosts applied to a channel/supergroup, with specific verbs and resource. It provides field details but does not explicitly differentiate from the sibling tool 'telegram-get-boosts-status', which likely returns boost status.

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 description mentions requiring channel admin permissions and supports pagination and gift filtering, indicating when to use it. However, it does not explicitly state when not to use it or provide alternatives like 'telegram-get-boosts-status'.

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

telegram-get-boosts-statusA
Read-only

Fetch the boost status of a channel/supergroup (premium.GetBoostsStatus). Returns current boost level, total boosts, progress to next level (currentLevelBoosts/nextLevelBoosts), giftBoosts, premiumAudience ratio, public boostUrl, and whether the current user is boosting (myBoost + myBoostSlots). Also includes any prepaidGiveaways attached to the chat. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatYesChannel or supergroup to query โ€” id, @username, or display name fragment

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark as read-only and open-world; description adds detailed behavioral context (what fields are returned, underlying API method). Does not contradict annotations. No mention of rate limits or side effects, but appropriate for a read-only 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?

Very concise: front-loaded with purpose, then enumerates return fields in two sentences. No redundancy. Every sentence adds value.

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

Completeness5/5

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

For a simple read-only query tool with one parameter and comprehensive schema, the description fully explains what the tool does, what it returns, and its read-only nature. No gaps given available structured fields.

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

Parameters3/5

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

Schema provides 100% description coverage for the single 'chat' parameter, explaining accepted formats. Description does not add additional parameter meaning beyond the schema.

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?

Clearly states it fetches boost status of a channel/supergroup and lists returned fields. Distinguishes from siblings by specifically mentioning 'premium.GetBoostsStatus' and returns specific boost metrics, unlike get-my-boosts or get-boosts-list.

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?

Implies use for checking boost stats of a chat, but does not explicitly explain when to choose this over related tools like get-my-boosts (which retrieves user's own boosts) or get-boosts-list (lists boosters). No exclusion criteria provided.

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

telegram-get-broadcast-statsA
Read-only

Get broadcast channel statistics: followers, views/shares/reactions per post & story, notification percent, recent post interactions. Broadcast channels only (use telegram-get-megagroup-stats for supergroups). Admin rights required; some channels may require Telegram Premium to expose stats

ParametersJSON Schema
NameRequiredDescriptionDefault
darkNoPrefer dark-theme palette when Telegram renders graphs
chatIdYesBroadcast channel ID or username
includeGraphsNoInclude raw graph data for each series (growth, followers, interactions, etc.). Default false โ€” returns only aggregate numbers + metadata

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true, which the description does not contradict. The description adds behavioral context about required permissions (admin rights, Premium). It does not fully describe failure cases or data freshness, but it is transparent about key requirements.

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?

Two sentences, no fluff. The first sentence states the core function and data, the second provides constraints and alternatives. Every word earns its place.

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?

Given no output schema, the description lists the types of data returned (followers, views, etc.), which is helpful. It hints at includeGraphs for raw data. It could be more complete by describing the output structure, but it is adequate for a stats tool with sibling differentiation.

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

Parameters3/5

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

Schema coverage is 100% with decent parameter descriptions. The description adds context about includeGraphs returning raw graph data and chatId being for broadcast channels, but this is marginal beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it gets broadcast channel statistics and lists specific metrics (followers, views, shares, reactions). It distinguishes itself from the sibling tool 'telegram-get-megagroup-stats' for supergroups, making the purpose unambiguous.

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

Usage Guidelines5/5

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

It explicitly says when to use (broadcast channels only) and when not to (supergroups should use telegram-get-megagroup-stats). It also notes admin rights and potential Premium requirement, providing clear usage context.

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

telegram-get-channel-updatesA
Read-only

Fetch new messages and updates for a single channel/supergroup since a known per-channel pts cursor. Separate from the global cursor used by telegram-get-updates. Returns compact newMessages[], otherUpdates[], and new {pts, isFinal, timeout?}. If the channel gap is too long, Telegram returns a dialog snapshot โ€” this tool forwards it and hints to resync via telegram-read-messages. Cursor is stateless โ€” the agent stores pts.

ParametersJSON Schema
NameRequiredDescriptionDefault
ptsYesLast known per-channel pts
forceNoForce request updates even if the client hasn't processed previous ones (rarely needed)
limitNoMax updates per batch (default 100)
chatIdYesChannel or supergroup ID or username

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true. The description adds behavioral details beyond annotations, such as what happens on large gaps (returns a dialog snapshot) and the stateless nature of the cursor. It does not contradict annotations.

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 dense but each sentence serves a purpose. It front-loads the main action, then explains cursor distinction, gap handling, and statelessness. Some redundancy exists (e.g., 'per-channel' repeated), but it remains efficient. A 5 would require even tighter wording, but it's well-structured.

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

Completeness5/5

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

Given no output schema, the description adequately describes return values: 'compact newMessages[], otherUpdates[], and new {pts, isFinal, timeout?}'. It also covers edge cases (large gap), and since schema coverage is 100%, all parameter meanings are clear. It is complete enough for an agent to use 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?

Schema coverage is 100%, so baseline 3. The description adds minimal extra meaning beyond the schema: it confirms 'chatId' is channel/supergroup ID or username, 'pts' is per-channel, 'limit' has default 100, 'force' is rarely needed. Overall, the schema already explains parameters well, so description adds marginal value.

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

Purpose5/5

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

The description clearly states 'Fetch new messages and updates for a single channel/supergroup since a known per-channel pts cursor.' It uses a specific verb ('Fetch'), specifies the resource ('new messages and updates'), and distinguishes itself from the sibling 'telegram-get-updates' which uses a global cursor.

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

Usage Guidelines5/5

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

The description explicitly contrasts this tool with 'telegram-get-updates' (global cursor vs. per-channel). It also instructs on handling large gaps: 'hints to resync via telegram-read-messages.' Additionally, it notes the stateless cursor and that the agent stores pts, providing clear usage guidelines.

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

telegram-get-chat-foldersA
Read-only

Get list of your Telegram chat folders (filters) with their names and chat counts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that the tool returns names and chat counts, providing more specific return value context beyond the annotations.

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, and concise sentence with no extraneous informationโ€”every word adds value.

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 list retrieval with no parameters and no output schema, the description adequately specifies what is returned (names and chat counts). Some details like pagination or limits could improve completeness, but the current level is sufficient.

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?

There are no parameters (0 params, 100% schema coverage), so the description does not need to add parameter information; baseline is 4.

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

Purpose5/5

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

The description clearly states the tool retrieves a list of Telegram chat folders (filters) including their names and chat counts, distinguishing it from sibling tools that create, delete, edit, or reorder folders.

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?

No explicit guidance on when to use this tool versus alternatives like get-suggested-folders or other folder manipulation tools; usage is implied by the tool name and description.

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

telegram-get-chat-infoA
Read-only

Get detailed info about a Telegram chat including name, type, members, description, and forum status

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description aligning with 'Get' is consistent but adds no new behavioral context. It does not disclose potential errors, rate limits, or authentication requirements.

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?

Single sentence, directly states the tool's purpose and key information returned. No extraneous words, clearly front-loaded.

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 read tool with one param and annotations providing safety info, the description covers the main outputs. However, without an output schema, listing a few fields is helpful but leaves uncertainty about the full response structure.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter chatId, with a clear description ('Chat ID or username'). The tool description does not add additional meaning or format details beyond the schema.

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

Purpose5/5

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

The description clearly identifies the action ('Get') and the resource ('detailed info about a Telegram chat'), and lists specific fields (name, type, members, description, forum status), which distinguishes it from sibling tools like get-chat-members or get-profile.

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?

No explicit guidance is provided on when to use this tool versus alternatives. The description implies it is for general chat info, but it does not mention when not to use it or reference other tools for more specific data (e.g., get-chat-members for member details).

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

telegram-get-chat-membersC
Read-only

Get members of a Telegram group or channel

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of members to return
chatIdYesChat ID or username

TDQS

C2.9/5.0
Behavior2/5

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

Annotations (readOnlyHint, openWorldHint) indicate safety and possible incompleteness. The description adds no behavioral context beyond annotations, missing details like rate limits, pagination, or performance for large groups.

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?

Single sentence, concise and to the point. No unnecessary information, though a bit terse.

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 read tool with no output schema, the description is minimal. Missing details on return structure, pagination, and any side effects. Annotations partially compensate but leave gaps.

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

Parameters3/5

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

Schema covers 100% of parameters with clear descriptions. The tool description adds no extra meaning beyond what's already in the schema, so baseline score applies.

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?

Describes the tool as getting members of a Telegram group or channel, clearly specifying the verb and resource. Among siblings, it is distinct from other get-tools like get-chat-info. However, it lacks detail on scope (e.g., all members? paginated?).

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 (e.g., get-chat-info for member count). No explicit when-not-to-use or context prerequisites.

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

telegram-get-contact-requestsA
Read-only

Get incoming messages from non-contacts (contact requests). Shows who messaged you without being in your contacts, with message preview

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of contact requests to return

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that it shows message previews, but doesn't contradict annotations. It provides minor extra context beyond annotations.

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?

Two concise sentences front-load the purpose and function. No wasted words, perfectly sized for the complexity.

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 single-parameter read tool with good annotations and schema coverage, the description is adequate. It explains what is returned (messages from non-contacts with preview). Lacks details on pagination or empty results, but sufficient.

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

Parameters3/5

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

Schema has 100% coverage for the 'limit' parameter with a description. The tool description does not add any additional parameter-specific information, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves incoming messages from non-contacts (contact requests) and previews them. It uses specific verb 'get' and resource 'contact requests', distinguishing it from sibling tools like telegram-get-updates.

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?

While no explicit when-to-use or when-not-to-use is stated, the purpose is specific enough that an agent can infer this is for viewing messages from non-contacts. No alternatives are named, but the context is clear.

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

telegram-get-contactsA
Read-only

Get your Telegram contacts list with phone numbers

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of contacts to return

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and openWorldHint. The description adds that the output includes phone numbers, but does not disclose other behaviors like pagination, data format, or authentication requirements.

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 sentence with no filler words. It is concise and front-loaded with the essential 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?

The tool is simple with one optional parameter and no output schema. The description states the core purpose but lacks details about the output structure, prerequisites, or full behavior, leaving some gaps.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter. The description does not add any additional meaning beyond what the schema already provides, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the action (Get), the resource (Telegram contacts list), and includes a specific detail (with phone numbers). It distinguishes this tool from siblings as the only one for retrieving 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?

No usage guidelines are provided. The description does not indicate when to use this tool over alternatives (e.g., telegram-get-profile) or what prerequisites exist (e.g., must be logged in).

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

telegram-get-discussion-messageA
Read-only

For a channel post with comments enabled, returns the linked discussion-group info: discussionGroupId, discussionMsgId, unreadCount, readInboxMaxId, readOutboxMaxId, topMessage. Use discussionGroupId + discussionMsgId with telegram-send-message (replyTo=discussionMsgId) to post a comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChannel ID or @username that contains the post
messageIdYesID of the channel post to get discussion info for

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, and description does not contradict. Adds value by listing return fields (discussionGroupId, discussionMsgId, etc.) and hints at non-destructive workflow. No additional behavioral gaps.

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?

Two concise sentences. First sentence efficiently lists returned fields. Second sentence adds actionable usage guidance. No unnecessary words; front-loaded with essential information.

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

Completeness5/5

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

Given no output schema, the description compensates by listing all return fields. Also explains the workflow and connection to other tools. Parameter documentation is complete. Sufficient for an agent to use 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?

Schema descriptions already clearly define chatId and messageId with 100% coverage. Description reinforces the purpose of parameters but does not add new semantic meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns discussion group info for a channel post with comments enabled, listing specific fields. It distinguishes from siblings by specifying the return data structure and linking to telegram-send-message for workflow.

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?

Provides explicit usage context: for channel posts with comments enabled. Includes a use case example (using returned IDs with telegram-send-message). Does not explicitly mention when not to use, but gives sufficient guidance.

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

telegram-get-draftsA
Read-only

Get all saved message drafts across chats

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds 'across chats' scope detail but does not contradict annotations. Behavioral traits are covered but not significantly expanded.

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?

Single, clear sentence with no extraneous words. Every word earns its place.

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?

Tool is simple with no parameters and no output schema. Description provides purpose and scope adequately. No additional details like pagination or format are necessary for this straightforward retrieval.

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?

No parameters exist; schema coverage is 100%. With 0 parameters, baseline is 4. Description adds no parameter info, which is appropriate since there are none.

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

Purpose5/5

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

The description clearly states the tool retrieves all saved message drafts across chats, using a specific verb ('Get') and resource ('saved message drafts'). It distinguishes from siblings like telegram-save-draft and telegram-clear-drafts.

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 description implies usage (when you need to retrieve drafts) but does not explicitly state when to use it or provide alternatives or conditions. No guidance on when not to use.

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

telegram-get-fact-checkA
Read-only

Get fact-check annotations on channel messages. Fact-checks are added by independent fact-checkers in supported countries. Most messages will show no fact-check.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username (channel)
messageIdsYesMessage IDs to get fact-checks for (1-100)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context: fact-checks are from independent fact-checkers in supported countries, and typical results may be empty. This enriches transparency beyond annotations without contradiction.

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?

Two concise sentences with no wasted words. The first sentence states the purpose, the second provides context on source and typical results, all essential 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?

While the description sets expectations for empty results and source, it lacks details on the output format or structure. With no output schema, the description could usefully describe what a fact-check annotation contains (e.g., text, link, rating). This gap lowers completeness.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters (chatId, messageIds) fully described in the schema. The description adds no additional semantic detail about parameters, remaining at the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the tool retrieves fact-check annotations on channel messages, specifying the resource (fact-check annotations) and action (get). It distinguishes from sibling tools like telegram-delete-fact-check and telegram-edit-fact-check by focusing on reading.

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 description implies usage when fact-checks are needed but does not explicitly state when to use alternatives or provide exclusion criteria. It sets expectations by noting most messages lack fact-checks but offers no direct comparison to other tools.

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

telegram-get-global-privacy-settingsA
Read-only

Get your account-level global privacy settings: whether new non-contacts are auto-archived/muted, whether archived chats are kept unmuted, whether read receipts are hidden, and whether non-contacts must have Premium to message you.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description adds specific details about what settings are retrieved (auto-archived/muted, keep unmuted, hide read receipts, non-contacts need Premium) beyond the annotations (readOnlyHint, openWorldHint). No contradiction with annotations.

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?

Single sentence that efficiently conveys all necessary information without redundancy or wasted words.

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

Completeness5/5

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

For a tool with no parameters and no output schema, the description sufficiently explains what the tool returns by listing the four specific privacy settings. No 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?

No parameters exist, so schema coverage is 100%. The description does not need to add parameter info; it is acceptable at baseline 4 for zero-parameter tools.

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?

Description clearly states 'Get your account-level global privacy settings' with a specific verb and resource, and lists the exact settings retrieved. This distinguishes it from sibling tools like the setter.

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 description implies usage when one wants to check current privacy settings, but does not explicitly state when to use this tool versus alternatives like telegram-set-global-privacy-settings. No explicit guidance on exclusions.

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

telegram-get-groups-for-discussionA
Read-only

List groups that can be linked as a discussion group to a channel you admin. Helper for channel admins setting up comment threads.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds behavioral context by specifying that the tool is a helper for setting up comment threads, implying it lists available groups. No contradictions with annotations.

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?

Two sentences, no wasted words. First sentence states function, second adds context. Perfectly concise and front-loaded.

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?

Given the tool's simplicity (no params, no output schema, clear annotations), the description is adequate. It covers purpose and target user, though it could briefly note what the returned data looks like.

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 no parameters (0 params), so baseline is 4. The description correctly doesn't mention parameters, as there are none.

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

Purpose5/5

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

The description uses a specific verb ('List') and identifies the exact resource ('groups that can be linked as a discussion group to a channel you admin'). It distinguishes from sibling tools like telegram-get-chat-info by focusing on discussion group candidates for channel admins.

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?

The description clearly states the target user ('channel admins') and the use case ('setting up comment threads'). While it doesn't explicitly exclude alternatives, the context is sufficient to guide appropriate use.

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

telegram-get-installed-stickersA
Read-only

List all sticker sets installed by the user. Returns pack names and short names for use with other sticker tools

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds that it returns pack names and short names, which is helpful, but does not disclose any additional behavioral traits (e.g., whether archived sets are included, auth requirements, or data freshness).

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?

Description is concise with two short sentences: first states action, second states return value and purpose. No unnecessary words, front-loaded with key information.

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 list tool with no output schema and no parameters, the description adequately states what it returns (pack names and short names) and the intended follow-up use. Could mention if there are any limitations (e.g., pagination) but overall complete for its 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?

Tool has zero parameters and schema coverage is 100%, so description does not need to provide parameter details. Per guidelines, baseline 4 for zero-param tools.

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?

Description clearly states it lists all sticker sets installed by the user, with specific verbs and resource. Among sibling tools, it is distinct as a list-all-installed tool, not to be confused with get-sticker-set (specific set) or get-recent-stickers.

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?

Description implies usage by stating 'for use with other sticker tools', but does not explicitly say when to use vs alternatives like get-sticker-set or search-sticker-sets. No when-not-to-use guidance provided.

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

telegram-get-megagroup-statsA
Read-only

Get supergroup statistics: members, messages, viewers, posters (current vs previous period), top posters/admins/inviters. Supergroups only (use telegram-get-broadcast-stats for broadcast channels). Admin rights required. Telegram rate-limits this endpoint to roughly 1 request per 30 minutes per channel โ€” expect FLOOD_WAIT on rapid repeat calls

ParametersJSON Schema
NameRequiredDescriptionDefault
darkNoPrefer dark-theme palette when Telegram renders graphs
chatIdYesSupergroup ID or username
includeGraphsNoInclude raw graph data for each series (growth, members, messages, actions, top hours, weekdays, etc.). Default false โ€” returns only aggregate numbers + top lists

TDQS

A4.7/5.0
Behavior5/5

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

Annotations (readOnlyHint, openWorldHint) already indicate safe read with dynamic schema. Beyond that, description adds admin rights requirement and specific rate limiting details, which are critical for agent planning and not covered by annotations.

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?

Three sentences pack essential details: data contents, sibling differentiation + prerequisite, and rate limit warning. No extraneous text, information is front-loaded.

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

Completeness5/5

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

Despite no output schema, description covers return value types (members, messages, viewers, etc.) and explains the effect of includeGraphs. Together with annotations and guidance, the agent has sufficient context to use 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?

Schema coverage is 100% with adequate descriptions for all 3 parameters. The description does not add much more about parameters themselves but provides context about the return data (current vs previous period, top lists). Baseline 3 is appropriate as schema carries the load.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'supergroup statistics', and enumerates specific data types (members, messages, viewers, posters, top lists). It also distinguishes from the sibling tool for broadcast channels, making purpose unambiguous.

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

Usage Guidelines5/5

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

Provides explicit when-to-use (supergroups only), when-not-to-use (use telegram-get-broadcast-stats for broadcasts), prerequisites (admin rights), and behavior (rate limit of ~1/30 min with expected FLOOD_WAIT). This fully guides agent decision-making.

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

telegram-get-message-buttonsA
Read-only

List the inline/reply keyboard buttons on a Telegram message with their (row, col) indices, type (e.g. KeyboardButtonCallback, KeyboardButtonUrl), label and type-specific fields (callback data as base64, url, switchQuery, userId, copyText, etc). Helper for telegram-press-button โ€” call this first to discover indices and filter by type before pressing. Returns markupType='none' and empty buttons when the message has no keyboard

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username where the message lives
messageIdYesMessage ID whose keyboard to inspect

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that the tool returns markupType='none' when no keyboard, which is a behavioral detail. It does not add much beyond annotations and does not contradict them.

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 three sentences that efficiently convey purpose, usage, and output details. The first sentence is packed but well-structured. It is front-loaded with key information.

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?

The description explains the return format (buttons with indices, type, label, type-specific fields) and behavior when no keyboard exists. For a tool with simple parameters and no output schema, this is fairly complete. It also connects to the 'press-button' workflow.

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?

Both parameters (chatId, messageId) are fully described in the schema with clear descriptions. The tool description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists inline/reply keyboard buttons with indices, type, label, and type-specific fields. It distinguishes itself from the sibling tool 'telegram-press-button' by positioning itself as a helper to call first.

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

Usage Guidelines5/5

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

The description explicitly says 'Helper for telegram-press-button โ€” call this first to discover indices and filter by type before pressing'. This provides clear when-to-use context and implies when not to use it (when no keyboard, returns markupType='none').

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

telegram-get-message-read-participantsA
Read-only

List who has read a message in a small group (โ‰ค100 members, โ‰ค7 days old). Returns readers with userId, readAt timestamp. Does NOT work for channels or groups over 100 members (CHAT_TOO_BIG).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesGroup chat ID or @username
messageIdYesID of the message to check read status for

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds return format (userId, readAt), constraints, and error behavior. No contradiction with annotations. It adds useful behavioral context beyond structured data.

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 two concise sentences. The first sentence delivers core purpose and output format; the second covers limitations. No wasted words. Information is front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (no output schema, two parameters fully documented), the description covers purpose, return data, constraints, and error case. Combined with annotations, it provides complete context for correct usage.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3 applies. The description does not add additional meaning beyond the schema's parameter names and types. It implicitly references needed parameters but provides no extra detail.

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

Purpose5/5

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

The description clearly states the verb (List), resource (who has read a message), and constraints (small group size โ‰ค100, message age โ‰ค7 days). It distinguishes itself from sibling tools like telegram-get-outbox-read-date and telegram-get-reactions.

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?

The description explicitly states when not to use ('Does NOT work for channels or groups over 100 members') and the expected error (CHAT_TOO_BIG). It implicitly suggests use for small groups, but does not name alternative tools for large groups.

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

telegram-get-my-boostsA
Read-only

List the user's premium boost slots (premium.GetMyBoosts). Each entry includes slot index, the peer it currently boosts (if any), the date the boost was applied, expiration timestamp, and cooldownUntilDate (when a slot can be reassigned). Premium users have multiple slots; non-Premium users typically have a single slot. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description states it is read-only, aligning with annotations. It adds behavioral context beyond annotations by listing the fields in each entry (slot index, peer, dates, cooldown), which helps the agent understand the output structure. No contradictions with annotations.

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 three sentences with no wasted words. It front-loads the purpose and efficiently conveys all necessary information.

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?

Given no output schema, the description adequately explains the return fields and differentiates between Premium and non-Premium users. It could mention authentication requirements, but overall it provides sufficient context for a read-only tool with no parameters.

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?

There are zero parameters, so the description does not need to add parameter details. According to guidelines, baseline is 4 when no parameters exist.

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

Purpose5/5

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

The description clearly states it lists the user's premium boost slots, with specific detail about the internal API method and distinguishes from sibling tools that deal with boosts in other contexts (e.g., telegram-get-boosts-list, telegram-get-boosts-status).

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 description provides context on Premium vs non-Premium users and slot count, which guides when the tool is applicable. However, it does not explicitly state when not to use it or differentiate from sibling tools like telegram-get-boosts-status, leaving some ambiguity.

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

telegram-get-my-roleA
Read-only

Get the current user's role in a chat (creator, admin, or member)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already signals non-destructive behavior. The description adds context that the output is a role string, but no further behavioral details (e.g., what happens if user not in chat). Consistent with annotations.

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, clear sentence that front-loads the verb and resource. No wasted words; highly concise.

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 read-only tool with one parameter and no output schema, the description adequately states the purpose and return value. Minor omission: no mention of error handling (e.g., user not in chat).

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents the chatId parameter. The description adds no extra meaning beyond the schema; baseline 3 is appropriate.

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

Purpose5/5

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

The description explicitly states the tool retrieves the current user's role in a chat, listing specific possible values (creator, admin, member). It clearly differentiates from siblings like get-chat-info or get-chat-members.

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?

The description implies usage when needing the user's own role, but does not explicitly compare with alternatives (e.g., get-chat-members for other users). Lacks explicit when-not-to-use guidance.

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

telegram-get-outbox-read-dateA
Read-only

Get when your recipient read your outgoing message in a private chat. Returns null/Not read yet if unread. Errors if the other side disabled read receipts (YOUR_PRIVACY_RESTRICTED / USER_PRIVACY_RESTRICTED).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesPrivate chat ID or @username of the recipient
messageIdYesID of your outgoing message

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint, openWorldHint), it explains return values (null vs date) and specific errors, giving full behavioral disclosure.

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?

Extremely concise: two sentences that front-load the purpose and immediately provide key behavioral details.

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

Completeness5/5

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

For a simple read-only tool with readOnlyHint and no output schema, the description fully covers return value and error conditions.

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

Parameters3/5

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

Schema has 100% coverage for both parameters; description does not add extra meaning beyond what's in the schema, so baseline score applies.

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

Purpose5/5

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

The description clearly states the verb 'get' and resource 'outgoing message read date' in private chat, distinguishing it from siblings like telegram-get-message-read-participants which applies to groups.

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?

Provides clear context: returns null if unread, errors if read receipts disabled. Does not explicitly mention alternatives but the purpose is narrow and well-defined.

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

telegram-get-paid-reaction-privacyA
Read-only

Get your current default paid reaction privacy setting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description confirms it's a read operation by saying 'Get your current...', but adds no additional behavioral context beyond what annotations provide. No mention of authentication prerequisites or side effects, though none are expected for a getter.

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 sentence with no superfluous words. It is appropriately sized and front-loaded with the action and resource.

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?

Given the tool has no parameters and no output schema, the description is sufficient. It precisely states what is retrieved. Could potentially mention that it returns a boolean or setting value, but not strictly necessary for a simple getter.

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 schema description coverage is 100%. The description adds no parameter details, but none are needed since there are no parameters. Baseline for zero parameters is 4.

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

Purpose5/5

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

The description clearly states the tool retrieves the current default paid reaction privacy setting. The verb 'Get' and the specific resource 'default paid reaction privacy setting' are unambiguous, and it distinguishes itself from siblings like 'telegram-set-default-reaction' and 'telegram-toggle-paid-reaction-privacy'.

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?

The description is clear about what it does, but does not explicitly state when to use this tool versus alternatives (e.g., 'telegram-get-global-privacy-settings'). However, the specificity of 'paid reaction privacy' makes the usage context obvious.

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

telegram-get-peer-storiesA
Read-only

Fetch currently active stories posted by a specific peer (user/channel). Returns compact story metadata (id, date, expireDate, caption, mediaType, counters) with media type className only โ€” no raw media blobs. Use telegram-download-media with the story id if you need media bytes.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatYesPeer to fetch stories from โ€” user/channel id, @username, phone, or display name fragment

TDQS

A4.9/5.0
Behavior5/5

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

Discloses that no raw media blobs are returned, only compact metadata with fields like id, date, expireDate, caption, mediaType, counters. Aligns with readOnlyHint and openWorldHint annotations without contradiction.

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?

Two concise sentences with front-loaded purpose. No wasted words; each sentence adds essential information about behavior and alternatives.

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

Completeness5/5

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

With one parameter and no output schema, description sufficiently explains input and output (metadata fields) and cross-references sibling tool for media download. Complete for its 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?

Schema has 100% coverage for 'chat' parameter, but description adds value by listing acceptable identifier formats (id, @username, phone, display name fragment), aiding agent understanding beyond the schema description.

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

Purpose5/5

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

Description clearly states 'Fetch currently active stories posted by a specific peer (user/channel)', using a specific verb and resource. It distinguishes from siblings like 'telegram-get-all-stories' and 'telegram-get-stories-by-id' by specifying 'by a specific peer'.

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

Usage Guidelines5/5

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

Explicitly notes that it returns only metadata and no raw media blobs, directing users to 'telegram-download-media' for media bytes. Also implies this is a read operation, consistent with readOnlyHint annotation.

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

telegram-get-poll-resultsA
Read-only

Get aggregated poll results: vote counts, percentages, quiz answer status

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID of the poll

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so description adds value by specifying the returned data (vote counts, percentages, quiz answer status). It does not contradict annotations.

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?

Single sentence that is front-loaded with the action and includes key return details. No wasted words; perfectly sized for this simple 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?

The description is adequate for a simple read tool with two parameters and an annotation set. It covers the main purpose and return data, though it could mention that results are for active polls only.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'aggregated poll results', specifying vote counts, percentages, and quiz answer status. It distinguishes from sibling tools like telegram-get-poll-voters (individual voters) and telegram-create-poll/telegram-close-poll (creation/closure).

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 description implies this tool is for aggregated results, but does not explicitly state when to use it versus alternatives like telegram-get-poll-voters. No exclusions or prerequisites are mentioned.

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

telegram-get-poll-votersA
Read-only

List users who voted for specific poll options (public polls only, paginated)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax voters to return
chatIdYesChat ID or username
offsetNoPagination offset from previous call
messageIdYesMessage ID of the poll
optionIndexNoZero-based option index to filter by. Omit to get all voters

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is a read-only operation (readOnlyHint) and open to external changes (openWorldHint). The description adds that the tool is paginated and for public polls, but does not disclose additional behavioral traits like rate limits or response structure.

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 with 7 words, front-loading the action and key constraints. No superfluous text; every word adds value.

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 read-only paginated list tool with 5 fully described parameters, the description covers the essential context (public polls, pagination). The absence of an output schema is partially addressed by the clear purpose, but a bit more detail on return format would improve completeness.

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?

All 5 parameters are described in the schema (100% coverage). The description does not add new parameter details beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb (List), resource (users who voted for poll options), and constraints (public polls only, paginated). It effectively distinguishes from sibling tools like telegram-get-poll-results and telegram-vote-poll.

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?

The description explicitly states the tool works only for public polls, providing a clear usage boundary. It does not name alternatives but the restriction is sufficient for guiding appropriate use.

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

telegram-get-profileA
Read-only

Get detailed profile info of a Telegram user including bio, birthday, premium status, business info and more

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesUser ID or username

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description adds marginal value by listing specific fields. It does not disclose additional behavioral traits such as rate limits or potential return format, but it is consistent with annotations and provides context on expected data content.

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, concise sentence (16 words) that front-loads the verb and resource. Every word serves a purpose: it states the action, the resource, and lists key included fields with 'and more' for completeness. No unnecessary information.

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?

Given the tool's simplicity (one required parameter, readOnlyHint, openWorldHint, no output schema), the description is largely complete. It lists specific fields users can expect, compensating for the lack of an output schema. It could briefly mention the return format (e.g., JSON object) but this is not critical for agent 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 input schema covers the single parameter 'userId' with a clear description ('User ID or username'). Since schema_description_coverage is 100%, the baseline is 3. The tool description does not add further parameter semantics beyond what the schema provides.

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

Purpose5/5

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

The description clearly specifies the action ('Get') and resource ('detailed profile info of a Telegram user') and lists specific included fields (bio, birthday, premium status, business info). It distinguishes itself from sibling tools like telegram-get-chat-info which focus on chat-level data.

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 description implies usage for retrieving user profile information but does not provide explicit guidance on when to use this tool versus alternatives like telegram-get-chat-info or telegram-get-contacts. No when-not-to-use or exclusion criteria are given.

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

telegram-get-profile-photoA
Read-only

Download profile photo of a Telegram user, group, or channel. Returns inline image or saves to file

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoPhoto size: 'small' (160x160) or 'big' (640x640). Default: big
entityIdYesUser/Chat/Channel ID or username
savePathNoAbsolute path to save file. If omitted, returns inline base64 image

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's statement 'Download profile photo' is consistent. However, it does not add behavioral details beyond what annotations provide, such as error handling or rate limits. The description provides minimal extra transparency.

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 extremely conciseโ€”two short sentences that efficiently convey the tool's purpose and output options. No redundant words or sections.

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 download tool with clear annotations and full schema coverage, the description covers the core functionality adequately. It does not mention error cases (e.g., entity not found) or the format of the inline image, but given the tool's simplicity, it is reasonably complete.

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?

Each parameter is fully described in the schema (100% coverage). The description adds little beyond restating the purpose of 'savePath' (inline vs file). It does not clarify default behavior for 'size' or provide format details beyond what schema lists. Baseline 3 is appropriate as schema does the heavy lifting.

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

Purpose5/5

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

The description explicitly states the action ('Download profile photo'), the target ('Telegram user, group, or channel'), and the output options ('Returns inline image or saves to file'). This clearly distinguishes it from siblings like 'telegram-get-profile' (profile info) or 'telegram-set-profile-photo' (upload).

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 (e.g., 'telegram-get-profile' for other profile data). No prerequisites mentioned, such as being logged in or having access to the entity. The description lacks explicit context for an AI agent to decide when to invoke this tool.

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

telegram-get-reactionsA
Read-only

Get detailed reaction info for a message: which reactions, counts, and who reacted (when visible)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID to get reactions for

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by specifying that it returns who reacted 'when visible', indicating privacy constraints. No contradiction, and the description adds meaningful behavioral context beyond annotations.

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 sentence that is front-loaded with the core action and details. Every word serves a purpose, achieving maximum conciseness without losing clarity.

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?

Given the tool has no output schema, the description adequately explains the output (reactions, counts, who reacted with visibility note). It covers the key aspects for a simple read tool with two well-documented parameters. Minor gap: no mention of pagination or limit, but unlikely for a single-message query.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for chatId and messageId. The description does not add additional semantics beyond what the schema provides, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'reaction info for a message', listing specifics (reactions, counts, who reacted when visible). It distinguishes from siblings like `telegram-get-recent-reactions` or `telegram-get-top-reactions` by focusing on a single message's detailed info.

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 description implies usage for detailed reaction info on a specific message but lacks explicit guidance on when to choose this tool over alternatives like `telegram-get-recent-reactions`. No prerequisites or context for exclusion are provided.

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

telegram-get-recent-reactionsA
Read-only

Get the list of emoji reactions the current account used recently

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of reactions to return

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that reactions are 'recently used', which provides context but no additional behavioral details like ordering or scope beyond what annotations convey.

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 redundant information. It is concise and essential.

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 list retrieval tool with one optional parameter and no output schema, the description adequately defines the purpose and scope. It could mention return format or sorting, but the annotations cover safety and variability.

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

Parameters3/5

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

Schema coverage is 100%, with the 'limit' parameter already described in the input schema. The description does not add further meaning or usage context for this parameter.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'list of emoji reactions the current account used recently'. It distinguishes this tool from sibling tools like 'telegram-get-reactions' and 'telegram-get-top-reactions' by specifying recency and current account scope.

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 description implies retrieval of recent reactions but lacks explicit when-to-use or when-not-to-use instructions. No alternatives are mentioned, though the sibling set provides clear distinctions.

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

telegram-get-recent-stickersA
Read-only

Get recently used stickers. Returns each sticker with its list index and associated emoji

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and openWorldHint. The description adds that it returns each sticker with its list index and associated emoji, providing some behavioral context beyond annotations. However, it does not disclose any limits or ordering 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 two sentences with no wasted words. It front-loads the purpose and adds relevant detail about the return format.

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

Completeness5/5

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

Given no parameters and no output schema, the description adequately covers the tool's functionality and return value. It is complete for a simple read-only retrieval 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?

With no parameters and 100% schema coverage, the description adds meaning by specifying the return content (list index and emoji). This exceeds the baseline of 3 for high schema coverage, so a 4 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'recently used stickers', and differentiates from siblings like 'telegram-get-installed-stickers' and 'telegram-search-sticker-sets' by focusing on recent usage. It also specifies what is returned (list index and associated emoji), which distinguishes it further.

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 provided on when to use this tool versus alternatives. For example, it does not differentiate from 'telegram-get-installed-stickers' or 'telegram-search-sticker-sets' in terms of use cases or scenarios.

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

telegram-get-repliesB
Read-only

Get replies/comments under a Telegram channel post or discussion message

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of replies to return
chatIdYesChat ID or username (channel or linked discussion group)
messageIdYesID of the message whose replies to fetch

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds no additional behavioral details such as pagination limits, rate limits, or permission requirements.

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 concise sentence with no filler. It is front-loaded and quickly communicates 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?

For a read-only tool with three well-documented parameters and no output schema, the description is minimally adequate. However, it could mention pagination or typical use cases.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add much. It restates the schema purpose but does not provide extra context like default limit or maximum allowed.

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

Purpose5/5

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

The description clearly states the action ('Get') and the resource ('replies/comments under a Telegram channel post or discussion message'). It distinguishes from sibling tools like telegram-get-discussion-message or telegram-get-reactions by specifying replies/comments.

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 guidance on when to use this tool versus alternatives. There is no mention of prerequisites or context (e.g., requires a linked discussion group).

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

telegram-get-saved-dialogsA
Read-only

Get Saved Messages dialogs (Telegram's per-sender grouping of messages forwarded to your Saved Messages)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax dialogs to return

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds context that the tool returns per-sender groupings of forwarded messages, which is beyond the annotations. However, it does not disclose pagination or ordering 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, concise sentence that front-loads the key information. Every word is necessary and there is no redundancy.

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?

Given the tool's simplicity (one optional parameter, no output schema), the description adequately explains what it does. It could be improved by mentioning the default limit, but the schema provides that information.

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

Parameters3/5

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

Schema coverage is 100% and the parameter 'limit' is described in the schema. The description does not add additional meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves 'Saved Messages dialogs' and explains they are Telegram's per-sender grouping of forwarded messages. This specific verb+resource combination distinguishes it from sibling tools like telegram-get-drafts and telegram-get-scheduled.

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 description implies when to use the tool (to list dialogs in Saved Messages), but it does not provide explicit guidance on when not to use it or suggest alternative tools for similar purposes.

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

telegram-get-saved-musicA
Read-only

List the songs pinned to a user's profile (users.GetSavedMusic) โ€” the tracks behind the music row on a Telegram profile. Returns count plus tracks with title, performer, duration, fileName, mimeType and size; element 0 is the track shown on the profile. Defaults to your own profile. Supports pagination via offset/limit and returns nextOffset when more remain. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoUser to query โ€” id, @username, or display name fragment. Defaults to yourself
limitNoMax tracks to return per page (default 50, max 100)
offsetNoPagination offset (default 0)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations mark readOnlyHint=true, and the description reinforces safety by explicitly stating 'Read-only.' It adds valuable behavioral context: defaults to your own profile, element 0 is the track shown on the profile, pagination returns nextOffset. Since annotations already cover the read-only nature, this extra context goes beyond what the structured data provides.

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?

Four sentences, all with purpose: what it lists, what it returns, the element 0 highlight, defaults, pagination, read-only nature. Every sentence adds value and the format is front-loaded with the core purpose before details. No fluff or repetition.

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

Completeness5/5

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

For a read-only, 3-parameter list tool with no output schema required, the description covers all relevant context: target selection, return fields, pagination, defaults, and safety profile. An agent has enough to invoke it correctly without needing the omitted details of the PTrack's full schema.

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

Parameters4/5

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

Schema coverage is 100% โ€” all three parameters (user, limit, offset) are described in the schema. The description adds meaning on top: it explains the user param accepts id, @username, or display name fragment; it states defaults (limit 50, offset 0) which reinforce the schema; and it explains the pagination semantics (nextOffset) that tie the parameters together. It doesn't need to repeat every schema detail since coverage is high.

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

Purpose5/5

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

The description clearly states the action (List songs pinned), the specific resource (a user's saved music / Telegram profile music row), and the API method (users.GetSavedMusic). This distinguishes it from the many sibling tools โ€” none of which relate to saved music โ€” and gives an agent enough to select it confidently.

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?

The description explains the default behavior (own profile) and how to target other users via the user parameter, and mentions pagination via offset/limit. It doesn't explicitly say when to prefer this over alternative music-related tools, but there are no direct alternatives among siblings, so the guidance covers the main decision points.

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

telegram-get-scheduledB
Read-only

List scheduled messages in a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the description adds no behavioral context. It does not mention that the operation is safe, non-destructive, or any aspects like pagination or 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.

Conciseness3/5

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

The description is very short and lacks detail, but it is not verbose. It could be improved slightly with additional context without losing 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?

Given the simplicity of the tool (one parameter, no output schema), the description is minimal. It does not specify the return format (e.g., list of message objects), which would help the agent understand what to expect.

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

Parameters3/5

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

Schema coverage is 100% (one parameter 'chatId' with description). The tool description adds no additional meaning beyond what the schema provides, warranting the baseline score.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('scheduled messages in a Telegram chat'), clearly distinguishing it from sibling tools like 'telegram-delete-scheduled' and 'telegram-send-scheduled'.

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 guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions. With many siblings, explicit usage context would be beneficial.

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

telegram-get-sessionsA
Read-only

Get list of all active Telegram sessions (logged-in devices) with device info, IP, and last active time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark it as read-only and open-world. The description adds that it returns device info, IP, and last active time, which clarifies the output beyond the annotations.

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 sentence that effectively communicates the tool's purpose and output without unnecessary words.

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 parameterless read tool with good annotations, the description provides the essential information. It could mention that sessions belong to the current user, but it's adequate.

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?

There are no parameters, so the description adds no parameter meaning beyond the schema. With 100% schema coverage, no further detail is needed.

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

Purpose5/5

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

The description clearly states the tool's function: get a list of active Telegram sessions with device info, IP, and last active time. It uses a specific verb and resource, and there is no other sibling tool with a similar purpose.

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 description does not explicitly state when to use this tool versus alternatives like terminate-session. Though the context implies it for viewing sessions before termination, no direct guidance is given.

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

telegram-get-stateA
Read-only

Initialize the polling cursor by fetching the current Telegram updates state {pts, qts, date, seq, unreadCount}. Call once before telegram-get-updates; then persist {pts, qts, date} in your agent state and feed them into telegram-get-updates. The MCP server does NOT store the cursor โ€” you do.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds context about the cursor persistence responsibility and what state is fetched. No contradiction with annotations.

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?

Extremely concise: three sentences, no filler. Front-loaded with the primary action and key output fields. Every sentence provides essential information.

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

Completeness5/5

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

Given zero parameters and no output schema, the description completely explains the tool's purpose, usage sequence, and state management responsibility. No gaps.

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

Parameters5/5

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

No parameters exist, so baseline is 4. The description adds value by explaining the output fields and their use in the workflow, going beyond the schema.

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

Purpose5/5

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

The description clearly states it initializes the polling cursor by fetching Telegram updates state, specific verb-object ('Initialize the polling cursor'), and lists the returned fields. It distinguishes from the sibling 'telegram-get-updates' by explaining it is a prerequisite.

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

Usage Guidelines5/5

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

Explicitly says to call once before 'telegram-get-updates', persist the state, and feed it into subsequent updates. Also clarifies that the server does not store the cursor, telling the agent it must manage state.

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

telegram-get-sticker-setA
Read-only

Get all stickers from a sticker set by its short name. Returns each sticker with index and emoji. Use the index with telegram-send-sticker to send a specific sticker

ParametersJSON Schema
NameRequiredDescriptionDefault
shortNameYesShort name of the sticker set (e.g. 'AnimatedEmojis', 'HotCherry'). Find names via telegram-search-sticker-sets or from t.me/addstickers/<shortName> links

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description's addition of return format (index and emoji) adds some behavioral context but does not significantly expand beyond what annotations indicate. It lacks details on limits or pagination but is adequate.

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?

Two sentences with no wasted words. The first sentence states the core purpose, the second adds return format and usage guidance. Perfectly concise and front-loaded.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description covers all necessary aspects: what it does, how to find the input, what format the output has, and how to use the output with a sibling tool. Complete given the 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?

Schema coverage is 100%, and the parameter description in the schema already includes examples and sources for short names. The description adds a brief mention of finding names but does not add substantial meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets all stickers from a sticker set by short name, with a specific verb and resource. It also explains the return format (index and emoji) and links to the downstream send tool, which distinguishes its purpose from related sticker tools.

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?

The description explains when to use the tool (to retrieve stickers from a set) and where to find short names (via search or t.me/addstickers links). It does not explicitly state when not to use it, but the context is clear enough for an agent to decide.

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

telegram-get-stories-archiveA
Read-only

Fetch auto-archived (expired) stories from a peer's archive. Paginate via offsetId (pass last story id from previous page).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax stories to return (1โ€“100, default 50)
chatIdNoPeer whose archive to fetchme
offsetIdNoPagination offset: pass last story ID from previous page (0 to start)

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds behavioral context by specifying that it fetches auto-archived/expired stories and explaining pagination via offsetId. No contradiction; description complements annotations.

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?

Two concise sentences: first states purpose, second provides pagination instruction. No redundant information. Efficiently front-loaded.

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?

With 3 simple parameters, clear annotations, and no output schema, the description adequately covers what the tool does and how to paginate. Lacks return format details, but given simplicity, it is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100% (all 3 parameters have descriptions). The description adds a pagination hint for offsetId, which is slightly helpful but not significantly beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Fetch auto-archived (expired) stories from a peer's archive', using a specific verb and resource. It distinguishes from sibling tools like telegram-get-peer-stories (which likely fetches current stories) by specifying 'auto-archived (expired)'.

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 description implies usage for fetching archived stories and gives pagination instructions, but does not explicitly compare to alternatives like telegram-get-peer-stories or state when not to use this tool. No direct when-not or alternative guidance.

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

telegram-get-stories-by-idA
Read-only

Fetch specific stories from a peer by their numeric IDs. Useful for retrieving archived/pinned stories outside the active feed. Returns compact story metadata and optional pinnedToTop list. Pass up to ~100 ids per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesStory IDs to fetch (1โ€“100 per request)
chatYesPeer to fetch stories from โ€” user/channel id, @username, phone, or display name fragment

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and open-world. Description adds return format: 'compact story metadata and optional pinnedToTop list'. No contradictions. Does not detail error handling but adequate given annotations.

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?

Three sentences, front-loaded with purpose, then use case, then detail. No waste, each sentence earns its place.

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?

Simple tool with two params and no output schema. Description covers return type and limit. Sufficient for agent to understand usage without gaps.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The description adds minimal new info (repeats ~100 limit), so baseline 3 is appropriate.

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?

Description clearly states 'Fetch specific stories from a peer by their numeric IDs', which specifies verb, resource, and method. It distinguishes from sibling tools like 'get-all-stories' by mentioning numeric IDs and archived/pinned stories.

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?

Provides use case: 'useful for retrieving archived/pinned stories outside the active feed' and limits request size to ~100 IDs. Does not explicitly state when not to use, but context implies it's for targeted retrieval.

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

telegram-get-story-viewsA
Read-only

List viewers of one of YOUR stories (stories.GetStoryViewsList). Returns per-viewer entries (user id, view date, their reaction emoji if any), plus totals (viewsCount, forwardsCount, reactionsCount) and nextOffset for pagination. Pass your own user id (numeric) or @username as the peer โ€” this only works for stories you posted. Some accounts (non-Premium, old stories) may not get a full viewer list โ€” a Premium hint is surfaced on typical errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFilter viewers by name substring
chatYesPeer owning the story โ€” usually 'me' or your own user id/@username
limitNoMax viewers to return (default 50, max 100)
offsetNoPagination offset from a previous response's nextOffset
storyIdYesStory ID to fetch viewers for
justContactsNoReturn only contacts
forwardsFirstNoSort forwards/reposts first
reactionsFirstNoSort viewers who reacted first

TDQS

A4.6/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations (readOnlyHint=true, openWorldHint=true). It details the return structure (per-viewer entries, totals, nextOffset) and caveats (Premium restrictions, error hints). No contradictions with annotations.

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 two sentences, front-loading the main action and then covering constraints. Every sentence adds necessary detail without redundancy. No wasted words.

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?

With 8 parameters and no output schema, the description explains return fields and key constraints. It mentions totals and pagination but doesn't specify exact field names or types, which the output schema would provide. The description is comprehensive given the tool's complexity, but a slightly more detailed output description could improve completeness.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning for 'chat' (explains it must be your own user id/@username) and 'offset' (pagination usage). For other parameters like 'forwardsFirst', it clarifies sorting behavior. This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states 'List viewers of one of YOUR stories', specifying the resource (your story viewers) and action (list). It distinguishes this tool from siblings by emphasizing it only works for stories the user posted, not others' stories. The inclusion of the Telegram API method name further clarifies.

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?

The description provides clear context on when to use the tool: only for stories the user posted. It also notes limitations (non-Premium accounts, old stories may not get full list, Premium hint on errors). However, it does not explicitly compare to sibling tools like get-peer-stories or get-stories-by-id, missing an opportunity to guide the agent on alternatives.

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

telegram-get-suggested-foldersA
Read-only

Get Telegram's suggested chat folders based on your chat list (e.g. 'Unread', 'Personal', 'Work'). Returns folder templates you can create with telegram-create-folder.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

The description adds context about returning folder templates, but annotations (readOnlyHint: true, openWorldHint: true) already cover the read-only nature and potential unknown data. No contradictions or extra behavioral details beyond what annotations imply.

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?

Two efficient sentences: first states the action with examples, second explains output and links to a related tool. No unnecessary words, front-loaded with key info.

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

Completeness5/5

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

Given no input parameters and no output schema, the description fully covers what the tool does and what it returns. It is complete for a simple read-only 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?

With no parameters and 100% schema coverage, the description effectively explains the tool's purpose and output. It adds meaning beyond the empty schema by describing the returned data (folder templates).

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

Purpose5/5

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

The description clearly states the tool retrieves suggested chat folders, provides examples like 'Unread, Personal, Work', and distinguishes from siblings by mentioning it returns templates for creating folders with telegram-create-folder.

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?

The description implies the tool is for viewing suggested folders before creation and references telegram-create-folder. While it doesn't explicitly state when not to use it or compare to alternatives like telegram-get-chat-folders, the context is clear.

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

telegram-get-top-reactionsB
Read-only

Get the list of most popular emoji reactions available on Telegram

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of reactions to return

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds that reactions are 'emoji' and 'popular', but doesn't disclose pagination or caching behavior beyond what annotations imply.

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?

Single concise sentence that effectively communicates the tool's purpose with no unnecessary words.

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 read-only tool with one parameter and no output schema, the description is complete: it specifies what is returned (list of emoji reactions) and that they are popular.

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

Parameters3/5

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

Schema coverage is 100% with description for 'limit' parameter. Description doesn't add additional semantics beyond 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?

Clear verb 'Get' and resource 'list of most popular emoji reactions' distinguishes it from related tools like telegram-get-reactions by specifying 'top'.

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 over siblings like telegram-get-reactions or telegram-get-recent-reactions.

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

telegram-get-transcriptionA
Read-only

Poll for updated transcription result. Calls the same endpoint as telegram-transcribe-audio โ€” Telegram guarantees idempotency (returns same transcriptionId with updated text once processing completes).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID of the voice or video note

TDQS

A4.1/5.0
Behavior4/5

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

Description adds behavioral context beyond annotations (readOnlyHint, openWorldHint) by explaining it polls the same endpoint and guarantees idempotency, clarifying the polling nature and expected 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?

Two concise sentences that are front-loaded with the purpose and include relevant detail about the relationship to the transcribe tool, with no wasted words.

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 description only briefly mentions return of transcriptionId with updated text, lacking details on response structure or status for polling. Adequate but could be more complete for a polling tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description does not add parameter details beyond what schema already provides (chatId and messageId are required).

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?

Description clearly states 'Poll for updated transcription result' and distinguishes itself by mentioning it calls the same endpoint as telegram-transcribe-audio, providing a specific verb and resource with differentiation from sibling tools.

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?

Implies usage after initiating transcription with telegram-transcribe-audio, and mentions idempotency guarantee, but does not explicitly state when not to use or provide alternative tools beyond the implicit relationship.

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

telegram-get-unreadA
Read-only

Get chats with unread messages. Forums show per-topic unread breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of unread chats to return

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds useful context: forums show per-topic unread breakdown, which goes beyond the annotations and helps the agent understand special 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 two concise sentences, front-loaded with the main purpose, and no unnecessary words.

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

Completeness5/5

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

Given the tool is simple, read-only, with one optional parameter, the description sufficiently covers purpose and special behavior (forum breakdown) for an agent to use it 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?

Schema has 100% coverage with a clear description for the 'limit' parameter. The tool description does not add any further parameter details, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves chats with unread messages, and specifically mentions that forums show a per-topic breakdown, distinguishing it from related siblings like telegram-get-unread-mentions and telegram-get-unread-reactions.

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 description implies usage for fetching unread chats but does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use scenarios.

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

telegram-get-unread-mentionsA

Get unread @mentions addressed to you in a Telegram chat. Marks all mentions as read on the server when all unread mentions fit within the requested limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of mentions to return
chatIdYesChat ID or username

TDQS

A4.2/5.0
Behavior5/5

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

The disclosure that reading marks mentions as read only when all unread mentions fit within the requested limit adds critical behavioral context beyond annotations. This explains the side effect (modifying state) and its conditional nature, which annotations only hint at via readOnlyHint=false.

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?

Two sentences, front-loaded with purpose and followed by key behavioral detail. Every sentence earns its place with no unnecessary words or redundancy.

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 tool with 2 parameters, no output schema, and low complexity, the description covers purpose and side effect. Lacks explicit mention of return format but given 'get' in name and simple design, it is mostly complete. Minor gap: what happens when limit is smaller than unread count remains implied.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds minimal parameter context beyond schema: it links the limit parameter to the mark-as-read condition but does not clarify formatting or behavior when limit is insufficient. Adequate but not enhanced.

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

Purpose5/5

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

The description clearly states the tool retrieves unread @mentions in a Telegram chat, distinguishing it from siblings like telegram-get-unread and telegram-get-unread-reactions by specifying @mentions addressed to the user. The verb 'get' and resource 'unread @mentions' are specific and unambiguous.

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 description implies usage for retrieving unread mentions but does not explicitly state when to use this tool over alternatives like telegram-get-unread or telegram-get-unread-reactions. No 'when not to use' guidance or alternatives mentioned, leaving the agent to infer context from the tool name.

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

telegram-get-unread-reactionsA

Get messages with unread reactions on your posts in a Telegram chat. Marks all reactions as read on the server when all unread reactions fit within the requested limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of messages to return
chatIdYesChat ID or username

TDQS

A3.9/5.0
Behavior4/5

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

Discloses side effect: 'Marks all reactions as read on the server when all unread reactions fit within the requested limit.' This is beyond annotations (readOnlyHint=false, openWorldHint=true) and adds practical context about partial marking 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?

Two concise sentences: first states purpose, second adds critical behavioral note. No fluff, well-structured.

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 description does not describe return format (e.g., what message data is returned). Side effect condition is somewhat vague (what happens if limit is too small?). Could be more complete for a fetch+mutate tool.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. Tool description does not add additional semantic value beyond what the schema provides, so baseline of 3 is appropriate.

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?

Description clearly states 'Get messages with unread reactions on your posts in a Telegram chat', using specific verb+resource. It distinguishes from siblings like telegram-get-reactions (which likely returns all reactions) and telegram-get-unread-mentions (mentions, not reactions).

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?

Implies usage for fetching unread reactions, but no explicit when-to-use or when-not-to-use guidance. Does not mention alternatives like telegram-mark-as-read if you only want to mark without fetching.

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

telegram-get-updatesA
Read-only

Fetch new messages, deleted messages, and other updates since a previously-known {pts, qts, date} cursor (from telegram-get-state or a prior call). Returns compact newMessages[], deletedMessageIds[], otherUpdates[] (className only), and the new cursor state. isFinal=false means more updates are queued โ€” call again with the returned state. If Telegram reports the gap is too long, a fallback hint is returned suggesting to resync via telegram-read-messages per chat. Cursor is stateless โ€” the agent must persist {pts, qts, date} between calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
ptsYesLast known pts (from telegram-get-state or prior telegram-get-updates)
qtsYesLast known qts (secret-chat / encrypted stream cursor; 0 if unknown)
dateYesLast known date (unix seconds from prior state)
ptsLimitNoMax updates per batch (default 100, capped at 1000)
ptsTotalLimitNoMax total updates across paginated slices (default 1000, capped at 1000)

TDQS

A4.9/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint, openWorldHint), the description explains the return structure (newMessages, deletedMessageIds, otherUpdates, cursor), pagination behavior (isFinal flag), and stateless requirement for agent to persist cursor. No contradictions with annotations.

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 concise, front-loading key functionality, then covering returns, pagination, fallback, and statelessness. Every sentence is informative and avoids redundancy.

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

Completeness5/5

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

Despite no output schema, the description fully explains the return values (newMessages[], deletedMessageIds[], otherUpdates, cursor state) and the isFinal flag. It also covers the stateless cursor requirement and fallback behavior, making it complete for agent use.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for each parameter. The description adds meaning by explaining the cursor concept, defaults for ptsLimit/ptsTotalLimit, and the condition for calling again (isFinal). However, the schema already handles most of the parameter semantics, so the added value is moderate.

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

Purpose5/5

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

The description clearly states 'Fetch new messages, deleted messages, and other updates' with a cursor mechanism. It distinguishes from siblings like telegram-read-messages by mentioning a fallback hint, and references telegram-get-state for cursor initialization.

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

Usage Guidelines5/5

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

Explicitly explains when to use (after obtaining a cursor), when to call again (isFinal=false), and provides fallback hint for resync via telegram-read-messages for gaps. This gives clear context for choosing this tool over alternatives.

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

telegram-get-web-previewA
Read-only

Fetch Telegram's web-page preview metadata (type, title, description, site name) for a URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to preview (http:// or https://; literal private/loopback/reserved IPs rejected)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating safe read and external interaction. The description adds no further behavioral context (e.g., that it performs an external HTTP request). The schema note about rejecting private IPs is a constraint but not in the description. Overall adequate but not enhanced.

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 is concise and front-loaded. No unnecessary words; every part contributes to understanding the tool's function.

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 read-only tool with one parameter, the description is complete, listing the returned metadata fields. Could mention external fetching, but overall sufficient.

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

Parameters3/5

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

Schema coverage is 100% with detailed description of the 'url' parameter. The description mentions the return fields but adds no parameter-relevant meaning beyond the schema. Baseline score appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Fetch' and the resource 'web-page preview metadata', listing specific fields (type, title, description, site name). This distinguishes it from all siblings, none of which fetch web previews.

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?

The description implies usage when needing preview metadata for a URL. It does not explicitly state when not to use or provide alternatives, but the context of siblings makes its purpose clear without ambiguity.

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

telegram-inline-queryA
Read-only

Query an inline bot (like @gif, @bing) in a chat context and return the compact result list. Returns queryId, cacheTime, and results[{id,type,title?,description?,url?}]. The queryId is typically valid for ~60s and can be passed to telegram-inline-query-send to deliver a chosen result. Bot must be a real bot account

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesInline bot username (e.g. @gif) or numeric user ID
queryYesQuery text the bot should resolve (may be empty string)
chatIdYesChat ID or username providing context for the inline query
offsetNoPagination offset returned by a previous call as nextOffset (empty string on first call)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds behavioral details: queryId validity ~60s, return format with specific fields, and the compact nature of results. This supplements the annotations well without contradiction.

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 three sentences, front-loading the primary action, then explaining return structure and usage hint. Every sentence adds value, no redundancy or fluff.

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?

Given no output schema, the description provides the return structure (queryId, cacheTime, results with fields). It mentions the sibling send tool and bot requirement. Pagination via offset is only in schema, not described. Overall covers essential flow sufficiently.

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

Parameters3/5

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

Schema coverage is 100% and each parameter has a description (bot, query, chatId, offset). The tool description does not add significant meaning beyond the schema; it mentions bot must be real but doesn't elaborate on other parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool queries an inline bot in a chat context and returns a compact result list. It specifies the verb 'Query', resource 'inline bot', and context 'chat context', and distinguishes itself by mentioning the return structure and the sibling tool telegram-inline-query-send.

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 provides explicit workflow: query to get results, then use the queryId to deliver a chosen result via telegram-inline-query-send. It also states a prerequisite (bot must be a real bot account). However, it does not explicitly list cases when not to use this tool or suggest alternatives among the many sibling tools.

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

telegram-inline-query-sendA

Send an inline bot result to a chat by queryId + resultId (as returned by telegram-inline-query). The queryId is valid for ~60s after the original query, so call this soon after telegram-inline-query. Returns the sent messageId (0 if not extractable from the update).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesTarget chat ID or username to send the result into
silentNoSend without notification
hideViaNoHide the 'via @bot' label on the sent message
queryIdYesqueryId from a prior telegram-inline-query call (valid ~60s)
replyToNoMessage ID to reply to
resultIdYesid of the chosen result from telegram-inline-query results[]
clearDraftNoClear the chat draft after sending

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate mutation (readOnlyHint=false). The description adds the 60-second timeout and potential zero return for messageId. No contradictions.

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?

Two sentences, front-loaded with key action and prerequisite, no unnecessary words.

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?

Given no output schema, it explains the return value. It could detail more optional parameters, but the essential usage 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?

Schema coverage is 100%, so the schema already documents parameters. The description adds value by linking queryId/resultId to the prior call and clarifying the time constraint and return value nuances.

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

Purpose5/5

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

The description clearly states the action: sending an inline bot result to a chat using queryId and resultId. It distinguishes from sibling tools by being the only one for inline query results.

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 explicitly mentions the prerequisite call (telegram-inline-query) and the 60-second validity window, guiding when to use. It does not explicitly exclude other send tools, but the context is clear.

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

telegram-invite-to-groupB

Invite users to a Telegram group or channel

ParametersJSON Schema
NameRequiredDescriptionDefault
usersYesUsernames or IDs to invite
chatIdYesChat ID or username

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true. The description does not add beyond stating 'invite', offering no details on permissions, rate limits, or what happens if users are already members. No contradiction.

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 sentence that is immediately understandable. No unnecessary words.

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 description covers the basic action but lacks context such as whether the tool works for both groups and channels, permission requirements, or handling of invalid users. Given the simplicity, it is adequate but not comprehensive.

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?

Both parameters (chatId, users) are documented in the schema with 100% coverage. The description does not add any additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Invite users to a Telegram group or channel', using a specific verb (invite) and resource (users to group/channel), and distinguishes from siblings like telegram-join-chat or telegram-kick-user.

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 versus alternatives such as telegram-join-chat (self-join) or telegram-create-invite-link. The name is self-explanatory but lacks context for when invitations are appropriate.

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

telegram-join-chatA

Join a Telegram group or channel by username or invite link

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesUsername (@group), link (t.me/group), or invite link (t.me/+xxx)

TDQS

A3.5/5.0
Behavior2/5

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

Annotations indicate mutation (readOnlyHint=false) and possible side effects (openWorldHint=true). The description adds minimal context, e.g., what happens if approval is needed or if the link is invalid. It does not disclose potential outcomes like sending a join request.

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?

Single sentence, directly describes the tool's function with no extraneous words. Efficient and front-loaded.

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 low complexity (1 parameter, no output schema), the description is adequate but sparse. It does not address joining behavior in detail, which could be important for an AI agent.

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?

Only one parameter 'target' with 100% schema description coverage. The schema already explains accepted formats. The tool description adds no additional semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states 'Join a Telegram group or channel by username or invite link', specifying the action and resource. It differentiates from sibling tools like 'telegram-create-group', 'telegram-leave-group', and 'telegram-approve-join-request'.

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?

No explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., not already a member) or when to use invite links vs usernames. The context is implied but not stated.

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

telegram-kick-userA

Kick a user from a Telegram group (removes without permanent ban)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
userIdYesUser ID or username to kick

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate non-read-only and open world; description adds the behavioral nuance of no permanent ban, but omits potential side effects like re-joinability or permission requirements.

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?

Single sentence, no fluff, effectively communicates the core action and differentiating detail.

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?

With simple tool, annotations, and full schema coverage, the description is sufficient for selection and basic usage; no output schema, but return likely trivial.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions; the tool description adds no additional parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action (kick) and resource (Telegram group) with the nuance of temporary removal, distinguishing it from sibling tools like telegram-ban-user.

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?

Implicitly suggests use for non-permanent removal via 'removes without permanent ban', but lacks explicit alternatives or when-not-to-use guidance.

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

telegram-leave-groupB

Leave a Telegram group or channel

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, so the description's 'Leave' adds no new behavioral context. It doesn't disclose side effects like notifications, admin requirements, or irreversibility.

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?

Extremely conciseโ€”one sentence with no filler. Every word is necessary.

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?

Minimally adequate for a simple tool, but lacks details on what happens after leaving, any permissions needed, or effects on the group. Could be improved given the number of siblings.

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 single parameter 'chatId' is fully described in the schema (100% coverage). The description adds no extra meaning beyond the schema.

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

Purpose5/5

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

The description 'Leave a Telegram group or channel' uses a specific verb and resource, clearly stating the tool's action. It distinguishes from siblings like 'telegram-join-chat' and 'telegram-create-group'.

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 vs alternatives, no prerequisites or exclusions mentioned. For instance, it doesn't clarify that the user must be a member or that it differs from 'telegram-kick-user'.

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

telegram-list-chatsA
Read-only

List Telegram chats with unread counts, type indicators, and contact status

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of chats to return
filterTypeNoFilter by chat type. 'contact_requests' shows only private chats from non-contacts
offsetDateNoUnix timestamp offset for pagination

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, establishing a safe read operation. The description adds that results include unread counts, type indicators, and contact status, but does not elaborate on pagination behavior, rate limits, or other traits beyond what annotations imply.

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, concise sentence that front-loads the action and resource. Every word adds value; no redundant or vague phrasing.

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?

Given the lack of an output schema, the description usefully hints at output contents (unread counts, type indicators, contact status). It covers the core purpose but does not mention pagination or filtering behavior, which is partially inferred from parameters. Annotations compensate for safety 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?

Schema description coverage is 100%, so the schema already documents all three parameters with descriptions. The tool description does not add additional meaning or usage context for the parameters beyond what is in the schema, meeting the baseline.

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

Purpose5/5

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

The description clearly states the action ('List'), the resource ('Telegram chats'), and the included details ('unread counts, type indicators, and contact status'). It distinguishes itself from siblings like 'get-chat-info' (specific chat) and 'search-chats' (search-based) by indicating a broad listing with metadata.

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 explicit guidance on when to use this tool versus alternatives such as 'telegram-search-chats' or 'telegram-get-chat-info'. There is no mention of when not to use it or prerequisites. The parameters imply filtering but are not described in usage context.

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

telegram-list-emoji-statusesA
Read-only

List default or recently-used emoji statuses available for your account. Useful for finding a documentId to pass to telegram-set-emoji-status.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWhich list: default (popular set), recent (your recent usage), channel_default (for channels), collectible (paid unique)default
limitNoMax items to return

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true (safe read) and openWorldHint=true (results may change). The description adds context about the data being emoji statuses and the relationship to another tool. No contradictions, and the description enriches the agent's understanding of the operation's nature.

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 extremely concise: two sentences, no redundancy, front-loaded with the core action. Every word adds value, making it easy for an agent to quickly understand the 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 list tool with no output schema, the description covers the essential purpose and a key use case. It does not elaborate on all enum variants (e.g., channel_default, collectible), but the schema does. Overall, it provides sufficient context for an agent to invoke it 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?

Schema coverage is 100% with both parameters well-documented. The description adds no additional parameter-level details, only general purpose. According to the rule, baseline 3 is appropriate when schema already covers parameters fully.

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

Purpose5/5

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

The description clearly states the verb 'list', the resource 'emoji statuses', and the scope 'default or recently-used available for your account'. It also provides a specific use case: finding a documentId for telegram-set-emoji-status, distinguishing it from sibling list tools like telegram-get-recent-stickers.

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?

The description explicitly connects this tool to another tool (telegram-set-emoji-status), guiding when to use it. However, it does not mention alternatives or when not to use it, and the parameter 'kind' offers more options than just 'default' and 'recent', which could be clarified.

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

telegram-list-topicsA
Read-only

List forum topics in a Telegram group with Topics enabled. Shows topic names, unread counts, and status

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax topics to return
chatIdYesChat ID or username of a group with Topics enabled

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true (safe read) and openWorldHint=true. Description adds that output includes 'topic names, unread counts, and status', which is useful behavioral detail beyond annotations.

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?

Single sentence that conveys purpose and output concisely with no redundancy. Every word earns its place.

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?

Tool is simple with 2 parameters and no output schema. Description adequately explains what is listed and the output fields. Could mention pagination or behavior when no topics exist, but overall sufficient for a list tool.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters (limit, chatId). Description does not add extra meaning or examples beyond what schema already provides, so baseline score of 3 is appropriate.

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?

Description clearly states 'List forum topics' with specific verb and resource, and adds context 'in a Telegram group with Topics enabled'. It distinguishes from siblings like telegram-read-topic-messages and telegram-create-topic.

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?

Description implies usage context (groups with Topics enabled) but does not explicitly state when not to use or mention alternatives. Clear context but lacks exclusions.

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

telegram-loginA

Login to Telegram via QR code. Returns QR image. IMPORTANT: pass the entire result to user without modifications.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, suggesting state changes and side effects. The description adds minimal context beyond the login action and the instruction to pass results without modifications. It does not disclose session creation or QR code validity.

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?

Two concise sentences with no redundancy. The first states purpose and output, the second provides an important usage instruction. Every sentence earns its place.

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 login tool with no parameters, the description is adequate but incomplete. It lacks details on subsequent steps (e.g., login confirmation, session management) and the format of the QR result. The important instruction is helpful but overall 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?

There are no parameters, so schema coverage is 100%. Baseline for zero parameters is 4. The description does not add parameter info but is not required to.

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

Purpose5/5

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

The description clearly states the action ('Login to Telegram') and method ('via QR code'), and what it returns ('QR image'). Distinguishes from siblings as there is no other login tool.

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?

No explicit guidance on when to use this tool vs alternatives, nor when not to use it (e.g., if already logged in). While it is the only login tool, prerequisites and context are missing.

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

telegram-logoutA
Destructive

Log out from Telegram completely. Revokes the session on Telegram servers (removes it from Settings โ†’ Devices), deletes the local session file, and disconnects. After this you must run telegram-login to re-authenticate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds specifics: session revocation, local file deletion, disconnection. No contradictions.

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?

Three concise sentences with no unnecessary words. Front-loaded with the action, then details, then post-requisite.

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

Completeness5/5

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

Simple tool with no parameters and no output schema. Description fully explains effects and required follow-up action. Complete for the 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?

No parameters, so baseline 4 is appropriate. Description does not need to add parameter info.

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

Purpose5/5

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

The description clearly states the tool logs out completely, revokes the session, deletes the local session file, and disconnects. It distinguishes from siblings like telegram-terminate-session (specific session) and telegram-login (opposite action).

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?

The description explicitly states the need to run telegram-login afterward, providing clear usage context. While it doesn't list alternatives, the use case is unambiguous.

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

telegram-mark-as-readB

Mark a Telegram chat as read

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username

TDQS

B3/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond what annotations already provide (readOnlyHint=false, openWorldHint=true). It lacks details on side effects, permissions required, or reversibility of the action.

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 description is a single sentence, which is concise but lacks necessary details. It is front-loaded but incomplete, making it barely adequate.

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 one-parameter tool with annotations and no output schema, the description is too minimal. It does not explain what 'mark as read' entails (e.g., all messages, chat existence requirements) or what the response indicates.

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

Parameters3/5

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

Schema coverage is 100% and the schema describes 'chatId' as 'Chat ID or username'. The description adds no extra meaning to the parameter, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'mark' and resource 'Telegram chat' with action 'as read', clearly distinguishing it from siblings like 'telegram-read-messages' (individual messages) and 'telegram-mark-dialog-unread' (opposite 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?

The description provides no guidance on when to use this tool versus alternatives such as 'telegram-read-messages' or 'telegram-get-unread'. There is no explicit mention of context or exclusions.

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

telegram-mark-dialog-unreadA

Mark a Telegram dialog as unread (or clear the unread mark)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
unreadYestrue to mark as unread, false to clear the mark

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false). Description adds no further behavioral details (e.g., whether the dialog must exist, effects on other states). No contradiction with annotations.

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?

Single sentence clearly conveying core functionality with no wasted words. Efficiently front-loaded.

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?

Tool is simple with two well-defined parameters. No output schema needed. Description covers purpose and basic behavior adequately. Could mention dialog type scope (e.g., any dialog) but not necessary.

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

Parameters3/5

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

Schema descriptions cover both parameters fully. Description adds no additional meaning or examples. Baseline 3 maintained due to high schema coverage.

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?

Description clearly states the verb 'Mark' and resource 'Telegram dialog' with specific action 'as unread (or clear the unread mark)'. It differentiates from sibling tools like telegram-mark-as-read and telegram-get-unread.

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 versus alternatives like telegram-mark-as-read or telegram-get-unread. The description assumes basic familiarity without providing context.

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

telegram-mute-chatA

Mute or unmute notifications for a Telegram chat. Set muted=true to mute (optionally with duration in seconds), muted=false to unmute

ParametersJSON Schema
NameRequiredDescriptionDefault
mutedYestrue to mute, false to unmute
chatIdYesChat ID or username
durationNoMute duration in seconds (only when muted=true, must be > 0). Omit to mute forever

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, consistent with a mutation. The description adds the duration option and the behavior of muting/unmuting. No contradictions, and the description provides adequate context beyond annotations.

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 purpose and includes usage instructions. Every word contributes to understanding, with no redundancy.

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

Completeness5/5

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

For a simple toggle tool with three parameters (all described) and no output schema, the description is fully complete. It covers the core action, parameter usage, and optional duration, leaving no ambiguity.

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

Parameters4/5

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

Schema description coverage is 100%, but the description still adds value by explaining the condition: duration is only applicable when muted=true. This reinforces and slightly extends the schema information.

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

Purpose5/5

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

The description clearly states the action: 'Mute or unmute notifications for a Telegram chat.' It uses a specific verb ('mute') and identifies the resource ('notifications for a Telegram chat'), making it distinct from sibling tools like archive, pin, or block.

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?

The description provides explicit guidance: 'Set muted=true to mute (optionally with duration in seconds), muted=false to unmute.' It explains how to use the boolean and the optional duration parameter, though it does not explicitly mention when not to use this tool or compare with alternatives.

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

telegram-pin-chatA

Pin or unpin a Telegram dialog in the dialog list

ParametersJSON Schema
NameRequiredDescriptionDefault
pinYestrue to pin, false to unpin
chatIdYesChat ID or username

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate mutability (readOnlyHint=false) and side effects (openWorldHint=true), which align with the description. However, the description adds no behavioral details beyond what annotations already convey, such as effects on dialog order or confirmation of success.

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, clear sentence with no redundant words, making it efficient and front-loaded.

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 description covers the basic action but lacks details on return values, error conditions, or side effects. Without an output schema, a brief note on what the tool returns would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add meaning beyond the schema's parameter descriptions ('true to pin, false to unpin' for pin; 'Chat ID or username' for chatId).

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

Purpose5/5

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

The description clearly states the verb ('Pin or unpin') and the resource ('a Telegram dialog in the dialog list'), making it distinct from sibling tools like telegram-pin-message (which pins a message) and telegram-toggle-story-pinned.

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 description implies usage (when you want to pin/unpin a dialog) but provides no explicit guidance on when to use this tool versus alternatives (e.g., telegram-pin-message) or conditions (e.g., required permissions).

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

telegram-pin-messageB

Pin a message in a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
silentNoPin without notification
messageIdYesMessage ID to pin

TDQS

B3.3/5.0
Behavior2/5

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

Description states the action but does not reveal behavioral traits beyond what annotations already indicate. Annotations show readOnlyHint=false (write operation), but description lacks details like notification effects, permission requirements, or whether pinning replaces an existing pin. No contradiction with annotations.

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?

Single sentence with no wasted words. Purpose is front-loaded and immediately clear. Perfectly concise for a simple action.

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, single-action tool, the description is minimally adequate. However, it lacks details about side effects (e.g., limits on pins per chat) and return behavior. Given the presence of an output schema and sibling tools, some additional context would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the schema itself provides parameter descriptions for all three fields. The tool description adds no additional meaning beyond the schema. Since coverage is high, the baseline score is 3.

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?

Description clearly states the action ('pin') and the resource ('a message in a Telegram chat'), directly matching the tool name. It distinguishes from siblings like 'telegram-unpin-message' and 'telegram-pin-chat', which serve different purposes.

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?

Description provides no guidance on when to use this tool versus alternatives. No mention of prerequisites (e.g., admin rights), when not to use (e.g., already pinned message), or comparison to similar tools like 'telegram-pin-chat'.

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

telegram-press-buttonA

Press an inline keyboard callback button on a message. Identify the button by (row, column) from its replyMarkup, or pass raw callback_data as base64. URL, switch-inline, game and 2FA-password buttons are rejected with a clear error. Returns the bot's callback answer: {alert?, hasUrl?, nativeUi?, message?, url?, cacheTime}

ParametersJSON Schema
NameRequiredDescriptionDefault
rowNoButton row index (0-based) โ€” required unless data is provided
dataNoRaw callback_data as base64 string (escape hatch โ€” prefer row/column)
chatIdYesChat ID or username where the message lives
columnNoButton column index (0-based) โ€” required unless data is provided
messageIdYesMessage ID whose inline button to press

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses that the tool is a write operation (presses buttons), which aligns with annotations (readOnlyHint=false). It adds behavioral context about rejected button types and the return format, going beyond what annotations provide.

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 two sentences, efficient and well-structured. The first sentence front-loads the core action, the second covers constraints and return value, with no wasted words.

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

Completeness5/5

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

Despite no output schema, the description fully explains the return value and constraints (rejected button types). It covers both invocation methods and provides enough context for the agent to use 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?

With 100% schema coverage, the description adds moderate value by explaining that row/column are 0-based and that data is an escape hatch. This clarifies usage but does not significantly enhance understanding beyond the schema.

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

Purpose5/5

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

The description clearly states it presses an inline keyboard callback button on a message, differentiating it from sibling tools like telegram-get-message-buttons. It specifies the verb 'press' and the resource 'inline keyboard callback button', making the purpose unambiguous.

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?

The description explains two methods (row/column or raw base64) and notes that URL, switch-inline, game, and 2FA-password buttons are rejected, providing clear when-not guidance. However, it does not explicitly mention when to use alternatives among siblings, so it lacks full usage context.

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

telegram-rate-transcriptionB

Rate transcription quality (good/poor) to improve Telegram speech-to-text.

ParametersJSON Schema
NameRequiredDescriptionDefault
goodYestrue = good quality, false = poor quality
chatIdYesChat ID or username
messageIdYesMessage ID of the voice or video note
transcriptionIdYesTranscription ID returned by telegram-transcribe-audio

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate readOnlyHint: false (write operation) and openWorldHint: true, but the description adds no behavioral details beyond implying improvement. It fails to disclose side effects, whether changes are reversible, or any 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.

Conciseness4/5

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

The description is a single, front-loaded sentence that efficiently conveys the core purpose. It is appropriately concise for a simple rating action, though could benefit from a brief note on prerequisites.

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 tool with 4 required parameters and no output schema, the description lacks important context such as what happens after a rating (e.g., does it affect future transcriptions?), the validity requirements for transcriptionId, and potential errors. The completeness is minimal for an agent to use 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?

Schema coverage is 100% with descriptions for all 4 parameters. The tool description adds no additional parameter context beyond what the schema already provides, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly specifies the verb 'Rate', the resource 'transcription quality', and the purpose 'to improve Telegram speech-to-text'. It distinguishes from sibling tools like 'telegram-transcribe-audio' and 'telegram-get-transcription' by focusing on feedback.

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 does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites (e.g., needing a transcriptionId from 'telegram-transcribe-audio'). No when-not or exclusion criteria are given.

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

telegram-react-to-storyA

React to a story with an emoji, or remove the current reaction by passing ''.

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYesReaction emoji. Empty string '' removes the reaction.
chatIdYesPeer who posted the story
storyIdYesStory ID to react to
addToRecentNoAdd emoji to your recently used reactions

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false). The description adds the notable behavior of removing a reaction via empty string, which is not captured in annotations. No further behavioral details provided, but the tool is simple.

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?

Single sentence that efficiently conveys the tool's purpose and key usage nuance. No wasted words, perfectly front-loaded.

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 mutation tool with no output schema, the description covers core functionality. It does not explain effects of repeated reactions or error conditions, but given the simplicity, it is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100% and includes descriptions for all parameters. The description only repeats the emoji removal behavior, adding no new meaning to other parameters. Baseline 3 is appropriate.

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?

Description clearly states the tool reacts to a story with an emoji or removes the reaction by passing an empty string. It is specific to stories, distinguishing it from sibling tool 'telegram-send-reaction' which targets messages.

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?

The description provides a clear use case (react or remove) but does not explicitly contrast with alternatives or state when not to use. However, the story-specific nature implicitly guides selection.

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

telegram-read-messagesA
Read-only

Read recent messages from a Telegram chat with sender names, dates, media info, and reactions

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of messages to return
chatIdYesChat ID or username
maxDateNoUnix timestamp: only messages before this date
minDateNoUnix timestamp: only messages after this date
offsetIdNoMessage ID to start from (for pagination)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds that it returns sender names, dates, media info, and reactions, which adds some context. However, it does not disclose behavioral traits like ordering, pagination behavior, rate limits, or authentication needs.

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, efficient sentence that front-loads the purpose and includes key details. No unnecessary information.

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 read-only operation with 5 parameters and an existing output schema (though absent), the description provides the core purpose and included fields. It adequately covers the tool's function but could mention pagination or filtering briefly.

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

Parameters3/5

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

Schema description coverage is 100%, meaning all parameters have descriptions in the schema. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Read', the resource 'messages from a Telegram chat', and specifies what's included (sender names, dates, media info, reactions). Among many read-related sibling tools, this distinguishes itself by focusing on message content with those details.

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 explicit guidance on when to use this tool versus alternatives like search-messages or get-updates. It does not state prerequisites, when not to use it, or recommended scenarios.

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

telegram-read-storiesA

Mark stories as seen up to a given story ID (maxId, inclusive).

ParametersJSON Schema
NameRequiredDescriptionDefault
maxIdYesStories up to and including this ID will be marked seen
chatIdYesPeer whose stories to mark as seen

TDQS

A3.6/5.0
Behavior3/5

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

The description adds the constraint 'up to a given story ID (inclusive)' beyond the annotations, but it does not disclose additional behavioral traits such as side effects, authorization needs, or idempotency. Annotations already indicate readOnlyHint=false (write operation) and openWorldHint=true (possible side effects), so the description adds marginal value but is not misleading.

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 sentence that is clear, direct, and front-loaded. Every word is necessary; there is no wasted language. It succinctly communicates the action and the scope.

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?

Given the tool's simplicity (2 parameters, no output schema, no nested objects), the description is largely complete in explaining what the tool does. However, it lacks context about when to use it (e.g., after viewing stories) and fails to mention any return value or confirmation, which slightly reduces completeness. The high schema coverage compensates for the lack of output schema.

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

Parameters3/5

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

Schema description coverage is 100%โ€”both parameters (chatId, maxId) are already described in the input schema. The tool description only repeats 'maxId' without adding extra meaning or usage context. With high coverage, baseline is 3, and the description does not improve it.

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

Purpose5/5

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

The description clearly states that the tool marks stories as seen up to a given story ID (maxId). It uses a specific verb ('mark as seen') and resource ('stories'), and the scope ('up to a given story ID') is explicit. This distinguishes it from similar sibling tools like telegram-mark-as-read (which likely targets messages) and telegram-get-peer-stories (which retrieves stories).

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 guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as whether the stories must be viewed first, or that this tool is for marking seen rather than reading. No explicit alternatives are referenced, and the context signals show many sibling tools for stories and reads, but the description offers no differentiation.

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

telegram-read-topic-messagesA
Read-only

Read messages from a specific forum topic in a Telegram group

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of messages to return
chatIdYesChat ID or username
topicIdYesTopic ID (get from telegram-list-topics)
offsetIdNoMessage ID to start from (for pagination)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds no further behavioral context beyond 'Read messages', such as pagination behavior, rate limits, or what data is returned. It does not contradict annotations.

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 is concise and to the point.

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?

Despite the tool having 4 parameters and no output schema, the description omits important details like return format, pagination behavior, prerequisites (e.g., must be a group member), or any constraints. It is too minimal to be fully informative.

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

Parameters3/5

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

Schema coverage is 100% and all parameters have descriptions. The description does not add any additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool reads messages from a specific forum topic in a Telegram group, using a specific verb ('Read') and resource ('messages from a forum topic'). It distinguishes itself from sibling tools like telegram-read-messages which reads general messages, and telegram-list-topics which lists topics.

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 description implies the tool is for reading topic-specific messages but does not explicitly guide when to use it versus alternatives like telegram-read-messages or telegram-get-replies. No when-to-use, when-not-to-use, or prerequisite information is provided.

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

telegram-remove-adminB

Remove admin rights from a user in a supergroup or channel

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
userIdYesUser ID or username to demote

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate mutation (readOnlyHint=false). Description confirms write operation but lacks details on permissions needed, reversibility, or error handling.

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?

Single sentence, front-loaded with key action. Efficient but could slightly expand without losing 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?

Adequate for a simple action with 2 parameters and no output schema. However, lacks completeness in terms of usage context and behavioral details.

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

Parameters3/5

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

Schema already describes both parameters (chatId, userId) with 'Chat ID or username' and 'User ID or username to demote'. Description adds no additional meaning beyond the schema.

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?

Clearly specifies the action (remove admin rights) and the target resource (user in supergroup/channel). Distinguishes from sibling 'telegram-set-admin' which likely adds or modifies admin rights.

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 versus alternatives (e.g., telegram-set-admin, telegram-kick-user). No prerequisites or constraints mentioned.

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

telegram-reorder-foldersA

Reorder Telegram chat folders by specifying a new order of folder IDs. All existing custom folder IDs must be included.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderYesOrdered list of folder IDs (โ‰ฅ 2). Obtain IDs from telegram-get-chat-folders

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses mutation (reorder) and the constraint about including all custom folder IDs. However, it does not mention potential side effects (e.g., impact on system folders), error conditions for missing IDs, or whether the change is immediate. Annotations indicate openWorldHint=true, so additional context about external effects would be beneficial.

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 two sentences with no unnecessary words. It front-loads the action and follows with the critical constraint. Every sentence serves a 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 there is no output schema, the description does not explain what the tool returns (e.g., success indication, updated order). It also lacks details on idempotency, reversibility, or confirmation. For a simple reorder, this may be sufficient, but more completeness would enhance clarity.

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 covers the single parameter 'order' with full coverage (100%). The description adds value by specifying that IDs come from telegram-get-chat-folders and that all existing custom folder IDs must be included, which is not in the schema. This goes beyond the baseline of 3.

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

Purpose5/5

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

The description clearly states the verb (Reorder), resource (Telegram chat folders), and a key constraint (all existing custom folder IDs must be included). This distinguishes it from siblings like telegram-edit-folder (which modifies individual folder properties) and telegram-create-folder.

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 description provides an important requirement (all existing custom folder IDs must be included) and implicitly suggests using telegram-get-chat-folders to obtain IDs. However, it does not explicitly guide when to use this tool versus alternatives (e.g., when to use telegram-edit-folder instead) or when not to use it.

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

telegram-report-spamA

Report a chat as spam to Telegram

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username to report

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate non-read-only and open-world behavior. The description's statement 'Report a chat as spam to Telegram' is consistent but adds no extra behavioral context (e.g., that the report is sent to Telegram servers, or potential outcomes). It meets the minimum but does not enrich understanding beyond annotations.

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, focused sentence with no superfluous information. It is efficient and to the point.

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?

Given the simple operation (one parameter, no output schema), the description is sufficiently complete. It could mention that the report is sent to Telegram's servers, but overall it covers the essential information.

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

Parameters3/5

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

Schema description coverage is 100% with a clear description for chatId. The description does not add any additional meaning or examples beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('report') and resource ('chat as spam') that clearly defines the tool's action. It distinguishes the tool from sibling tools like telegram-block-user or telegram-ban-user, which are user-side actions, while this one reports to Telegram's spam system.

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 provided on when to use this tool versus alternatives such as blocking or banning. The description lacks context for appropriate usage scenarios, leaving the agent without decision-making support.

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

telegram-report-storyA

Report a story via the multi-step option flow. First call with option:'' starts the flow; subsequent calls pass the base64 option bytes from the previous response.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesStory IDs to report
chatIdYesPeer who posted the story
optionNoBase64-encoded option bytes from a prior report step, or empty string to start the flow
messageNoOptional message to accompany the report

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate non-read-only and open world. Description explains the multi-step flow, which adds behavioral context beyond annotations. However, it does not disclose side effects, success/failure behavior, or error handling.

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?

Two sentences, concise and front-loaded with purpose. Every sentence earns its place with no wasted words.

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 exists, so description should explain response structure to guide the multi-step flow. It mentions using base64 option bytes from previous response but doesn't describe the response format or error behavior. Incomplete for a multi-step tool.

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

Parameters3/5

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

Schema coverage is 100%. The description adds context for the 'option' parameter (explaining flow), but for other parameters (chatId, ids, message) it adds little beyond schema descriptions. Baseline 3, slight improvement for option explanation.

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?

Clearly states verb 'Report' and resource 'story', and mentions it uses a multi-step option flow. However, title is null and it doesn't explicitly distinguish from sibling report tools like telegram-report-spam, but the context of stories makes it distinct.

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?

Explicitly describes the multi-step process: first call with empty option starts flow, subsequent calls pass option bytes from previous response. Provides clear usage guidance, but does not mention when not to use or alternatives.

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

telegram-save-draftA

Save or clear a message draft for a chat. Pass empty text to clear the draft. Optional replyTo sets the message being replied to

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesDraft text. Empty string clears the draft
chatIdYesChat ID or username
replyToNoMessage ID this draft replies to

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, so the description's mention of saving or clearing aligns. However, no additional behavioral context (e.g., side effects, permissions) is disclosed beyond what annotations already provide.

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 extremely concise with two sentences covering the key functionality without superfluous words.

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 tool with 3 parameters and no output schema, the description covers the main actions (save/clear, replyTo). Minor lack: no mention of return value or error conditions, but overall adequate.

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

Parameters3/5

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

Schema coverage is 100% and all parameter descriptions are present. The description adds no new information beyond stating that empty text clears the draft and replyTo is optional, which are already in the schema. Baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the tool saves or clears a draft for a chat, which distinguishes it from related tools like telegram-get-drafts and telegram-clear-drafts. The verb and resource are specific.

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 description implies usage but does not explicitly guide when to use this tool versus alternatives such as telegram-clear-drafts or telegram-get-drafts. No 'when to use' or 'when not to use' is provided.

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

telegram-search-chatsA
Read-only

Search for Telegram chats, users, or channels by name or username. Returns description and member count

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
queryYesSearch query (name or username)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description adds the return context (description and member count). However, it does not disclose additional behavioral traits like pagination, sorting, or any limitations. The added value is modest.

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, concise sentence that front-loads the core purpose and return info. Every word is necessary and there is no fluff.

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?

Given no output schema, the description adequately states the return fields (description and member count). However, it could mention additional fields like chat ID or type for completeness, making it slightly above average but not perfect.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds minimal extra meaning beyond the schema fields. It confirms that query is for name/username and limit controls max results, but doesn't provide format details or examples. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool searches for Telegram chats, users, or channels by name or username, and specifies the return fields (description and member count). This is specific and distinguishes it from sibling tools like telegram-list-chats (lists all chats) and telegram-search-global (broader search).

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 description implies usage for finding specific chats/users/channels by name or username, but does not explicitly state when to use this tool vs alternatives like telegram-list-chats or telegram-search-messages. No exclusions or prerequisites are mentioned.

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

telegram-search-globalA
Read-only

Search messages globally across all public Telegram chats and channels

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
queryYesSearch text
maxDateNoUnix timestamp: only messages before this date
minDateNoUnix timestamp: only messages after this date

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by specifying the scope 'across all public Telegram chats and channels', clarifying that it does not access private chats. This provides useful behavioral context beyond the annotations.

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 sentence that directly communicates the tool's purpose with no unnecessary words. It is well-structured and front-loaded.

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 description covers the core functionality but does not mention the return format or pagination behavior. Given that there is no output schema, the agent may need more context about what results look like. It is adequate but not fully comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add much. It provides no additional parameter explanation beyond the schema's own descriptions. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Search', the resource 'messages', and the scope 'globally across all public Telegram chats and channels'. It effectively distinguishes this tool from siblings like 'telegram-search-messages' which likely operate within a specific chat context.

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 description implies that this tool is for global public search, but it does not explicitly state when to use it versus alternatives like 'telegram-search-messages' or other search-related tools. Instructions on prerequisites or exclusions are missing.

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

telegram-search-messagesA
Read-only

Search messages in a specific Telegram chat by text

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results
queryYesSearch text
chatIdYesChat ID or username
maxDateNoUnix timestamp: only messages before this date
minDateNoUnix timestamp: only messages after this date

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true, so the description adds no new behavioral traits. It correctly implies a read-only search but does not elaborate on pagination, result ordering, or 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.

Conciseness4/5

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

The description is a single, concise sentence that front-loads the core action. It is efficient with no extraneous words, though it could benefit from a brief mention of optional parameters or result 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?

Given 5 parameters and no output schema, the description is minimal. It explains the basic purpose but omits details like result format, ordering, or pagination. The schema covers parameters adequately, but the tool's completeness could be improved with a note on return structure.

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

Parameters3/5

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

Schema description coverage is 100% for 5 parameters. The description adds no additional meaning beyond 'by text', which is already captured by the query parameter. The date range and limit are not described in the description, but the schema already covers them.

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

Purpose5/5

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

The description clearly states the action 'Search messages', the resource 'in a specific Telegram chat', and the filter 'by text'. This is unique among sibling tools like telegram-search-global and telegram-search-chats, making the tool's purpose distinct and unambiguous.

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 description implies usage for text search within a specific chat but does not explicitly contrast with alternatives like telegram-search-global (global search) or telegram-search-sticker-sets. No when-not-to or prerequisites are mentioned.

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

telegram-search-sticker-setsA
Read-only

Search for sticker sets by name or keyword. Returns matching sticker pack names that can be used with telegram-get-sticker-set

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (e.g. 'cat', 'love', 'pepe', 'anime')

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and external search. The description adds only that it returns 'matching sticker pack names' but does not elaborate on pagination, limits, or handling of no results. No additional behavioral details are provided beyond annotations.

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 efficiently conveys the purpose and links to a related tool. Every word earns its place with no redundancy or fluff.

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 search tool with no output schema, the description adequately explains the return value ('matching sticker pack names') and provides a usage hint. It is complete for the tool's complexity, though it could optionally mention fuzzy matching or case sensitivity.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'query', which includes examples. The tool description reinforces that the query searches by 'name or keyword', but adds no new syntax or format details beyond the schema. Given high coverage, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('search'), the resource ('sticker sets'), and the input type ('by name or keyword'). It also mentions the output (matching sticker pack names) and references a sibling tool for further use, distinguishing it from related tools like telegram-get-installed-stickers.

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 description implicitly suggests usage for discovery before using telegram-get-sticker-set, but does not explicitly state when to prefer this tool over alternatives (e.g., telegram-get-installed-stickers, telegram-search-global). No explicit exclusions or conditions are provided.

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

telegram-send-albumA

Send an album (group) of 2-10 photos as a single grouped message. Media type is auto-detected by file extension โ€” videos are supported by the underlying TL call but are not covered by v1.29.0 mock tests, so uniform-photo albums are the safer choice until a live checkpoint. Uploads are serial per item: expect โ‰ˆ4-10s for 10 mid-size photos, 15-40s for 10 large videos. Prefer โ‰ค5 items or photos when low latency matters.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of media items (2-10)
chatIdYesChat ID or username
captionNoAlbum-level caption (attached to the first item โ€” shown in the collapsed view)
replyToNoMessage ID to reply to
topicIdNoForum topic ID
parseModeNoCaption format (applies to all captions)

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses that media type is auto-detected, uploads are serial per item with time estimates, and videos are not fully tested. This adds significant behavioral context beyond the annotations (readOnlyHint=false, openWorldHint=true) which only indicate mutation and external interaction.

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 four sentences long, front-loaded with the core purpose, and efficiently includes caveats and performance advice without superfluous text.

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?

Given the tool's complexity (6 params, no output schema), the description covers purpose, constraints, behavior, and usage advice. It lacks error handling details or return values, but these are partially compensable by the good schema and annotations.

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

Parameters4/5

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

Schema documentation coverage is 100%, so the schema already describes parameters. The description adds value by noting auto-detection of media type and performance characteristics, which are not in the schema. However, it does not elaborate on each parameter beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'Send', the resource 'album', and specifies it is for a group of 2-10 photos as a single grouped message. This distinguishes it from sibling tools like telegram-send-message or telegram-send-file which handle single items.

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?

The description advises on when to use this tool (for albums) and provides context: prefer โ‰ค5 items for low latency, avoid videos until tested. It does not explicitly contrast with siblings but gives practical usage recommendations.

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

telegram-send-contactB

Send a contact card (phone number + name) to a Telegram chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number in E.164-like format โ€” 6-15 digits, optional leading +. Note: sent as-is; Telegram shows the number to the recipient.
vcardNoOptional vCard v3.0 text content
chatIdYesChat ID or username
replyToNo
topicIdNo
lastNameNoContact last name
firstNameYesContact first name

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, implying a write operation with possible side effects. The description adds that it sends a contact card, but does not disclose that the phone number is shown to the recipient (though this is noted in the phone parameter schema). It does not contradict annotations, but adds minimal behavioral context beyond them.

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 is front-loaded with the core purpose. Every word is necessary and there is no extraneous information.

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 tool with 7 parameters and no output schema, the description is too brief. It does not explain the behavior of optional parameters, return value, or side effects beyond the basic action. More detail is needed for an agent to use it 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?

Schema description coverage is 71% (5 of 7 parameters have descriptions). The description references phone number and first name, but does not explain optional parameters like vcard, replyTo, topicId, or lastName. It adds no meaning beyond the schema, so baseline 3 is appropriate.

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 clearly states the verb 'send' and the resource 'contact card (phone number + name)' to a Telegram chat. It distinguishes from siblings like 'telegram-send-message' by specifying the type of content, but does not explicitly differentiate from 'telegram-add-contact'.

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 provided on when to use this tool versus alternatives like 'telegram-send-message' or 'telegram-add-contact'. There is no mention of prerequisites or exclusions.

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

telegram-send-diceA

Send an animated dice/game emoji to a Telegram chat. Returns the server-rolled value โ€” useful for games, coin-flips, random picks. Values: ๐ŸŽฒ๐ŸŽฏ๐ŸŽณ = 1-6, ๐Ÿ€โšฝ = 1-5, ๐ŸŽฐ = slot combo 1-64.

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiNoDice emoji: ๐ŸŽฒ dice (1-6), ๐ŸŽฏ dart (1-6), ๐ŸŽฐ slot machine (1-64), ๐Ÿ€ basketball (1-5), โšฝ football (1-5), ๐ŸŽณ bowling (1-6)๐ŸŽฒ
chatIdYesChat ID or username
replyToNo
topicIdNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations (readOnlyHint=false) indicate mutation, and description adds that the action triggers a server-side dice roll and returns the value. Lists value ranges per emoji, which is behavioral detail not in annotations.

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?

Two sentences: first states the action, second provides value ranges and use cases. No wasted words, front-loaded with purpose.

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?

Covers main action, return value, and parameter choices. Could mention that it sends a message (implied) or chat type restrictions, but with openWorldHint and no output schema, it is sufficiently complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 50%, and description adds meaning by explaining emoji values and ranges. However, other parameters (replyTo, topicId) have no extra info, relying on schema documentation. The description partially compensates for the gap.

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?

Description clearly states the action (send animated dice/game emoji) and the result (returns server-rolled value). Unambiguously differentiates from sibling tools like send-message or send-sticker by specifying the dice/game aspect.

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?

Explicitly states the tool is for games, coin-flips, random picks, providing clear use context. Does not mention when not to use it or alternatives, but the given context is sufficient for appropriate selection.

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

telegram-send-fileA

Send a file (photo, document, video, etc.) to a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
captionNoFile caption
filePathYesAbsolute path to file

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already indicate that the tool is not read-only (readOnlyHint=false) and has open world semantics. The description adds minimal context beyond that, such as the file types, but does not disclose potential behaviors like file size limits, required permissions, or error scenarios. The description is adequate but does not significantly enhance transparency.

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, compact sentence (13 words) that immediately conveys the primary action. It is front-loaded with the verb and resource, and every word adds value. No unnecessary information is included.

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?

Given the tool has only 3 parameters and no output schema or nested objects, the description covers the essential purpose and file types. It does not explain return values (e.g., the sent message object), but for a simple file send operation, the description is reasonably complete. A minor gap is the lack of mention that the file must exist locally.

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 already has 100% description coverage for all three parameters. The description adds a list of file types (photo, document, video, etc.), which provides some additional context for the filePath parameter, but it does not elaborate on chatId format or caption usage. Baseline score of 3 is appropriate as the description offers marginal added value over the schema.

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

Purpose5/5

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

The description explicitly states the action 'Send a file' and specifies the resource 'to a Telegram chat'. It lists example file types (photo, document, video, etc.), which clarifies the scope and distinguishes it from sibling tools like telegram-send-message or telegram-send-voice.

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 provided on when to use this tool versus alternatives. For instance, it does not explain when to prefer telegram-send-file over telegram-send-album or telegram-send-document. The description lacks explicit 'when not to use' or context about prerequisites.

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

telegram-send-locationA

Send a geographic location to a Telegram chat. Static pin by default; set livePeriod to share a live-updating location for N seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
headingNoDirection the user is heading, 1-360 degrees (meaningful only for live locations)
replyToNoMessage ID to reply to
topicIdNoForum topic ID
latitudeYesLatitude in decimal degrees (-90 to 90)
longitudeYesLongitude in decimal degrees (-180 to 180)
livePeriodNoIf set, sends a live location updated for N seconds (60-86400). Omit for static pin.
accuracyRadiusNoHorizontal accuracy radius in meters (0 = unknown)
proximityRadiusNoAlert radius for proximity notification in meters (live only)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag write operation. Description adds: default static, livePeriod enables live sharing. Does not detail return behavior or permissions, but covers key behavioral nuance.

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?

Two sentences, no wasted words. Main action front-loaded, live variation clearly explained.

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?

Given 170+ siblings and a fully documented schema, the description is sufficient. No output schema but parameters are self-explanatory. Missing return value info but acceptable.

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?

Input schema covers all 9 parameters with descriptions; description adds no new parameter meaning beyond reiterating livePeriod purpose. Baseline 3 is appropriate.

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?

Description clearly states the action ('send a geographic location'), target ('Telegram chat'), and distinguishes between static and live location via 'livePeriod'. No ambiguity among sibling send tools.

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?

Implicitly when to use (sharing a location). Does not explicitly mention when not to use or compare with 'telegram-send-venue', but the parameter description of 'livePeriod' provides context for choosing static vs live.

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

telegram-send-messageA

Send a message to a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text
chatIdYesChat ID or username (e.g. @username or numeric ID)
effectNoOptional message effect ID (numeric string, up to 19 digits). Premium animated effect attached to the message.
replyToNoMessage ID to reply to
topicIdNoForum topic ID to send message into (for groups with Topics enabled)
parseModeNoMessage format: md (Markdown) or html
quoteTextNoOptional excerpt from the replied-to message to show as a quote above your reply. Requires `replyTo` to be set. Must be a verbatim substring of the original message text.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate non-readonly and open-world, so description adds minimal behavioral info; no contraindications or side effects mentioned.

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?

Single sentence, front-loaded with the tool's purpose, no wasted words.

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?

Lacks details on return values, common usage patterns, or prerequisites like bot permissions, given the tool has 7 parameters and no output schema.

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?

All parameters are already described in the schema (100% coverage), so the description adds no extra meaning beyond what's in the schema.

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

Purpose5/5

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

The description clearly states the action (send) and the resource (message) to a Telegram chat, which differentiates it from sending other types like files or stickers.

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?

No explicit guidance on when to use this tool versus alternatives like send-album or send-sticker, though the context makes it implied for basic text messages.

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

telegram-send-paid-reactionA

Send a paid reaction (โ˜… Stars) on a channel post. Stars are spent from your balance. Optional private flag controls leaderboard visibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of Stars to send (1-2500)
chatIdYesChat ID or username (channel)
privateNotrue = anonymous on leaderboard, false = show name, omit = use account default
messageIdYesMessage ID of the channel post

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate mutability (readOnlyHint=false) and side effects (openWorldHint=true). The description adds valuable context: Stars are debited from the balance, and the private flag affects leaderboard visibility. This goes beyond annotations.

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?

Two sentences with no filler. The core action is front-loaded, followed by the key constraint (Stars spending) and optional flag effect. Every phrase adds value.

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 the tool's cost implications (Stars), the description lacks details about error handling (e.g., insufficient balance), return values, or confirmation. While parameters are covered, the absence of output schema and minimal completeness bring this to a 3.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds explanatory context: 'count' is tied to Stars spending, and 'private' flag controls leaderboard anonymity. This helps an agent understand parameter semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Send a paid reaction'), the target resource ('channel post'), and the mechanism ('Stars are spent from your balance'). It distinguishes this from the sibling 'telegram-send-reaction' by specifying 'paid' and referencing Stars.

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 description implies when to use this tool (for paid reactions) but does not explicitly compare with alternatives like 'telegram-send-reaction' for free reactions. No when-not-to-use or prerequisites are mentioned.

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

telegram-send-reactionA

Send emoji reaction(s) to a message. Supports multiple reactions and adding to existing ones. Omit emoji to remove all reactions

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiNoReaction emoji(s): single '๐Ÿ‘' or array ['๐Ÿ‘','๐Ÿ”ฅ']. Omit to remove all reactions
chatIdYesChat ID or username
messageIdYesMessage ID to react to
addToExistingNoIf true, add reaction(s) to existing ones instead of replacing

TDQS

A4.5/5.0
Behavior4/5

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

Describes behaviors beyond annotations: supports multiple reactions, adding to existing, and removal by omitting emoji. Annotations already indicate mutation (readOnlyHint=false) and open world, so description adds useful 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?

Two concise sentences. Front-loaded with primary action. No redundant wording. Every sentence adds essential information.

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?

Covers main use cases and parameter behavior. Lacks mention of prerequisites (e.g., being a chat member) or error conditions, but acceptable for a simple tool with comprehensive schema and annotations.

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

Parameters5/5

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

Schema descriptions already cover all 4 parameters. Description adds key behavior: omitting emoji removes all reactions, which is not explicit in the schema. This adds significant value.

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?

Description clearly states the action (send emoji reaction), target (message), and supports multiple reactions, adding to existing, and removal. Distinct from sibling tools like telegram-send-paid-reaction and telegram-react-to-story.

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?

Provides clear context on usage (multiple reactions, add to existing, omit emoji to remove all). Does not explicitly exclude use cases or compare with alternatives, but a solid guideline is given.

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

telegram-send-scheduledA

Send a scheduled message to a Telegram chat. The message will be delivered at the specified time by Telegram servers

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text
chatIdYesChat ID or username (use 'me' or 'self' for Saved Messages)
replyToNoMessage ID to reply to
parseModeNoMessage format: md (Markdown) or html
scheduleDateYesUnix timestamp when to send the message (must be in the future)

TDQS

A3.9/5.0
Behavior4/5

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

No contradiction with annotations (readOnlyHint=false). The description adds context that the message is delivered by Telegram servers at a specified time, going beyond the bare mutation hint. However, it does not disclose potential failure modes or side effects.

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 two clear sentences, front-loaded with the main purpose, and contains no extraneous 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?

For a simple scheduled message tool, the description is minimally complete but lacks information about return values, error behavior, or confirmation of successful scheduling.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter information beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb ('send'), the resource ('scheduled message'), and the mechanism ('delivered at the specified time'). It distinguishes from siblings like telegram-send-message by emphasizing the scheduling aspect.

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 description implies usage for delayed messaging but provides no explicit guidance on when to use this tool over alternatives like telegram-send-message, nor does it mention prerequisites or when not to use it.

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

telegram-send-stickerA

Send a sticker from a sticker set to a chat. First use telegram-get-sticker-set to browse available stickers and find the index

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex of the sticker in the set (0-based, get from telegram-get-sticker-set)
chatIdYesChat ID or username
replyToNoMessage ID to reply to
stickerSetYesShort name of the sticker set (e.g. 'HotCherry')

TDQS

A4.3/5.0
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false) and an open world (openWorldHint=true). The description confirms the write nature but adds no further behavioral details beyond the action. With annotations covering the basic safety profile, the description is adequate.

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?

Two sentences: the first clearly states the tool's purpose, the second provides essential usage guidance. No extraneous information.

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

Completeness5/5

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

For a tool with fully documented parameters, no output schema, and straightforward behavior, the description is complete. It covers the core action and the prerequisite, leaving no 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?

All parameters are documented in the schema (100% coverage). The description adds context by explaining how to obtain the index parameter using telegram-get-sticker-set, adding value beyond the schema.

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

Purpose5/5

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

The description clearly states the action (send a sticker), the target resource (a sticker from a sticker set), and the destination (chat). It also distinguishes from siblings by specifying the dependency on telegram-get-sticker-set.

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?

The description explicitly instructs the agent to first use telegram-get-sticker-set to find the index, providing clear prerequisite context. It lacks explicit when-not-to-use guidance but adequately guides the agent toward proper use.

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

telegram-send-storyA

Publish a new story (photo or video) to your profile or a channel you manage. Privacy: everyone/contacts/close_friends/selected (allowUserIds required for 'selected'). MediaAreas not supported in this version.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOverride auto-detected media type
chatIdNoPeer to post the story to โ€” 'me', @username, or numeric IDme
periodNoStory lifetime in seconds: 21600=6h, 43200=12h, 86400=24h (default), 172800=48h
pinnedNoKeep the story in the profile highlights after expiry
captionNoStory caption (max 2048 chars)
privacyNoWho can see the storyeveryone
filePathYesAbsolute path to the photo or video file to upload
parseModeNoCaption parse mode: md or html
noforwardsNoPrevent others from forwarding or saving the story
allowUserIdsNoRequired when privacy='selected': numeric user IDs allowed to see the story
disallowUserIdsNoUser IDs explicitly blocked from seeing the story (ignored for privacy='selected')

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (write) and openWorldHint=true (dynamic). The description adds behavioral details: privacy settings, requirement of allowUserIds for 'selected', and the limitation that MediaAreas are not supported. This adds value beyond annotations, though it could mention side effects like story visibility.

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?

Two sentences with no wasted words. First sentence states the core purpose; second adds privacy hint and limitation. Front-loaded and efficient.

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?

With no output schema, the description covers media types, privacy options, and a limitation. It does not describe return behavior (e.g., success response or story ID), but overall it is fairly complete given the tool's complexity and existing schema documentation.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description repeats the allowUserIds constraint already in the schema (required when privacy='selected'). No additional parameter meaning is provided beyond what's in the schema, hence score 3.

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

Purpose5/5

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

The description clearly states the action (publish), resource (story, photo/video), and target (profile or channel). It distinguishes from siblings like edit-story or delete-stories by focusing on publication. Specific privacy options are listed, and a limitation (MediaAreas not supported) is noted, making the purpose unambiguous.

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?

The description implies usage context (publishing stories) but does not explicitly compare to alternatives like send-message or send-file. Given that it's the only story publication tool among siblings, the context is clear. However, explicit when-to-use and when-not-to-use guidance is missing.

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

telegram-send-typingA

Send a typing/upload indicator to a Telegram chat (or cancel it)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoTyping action to broadcasttyping
chatIdYesChat ID or username

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, confirming mutation. The description adds the ability to cancel the indicator. No further behavioral details provided, but given annotations, it is adequate.

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, efficient sentence that immediately conveys the core action and resource. No extraneous information.

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

Completeness5/5

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

For a simple two-parameter tool with no output schema, the description is sufficient. It covers the essential purpose and the cancellation capability.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description implicitly mentions the action parameter via 'typing/upload indicator' and 'cancel', but adds minimal extra meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'send' or 'cancel' and the resource 'typing/upload indicator' to a Telegram chat. It distinguishes from siblings like telegram-send-message by focusing on indicators.

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?

No explicit when-to-use or when-not-to-use guidance is given. However, the purpose is specific enough that an AI agent can infer its usage context, but it lacks clear alternatives or exclusions.

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

telegram-send-venueB

Send a venue card (point-of-interest with title and address) to a Telegram chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesVenue name (e.g. 'Red Square')
chatIdYesChat ID or username
addressYesStreet address
replyToNo
topicIdNo
venueIdNoProvider-specific venue ID
latitudeYesVenue latitude
providerNoData provider โ€” typically 'foursquare' or 'gplaces'. Defaults to 'foursquare'.
longitudeYesVenue longitude
venueTypeNoProvider-specific venue type category

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate write operation but description does not disclose side effects, auth requirements, or constraints. With openWorldHint true, more behavioral context is needed.

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?

Single clear sentence, no extraneous information, front-loaded with key 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 10 parameters and no output schema, description lacks detail on optional params, response, and error conditions. Incomplete for nuanced usage.

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

Parameters3/5

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

Schema coverage is 80%, so description adds little beyond naming required params. Optional params like replyTo, provider are not explained in description.

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

Purpose5/5

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

Describes action 'send', resource 'venue card', and context 'to a Telegram chat'. Clearly distinguishes from siblings like telegram-send-location.

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 vs alternatives such as telegram-send-location or telegram-send-contact. Description lacks exclusions or context for usage.

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

telegram-send-video-noteB

Send a video note (round-shaped short video) to a Telegram chat. Shows as a circular video in the UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
lengthNoFrame edge length in pixels (the circle is square-cropped)
replyToNoMessage ID to reply to
topicIdNoForum topic ID
durationNoDuration in seconds (Telegram caps at 60)
filePathYesAbsolute local filesystem path to video file (MP4 preferred, square source recommended for best look). URLs are rejected.

TDQS

B3.3/5.0
Behavior2/5

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

Description adds minimal behavioral context beyond annotations. Does not disclose side effects, error handling, permission requirements, or constraints like file existence or size limits beyond what's in schema.

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?

Extremely concise with two sentences, front-loaded with the core action. No redundant words.

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?

Adequately explains the tool's purpose but lacks details on return values, error scenarios, or side effects. For a mutation tool with openWorldHint, more complete context would be beneficial.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add parameter-specific meaning beyond explaining what a video note is, which is already implied by the tool name.

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

Purpose5/5

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

The description clearly specifies the verb 'send' and resource 'video note', with additional details like 'round-shaped' and 'circular video', making the tool's purpose unambiguous and distinct from siblings like send-file or send-message.

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 (e.g., send-file for non-circular videos). No prerequisites or context for selection are provided.

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

telegram-send-voiceA

Send a voice note (audio recording) to a Telegram chat. Shows as a voice message with waveform UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username (e.g. @username or numeric ID)
captionNoOptional caption shown below the voice note
replyToNoMessage ID to reply to
topicIdNoForum topic ID (for groups with Topics enabled)
filePathYesAbsolute local filesystem path to audio file (OGG/Opus preferred; M4A/MP3 also accepted). URLs are rejected.
parseModeNoCaption format: md (Markdown) or html

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate a write operation with potential side effects. The description adds that it shows as a voice message with waveform UI, providing useful context about the presentation. No contradictory info.

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?

Two concise sentences, front-loaded with the core action and a key behavioral detail. No unnecessary words.

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 exists, and the description does not mention what the tool returns (e.g., message object). This omission reduces completeness for agent understanding of the result.

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

Parameters3/5

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

Schema coverage is 100%, so the schema itself documents parameters well. The description does not add additional meaning beyond stating the tool sends a voice note, which is adequate but not enhanced.

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

Purpose5/5

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

The description clearly states the tool sends a voice note to a Telegram chat, which is a specific action. It distinguishes from sibling tools like telegram-send-file or telegram-send-video-note by mentioning the voice note format and waveform UI.

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?

The description implies usage for voice notes but does not provide explicit guidance on when not to use it (e.g., for other audio formats that should be sent as files). However, the purpose is clear enough for agents to differentiate.

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

telegram-set-adminA

Promote a user to admin in a supergroup or channel with full permissions

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoCustom admin title
chatIdYesChat ID or username
userIdYesUser ID or username to promote

TDQS

A3.5/5.0
Behavior3/5

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

Annotations are minimal (readOnlyHint false, openWorldHint true). Description notes 'full permissions' but does not disclose side effects, authorization needs, or behavior if user already admin.

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?

Single sentence, front-loaded with verb, no wasted words.

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 for a simple tool, but no output schema and missing details like return value or error conditions.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for all parameters. Description adds no extra meaning beyond schema.

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?

Clearly states the action (promote), target (user to admin), and scope (supergroup or channel with full permissions). Distinguishes from siblings like telegram-remove-admin.

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 vs alternatives, no prerequisites or exclusions. Lacks context from sibling tools.

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

telegram-set-auto-deleteA

Set auto-delete timer for messages in a chat. Common values: 86400 (1 day), 604800 (1 week), 2592000 (1 month). Use 0 to disable

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
periodYesAuto-delete period in seconds. 0 = disable. Common: 86400 (1d), 604800 (1w), 2592000 (1mo)

TDQS

A3.8/5.0
Behavior2/5

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

Annotations indicate a write operation (readOnlyHint=false) and open world, which the description confirms. However, the description adds no further behavioral context such as permissions, reversibility, or effect on existing messages.

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 exceptionally concise with two sentences, no redundancy. The purpose is stated first, followed by practical examples.

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?

Given the tool's simplicity with only two parameters and no output schema, the description adequately covers purpose and common usage. It lacks detail on effects or prerequisites but is satisfactory for a straightforward task.

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 covers both parameters with descriptions. The description adds meaningful examples for the 'period' parameter, such as common durations and how to disable, which enhances understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('set auto-delete timer'), the resource ('messages in a chat'), and provides common values. It is specific and distinct from sibling tools.

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 description gives examples of common values but does not explicitly state when to use this tool vs alternatives, or provide conditions for use. The instruction to use 0 to disable is helpful but limited.

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

telegram-set-birthdayA

Set your birthday in your Telegram profile. Year is optional (omit to hide age). Pass clear=true to remove birthday. Requires day and month unless clearing.

ParametersJSON Schema
NameRequiredDescriptionDefault
dayNoDay of month (1-31)
yearNoYear (optional โ€” omit to hide age)
clearNoPass true to remove birthday from profile
monthNoMonth (1-12)

TDQS

A4.2/5.0
Behavior3/5

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

Description adds context beyond annotations: it explains the effect year omission has on age display and the clearing behavior. However, it does not discuss potential side effects or limitations (e.g., only works for own profile). Annotations already indicate it's a write operation with open world hint, so description is adequate but not exhaustive.

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?

Two sentences, no redundant words, information is well-organized and easy to parse. Every sentence adds value.

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?

Given no output schema and simple parameters, the description covers all necessary aspects: setting, clearing, and optional year. It doesn't explain return value but that is likely standard. No obvious 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?

Input schema already has 100% coverage with descriptions, but the description adds extra meaning: 'Year is optional (omit to hide age)' and 'clear=true to remove birthday. Requires day and month unless clearing.' This clarifies conditional requirements beyond the schema.

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?

Description clearly states the tool sets or clears a birthday on a Telegram profile, with specific details about year optionality and clearing mechanism. It is distinct from sibling profile tools like telegram-update-profile or telegram-set-profile-color, which are more general.

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?

Explicitly tells when to use clear=true and that year is optional. Also states day and month are required unless clearing. Could be improved by mentioning when not to use (e.g., if you need to set full profile via another tool), but the guidance is clear enough.

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

telegram-set-business-awayA

Set Telegram Business away message โ€” auto-reply when you are offline or outside work hours. Uses a quick reply shortcut as template. Requires Telegram Business subscription. Pass clear=true to disable.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoPass true to disable away message
audienceNoWho receives the away messageall_new
customToNoFor schedule=custom: Unix timestamp range end
scheduleNoWhen to send: always (any time offline), outside_hours (based on business hours), custom (time range)outside_hours
customFromNoFor schedule=custom: Unix timestamp range start
shortcutIdNoQuick reply shortcut ID used as the away message template
offlineOnlyNoSend only when you appear offline (true) or regardless of online status (false)
excludeUsersNo
includeUsersNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate mutability and open-world side effects. Description adds that it uses a quick reply shortcut as template, and clear=true disables it. No contradiction.

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?

Three concise sentences front-loaded with purpose, no unnecessary words.

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?

With 9 parameters and no output schema, description covers main behavior and prerequisites. Lacks detail on return value but sufficient for selection.

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

Parameters3/5

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

Schema coverage is high (78%), so baseline of 3. Description only mentions clear=true and shortcut template; schema already documents all parameters well.

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?

Description clearly states the tool sets a Telegram Business away message for auto-reply when offline or outside work hours. It distinguishes from siblings like telegram-set-business-greeting and telegram-set-business-intro.

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?

Offers clear guidance: requires Business subscription, how to disable with clear=true, and context for use. Could be improved by explicitly stating when not to use, but adequate.

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

telegram-set-business-greetingA

Set Telegram Business greeting message โ€” auto-reply sent to new conversations using a quick reply shortcut as template. Requires Telegram Business subscription. Pass clear=true to disable.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoPass true to disable greeting message
audienceNoWho receives the greeting: all_new (new contacts+non-contacts), contacts_only, non_contacts, existing_onlyall_new
shortcutIdNoQuick reply shortcut ID (from telegram-get-quick-replies) used as the greeting template
excludeUsersNoUsernames/IDs to exclude โ€” overrides audience. Cannot be combined with includeUsers.
includeUsersNoAdditional usernames/IDs to always include
noActivityDaysNoSend greeting if user has been inactive for N days

TDQS

A4/5.0
Behavior3/5

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

The description adds behavioral information beyond annotations: it requires a subscription and can clear the greeting. Annotations already indicate this is a write operation (readOnlyHint=false). The description does not cover potential side effects or limits, but the combination is adequate for a mutation 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?

The description is exceptionally concise: two sentences that front-load the purpose, include key constraints (subscription), and a special flag (clear). No unnecessary words or repetitions.

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?

Given the moderate complexity (6 parameters all well-documented in schema, no output schema, annotations present), the description covers the main intent and constraints. It lacks details about overriding existing greetings or interaction with quick replies, but overall it's complete enough for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains all parameters. The description adds minimal extra meaning by mentioning 'quick reply shortcut as template' and 'auto-reply to new conversations', which contextualizes shortcutId and audience, but not enough to exceed the baseline.

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

Purpose5/5

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

The description clearly states the tool's purpose: setting a Telegram Business greeting message, which is an auto-reply sent to new conversations using a quick reply shortcut. It distinguishes from sibling tools like telegram-set-business-away and telegram-set-business-intro by specifying it's for greetings.

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?

The description mentions the requirement of a Telegram Business subscription and the clear flag to disable, providing context for usage. However, it does not explicitly compare to other business setting tools or state when not to use, but the context is sufficient for an agent to infer appropriate use.

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

telegram-set-business-hoursA

Set Telegram Business work hours โ€” days and time ranges when your business is open. Requires Telegram Business subscription. Pass clear=true to disable the work hours display entirely.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoPass true to remove business hours entirely
openNowNoManually override current open/closed status. Omit to derive from schedule.
scheduleNoWeekly schedule. Multiple ranges per day are allowed.
timezoneNoIANA timezone ID (e.g. 'Europe/Moscow', 'America/New_York'). Required when setting schedule.

TDQS

A4.2/5.0
Behavior4/5

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

Adds value beyond annotations by mentioning subscription requirement and the clear feature. Annotations indicate mutability and open-world, which aligns. No contradictions. Could expand on side effects like overwriting previous hours.

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?

Extremely concise with two sentences covering purpose, prerequisite, and special case. No unnecessary words.

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?

Covers core purpose, prerequisite, and a special feature. No output schema, but for a setter tool the description is sufficient. Could mention that it overwrites existing hours, but not a critical gap.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds only the 'clear' parameter special behavior, which provides marginal extra meaning. Other parameters are adequately defined in schema.

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?

Explicitly states the verb 'Set' and the resource 'Telegram Business work hours' with specifics on days and time ranges. Distinguishes from sibling tools like telegram-set-business-away or telegram-set-business-greeting by focusing on hours.

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?

Provides clear prerequisite ('Requires Telegram Business subscription') and a special usage case ('Pass clear=true to disable'). Does not explicitly compare to alternatives, but the sibling context makes the distinction clear.

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

telegram-set-business-introA

Set Telegram Business intro card โ€” title and description shown to new users opening your chat, with an optional sticker. Requires Telegram Business subscription. Pass clear=true to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoPass true to remove the intro card
titleNoIntro title (max 32 chars)
stickerIdNoSticker document ID (stringified long) โ€” optional illustrative sticker. Requires stickerAccessHash and stickerFileReference.
descriptionNoIntro description (max 70 chars)
stickerAccessHashNoAccess hash of the sticker document (required with stickerId)
stickerFileReferenceNoHex-encoded file_reference bytes (required with stickerId)

TDQS

A4.2/5.0
Behavior3/5

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

The description adds context like subscription requirement and removal option beyond annotations. However, it does not disclose side effects such as overwriting existing settings or idempotency, and does not clarify that both title and description may be needed together.

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?

Two sentences: first on main action, second on removal. No redundant words. Efficient and direct.

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?

Covers main use case and removal. Omits edge cases like calling with no parameters or conflicting clear with other params. Schema details fill some gaps, but description could include more behavioral completeness.

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

Parameters4/5

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

Schema coverage is 100%. The description adds meaning by explaining the role of title and description in the intro card and the removal behavior. It could be more explicit about the sticker parameter group requirement, but that is covered in the schema.

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

Purpose5/5

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

The description clearly states the tool sets the Telegram Business intro card, specifying title, description, and optional sticker. It distinguishes from sibling tools like set-business-away or set-business-greeting by focusing on the intro card.

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 mentions prerequisite of Telegram Business subscription and the removal option via clear=true. However, it does not explicitly exclude when to use alternatives or mention when not to use this tool.

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

telegram-set-business-locationA

Set Telegram Business physical location (address + optional geo coordinates). Requires Telegram Business subscription. Pass clear=true to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoPass true to remove business location
addressNoStreet address text
latitudeNoGeo latitude (-90 to 90)
longitudeNoGeo longitude (-180 to 180)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false) and open parameters (openWorldHint=true). The description adds value by stating the Business subscription requirement and the clear=true behavior. It does not contradict annotations.

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?

Two sentences efficiently convey purpose, prerequisite, and special case. Front-loaded and no fluff.

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?

Given the parameter count (4), full schema descriptions, and no output schema, the description covers the core functionality and a key edge case (clear). Could optionally mention return value or success confirmation, but not necessary for a simple set 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?

Schema coverage is 100% with parameter descriptions. The description adds meaning by summarizing 'address + optional geo coordinates' and explaining clear=true usage. This is helpful but not essential given the schema already documents each parameter.

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?

Description clearly states the action verb 'Set', the resource 'Telegram Business physical location', and the specific data (address + optional geo coordinates). It also covers the clear operation. This distinguishes it from siblings like telegram-set-business-hours or telegram-set-business-intro.

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?

Explicitly mentions prerequisite (Telegram Business subscription) and gives clear instruction for clearing location. However, it does not explicitly state when to use this tool over siblings or when not to use it, but the context makes it reasonably clear.

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

telegram-set-chat-permissionsA
Destructive

Set the default permissions for all non-admin members of a group, supergroup, or channel. Omitted flags keep their current state; true = allowed, false = denied

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
sendGifsNoAllow sending GIFs
sendMediaNoAllow sending photos/videos/documents
sendPollsNoAllow sending polls
changeInfoNoAllow changing chat info (title, photo, description)
embedLinksNoAllow link previews
sendInlineNoAllow inline bot usage
inviteUsersNoAllow inviting new members
pinMessagesNoAllow pinning messages
sendMessagesNoAllow sending text messages
sendStickersNoAllow sending stickers

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare destructiveHint=true, and the description adds useful context: omitted flags keep current state, true=allowed, false=denied. However, no mention of authentication needs, rate limits, or side effects like irreversible changes.

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?

Two sentences with no unnecessary words. Front-loaded with purpose, then clarifies flag behavior. Every sentence adds value.

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 the tool's mutation nature and absence of output schema, the description could mention expected return (e.g., success flag) or irreversible consequences. It is adequate but lacks some completeness.

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

Parameters3/5

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

Schema coverage is 100% with descriptive names and short descriptions. The description adds a key behavioral note about omitted flags preserving state, but does not provide deeper parameter semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'set' and the resource 'default permissions for all non-admin members of a group, supergroup, or channel.' It specifies the scope and distinguishes from many sibling tools like ban, mute, or admin settings.

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 versus alternatives like telegram-set-admin or individual permission toggles. The description does not mention when not to use it or provide examples.

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

telegram-set-chat-reactionsA

Set which reactions are available in a chat. type='all' allows all standard emoji (set allowCustom=true to also permit custom emoji for Premium users), type='some' restricts to a specific emoji list, type='none' disables reactions entirely. Requires admin

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username (group, supergroup, or channel)
reactionsYesReaction policy for the chat

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate mutation (readOnlyHint=false) and unknown side effects (openWorldHint=true). Description adds admin requirement and specific behavior per type. No contradiction with annotations.

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?

Two sentences: first states purpose, second explains types and requirement. No wasted words, front-loaded.

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

Completeness5/5

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

No output schema, but description covers all needed context: purpose, three modes, admin requirement. Sufficient for the tool's 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?

Schema coverage is 100%, but description adds context beyond schema: explains the allowCustom parameter and the meaning of each reactions type. Improves understanding of the choices.

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?

Clearly states the tool sets available reactions in a chat, and distinguishes the three modes (all, some, none). Differentiates from siblings like telegram-set-default-reaction and telegram-send-reaction.

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?

Explicitly describes when to use each reaction type (all, some, none) and notes admin requirement. Does not mention when not to use or alternatives to siblings, but the differentiation is clear.

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

telegram-set-default-reactionA

Set the default emoji reaction used in quick-reaction menus across Telegram

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYesEmoji character (e.g. ๐Ÿ‘ โค๏ธ ๐Ÿ”ฅ)

TDQS

A3.6/5.0
Behavior2/5

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

Annotations indicate mutation (readOnlyHint=false) and side effects (openWorldHint=true). The description only states the action, adding no extra behavioral details like overwriting previous defaults or required permissions.

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?

Single sentence, no waste, front-loaded with key information. Highly concise and effective.

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?

Given the simplicity (1 param, no output schema, annotations present), the description is complete enough for an agent to understand and use the tool. Minor omission: no indication of return value or confirmation.

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

Parameters3/5

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

Schema coverage is 100% with a description for the only parameter. The tool description adds no extra parameter meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (set) and resource (default emoji reaction in quick-reaction menus), distinguishing it from sibling tools like send-reaction or set-chat-reactions.

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 description implies when to use (to change default emoji), but does not provide explicit guidance on when not to use or alternatives. The intent is clear, but lacks explicit context.

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

telegram-set-emoji-statusA

Set your profile emoji status (custom animated emoji shown next to your name). Requires Telegram Premium. Pass documentId or collectibleId to set โ€” omit both to clear the status. Use telegram-list-emoji-statuses to browse available IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
untilUnixNoUnix timestamp when status expires. Omit for permanent.
documentIdNoCustom emoji document ID (stringified long). Omit to clear the status.
collectibleIdNoCollectible emoji ID (stringified long) โ€” for paid unique emoji. Exactly one of documentId/collectibleId may be set.

TDQS

A4.6/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: requires Telegram Premium, explains how to clear status, and implies mutation (consistent with readOnlyHint=false). No contradictions. Lacks minor details like whether status is permanent by default or any limits, but still strong.

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?

Two sentences: first establishes purpose and requirement, second gives usage pattern and sibling hint. No wasted words, front-loaded with critical info.

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 tool with 3 optional parameters and no output schema, the description covers requirement, setting/clearing behavior, and where to find IDs. Could mention if action is reversible or if it overwrites existing status, but 'omit both to clear' sufficiently implies that.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaning: explains mutual exclusivity of documentId and collectibleId, and that omitting both clears status. Also clarifies untilUnix parameter. Does not repeat schema, adds usage context.

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

Purpose5/5

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

The description clearly states the verb 'Set', the resource 'your profile emoji status', and explains what it is (custom animated emoji shown next to your name). It distinguishes from sibling tools like telegram-list-emoji-statuses by directing to use it for browsing IDs.

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

Usage Guidelines5/5

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

Provides explicit when-to-use context: 'Requires Telegram Premium', and how to use: 'Pass documentId or collectibleId to set โ€” omit both to clear the status.' It also directs to a sibling tool for browsing available IDs, offering clear guidance and alternatives.

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

telegram-set-global-privacy-settingsA

Update account-level global privacy settings. Only pass the fields you want to change โ€” omitted fields keep their current values. hideReadMarks and newNoncontactPeersRequirePremium require Telegram Premium.

ParametersJSON Schema
NameRequiredDescriptionDefault
hideReadMarksNoHide read receipts โ€” others cannot see when you read their messages (Premium)
keepArchivedFoldersNoKeep archived chats in their folders
keepArchivedUnmutedNoKeep archived chats unmuted when archiving
archiveAndMuteNewNoncontactPeersNoAuto-archive and mute messages from unknown users
newNoncontactPeersRequirePremiumNoOnly allow users with Telegram Premium to message you if they are not in your contacts (Premium)

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses partial update behavior and Premium requirements for specific fields, adding context beyond the readOnlyHint=false annotation. It does not mention side effects or return values, but given no output schema, this is acceptable.

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?

Two clear, front-loaded sentences with no extraneous information. First sentence states action and scope, second gives usage guidance and special requirements.

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 boolean update tool with a get counterpart, the description covers how to use (partial update) and special requirements. Adequate for an agent to invoke 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?

Schema description coverage is 100% with each parameter having a description. The tool description adds operational guidance: partial update semantics and Premium requirements, which goes beyond the schema.

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

Purpose5/5

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

The description clearly states it updates account-level global privacy settings, using specific verb 'Update' and resource 'account-level global privacy settings'. It distinguishes from sibling tools like telegram-get-global-privacy-settings and other set-* tools.

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?

The description provides explicit usage guideline: 'Only pass the fields you want to change โ€” omitted fields keep their current values.' It also notes Premium requirements for two fields. However, it does not explicitly mention when to use this vs alternatives like getting current settings first.

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

telegram-set-personal-channelA

Set the channel displayed on your profile as 'Personal Channel'. Pass clear=true to remove. Pass channelId or @username of a channel you own or are subscribed to.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoPass true to remove personal channel from profile
channelIdNoChannel ID or @username to feature on profile

TDQS

A4.2/5.0
Behavior3/5

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

Annotations indicate mutation (readOnlyHint=false) and openWorldHint=true. The description confirms mutation but does not elaborate on side effects or reversibility. It adds ownership requirement but no behavioral details beyond that.

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?

Two concise sentences that front-load the main purpose and efficiently cover both parameters. No unnecessary words.

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 action with no output schema, the description covers the operation, parameters, and a prerequisite. Missing details about success confirmation or error cases, but adequate for the 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?

Schema coverage is 100% with good descriptions. The tool description adds context about using channelId or @username and the condition of ownership/subscription, which goes beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states the tool sets the personal channel on the user's profile, with specific verbs 'Set' and 'remove', and distinguishes from siblings by focusing on this specific profile feature.

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?

The description explains when to use (set or clear personal channel) and mentions prerequisites (own or subscribed channel). It lacks explicit exclusions or alternatives, but no sibling tool directly competes.

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

telegram-set-privacyB

Configure privacy settings for your Telegram account. Controls who can see your phone number, last seen, profile photo, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleYesWho can see/access this
settingYesPrivacy setting to change
allowUsersNoUser IDs/usernames to always allow (exceptions)
disallowUsersNoUser IDs/usernames to always disallow (exceptions)

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate mutability (readOnlyHint=false) and open-world effects (openWorldHint=true). The description confirms a write operation but adds no additional behavioral context such as side effects, permission requirements, or scope of changes.

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 sentence of 18 words, very concise. However, it could be slightly more structured or include additional brief context without becoming verbose.

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, so the description should hint at return behavior or confirmation. It does not. Also lacks behavioral details about error handling, persistence, or interaction with other privacy settings.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond restating that the tool controls visibility of listed attributes.

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 clearly states the tool configures Telegram privacy settings and lists examples like phone number and last seen. However, it does not differentiate from the sibling tool 'telegram-set-global-privacy-settings', which likely covers similar functionality.

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, no prerequisites, and no mention of the closely related 'telegram-set-global-privacy-settings' sibling.

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

telegram-set-profile-colorA

Set your profile name color or profile background color. Requires Telegram Premium for colors above index 6 and for profile background patterns. Omit color to reset to default.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoColor index (0-6 free palette; 7+ Premium custom). Omit to reset to default.
forProfileNotrue = profile page color + background pattern (Premium); false = name color in chat lists
backgroundEmojiIdNoCustom emoji document ID (stringified long) for profile background pattern (Premium). Omit to remove.

TDQS

A4.2/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, openWorldHint=true), the description details Premium requirements and a reset behavior. This adds valuable context about side effects and prerequisites, even though some is also in the schema descriptions.

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 extremely concise, consisting of two short sentences. The first sentence front-loads the purpose, and the second covers constraints and reset. No waste; every part earns its place.

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 tool with no output schema, the description covers the key behavioral aspects (premium, reset) and parameter constraints. The openWorldHint is not explicitly addressed, but overall the description is reasonably complete for the tool's complexity.

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?

All parameters have schema descriptions that are already informative (100% coverage). The tool description integrates the premium requirement and reset behavior but largely overlaps with the schema info, adding only marginal value beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Set') and the resources ('profile name color or profile background color'). It distinguishes between two modes and mentions reset to default, making the purpose unmistakable among sibling tools.

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?

The description provides crucial usage context: the Premium requirement for colors above index 6 and for background patterns, and the option to reset. However, it does not explicitly exclude cases or mention alternatives, but the constraints are clearly stated.

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

telegram-set-profile-photoA

Upload and set a new profile photo from a local file. Supports JPEG/PNG for static avatar or MP4 for animated avatar (square, up to 10s). Optionally set as fallback photo shown to users who cannot see your main photo.

ParametersJSON Schema
NameRequiredDescriptionDefault
isVideoNotrue if file is an MP4 animated avatar; false for static photo
fallbackNotrue = set as fallback photo (shown to users who cannot see your main photo due to privacy settings)
filePathYesAbsolute local filesystem path to photo (JPEG/PNG) or video (MP4, square) to upload as avatar. URLs are rejected.
videoStartTsNoFor video avatar: timestamp in seconds to use as still preview frame

TDQS

A4.1/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: it specifies supported image/video formats, file size limits (square, up to 10s for video), and the fallback feature. It aligns with annotations (readOnlyHint=false, write operation). Missing details on side effects like overwriting or 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?

Two sentences, front-loaded with the primary action, and no unnecessary details. Every sentence adds value.

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 output schema, the description does not explain the return value or confirmation of success. For a mutation tool with 4 parameters, it covers usage well but leaves out post-action 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?

Schema coverage is 100%, so baseline is 3. The description adds extra context about file formats and fallback but does not significantly enhance understanding of parameters beyond their schema descriptions.

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

Purpose5/5

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

The description clearly states the action 'Upload and set a new profile photo from a local file' and specifies supported formats (JPEG/PNG, MP4). It distinguishes from sibling tools like telegram-get-profile-photo and telegram-delete-profile-photo by focusing on setting a new photo.

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?

Provides context on file types and the fallback option, but does not explicitly state when to use this tool versus alternatives (e.g., send-file). It mentions that URLs are rejected, which is a helpful guideline for input format.

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

telegram-set-slow-modeA

Set slow mode for a supergroup (minimum interval between messages per user). Allowed values: 0, 10, 30, 60, 300, 900, 3600 seconds (0 disables slow mode)

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username (supergroup)
secondsYesInterval in seconds: 0 (off), 10, 30, 60, 300, 900, or 3600

TDQS

A3.6/5.0
Behavior2/5

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

The description does not disclose behavioral aspects beyond the annotations. Annotations already indicate it is not read-only and is open-world, but the description does not add context about immediate effects, required permissions, or error conditions. The allowed values are already in the schema.

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 concise with two sentences, front-loads the purpose, and lists allowed values efficiently. No unnecessary words.

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 two-parameter tool, the description adequately explains the concept of slow mode and the allowed values. It lacks mention of who can use this (admin) or potential side effects, but overall sufficient for basic understanding.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters. The description reiterates the allowed values for the 'seconds' parameter, which is already in the schema, adding no new meaning.

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

Purpose5/5

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

The description clearly states the tool sets slow mode for a supergroup, specifying the minimum interval between messages. It lists allowed values, distinguishing it from sibling tools like 'set-chat-permissions' or 'set-auto-delete'.

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 description explains the purpose and allowed values but does not explicitly state when to use this tool over alternatives, nor does it mention prerequisites like admin permissions or that slow mode applies only to supergroups.

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

telegram-statusB
Read-only

Check Telegram connection status

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?

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, read-only operation. The description 'Check Telegram connection status' aligns but adds minimal additional behavioral context beyond the annotations.

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, concise sentence with no extraneous information. Every word is meaningful and directly conveys 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?

For a simple tool with no parameters and no output schema, the description tells what it does but omits any information about the return value (e.g., boolean, status message). This leaves the agent guessing about the output format.

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 has zero parameters and 100% coverage. The description adds no parameter-level information beyond what the schema provides. With no parameters, a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Check Telegram connection status' clearly states the tool's action (check) and resource (connection status). It is a specific verb+resource combination that distinguishes it from sibling tools like telegram-get-state or telegram-get-updates.

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 provided on when to use this tool versus alternatives such as telegram-get-state or telegram-login. The description lacks context on intended use cases, prerequisites, or exclusions.

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

telegram-terminate-sessionA
Destructive

Terminate a specific Telegram session by its hash, or explicitly terminate all other sessions by setting terminateAllOther=true

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoSession hash to terminate (numeric string from get-sessions). Required when terminateAllOther is not set
terminateAllOtherNoSet to true to terminate all other sessions (excludes current). Cannot be combined with sessionId

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, so the description's 'Terminate' adds no new behavioral traits. It does not detail consequences like disconnection or logout, relying on annotations. No contradiction with annotations.

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 is concise, front-loaded, and efficient. Every word serves a purpose with no redundancy.

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 tool with two parameters and no output schema, the description covers the core functionality. It could mention the return value or effects (e.g., session ended), but the tool's simplicity makes this adequate.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description restates the two modes but adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool terminates Telegram sessions, specifying two distinct modes: by hash or all others. It uses a specific verb (terminate) and resource (session), differentiating it from sibling tools like telegram-get-sessions.

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?

The description explicitly explains when to use each parameter (specific session vs. all others) and implies they are mutually exclusive. It lacks explicit guidance on when to choose one mode over the other, but the context is clear for a simple tool.

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

telegram-toggle-anti-spamA

Enable or disable aggressive anti-spam filtering in a supergroup. Supergroup only (not broadcast channels); requires admin with ban_users permission

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesSupergroup ID or username
enabledYestrue to enable aggressive anti-spam, false to disable

TDQS

A3.9/5.0
Behavior3/5

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

The description adds the permission requirement beyond annotations, but does not disclose potential side effects (e.g., impact on existing messages) or error conditions. With annotations already indicating it's a write operation, the description provides modest added value.

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, concise sentence that front-loads the action and constraints. No wasted words, though it could be slightly more structured (e.g., bullet points) but not necessary.

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?

Given the parameter coverage, annotations, and no output schema, the description provides sufficient context: purpose, constraints, permission requirement. It covers the essential aspects 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.

Parameters3/5

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

Both parameters have descriptions in the schema (100% coverage), so the description adds no new meaning. Baseline 3 is appropriate as the schema already documents the parameters fully.

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

Purpose5/5

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

The description clearly states the verb 'enable or disable' and the resource 'aggressive anti-spam filtering in a supergroup'. It specifies constraints (supergroup only, not broadcast channels, requires admin permission), which distinguishes it from sibling tools like telegram-ban-user or telegram-report-spam.

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?

The description explicitly states when to use the tool (toggle anti-spam filtering) and provides necessary context (supergroup only, admin permission required). It does not explicitly name alternatives but the context helps differentiate from siblings.

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

telegram-toggle-channel-signaturesA

Enable or disable author signatures on broadcast channel posts. Channel admin required; not supported for supergroups

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChannel ID or username
enabledYestrue to enable author signatures, false to disable

TDQS

A3.8/5.0
Behavior3/5

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

The description confirms a write operation (as indicated by readOnlyHint=false) and adds contextual boundaries (admin required, not for supergroups). It does not detail side effects or error conditions, but annotations already signal non-read-only behavior. No contradiction with annotations.

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 sentence followed by a clarifying note. It is efficient and front-loaded with the purpose. Could be slightly restructured, but overall 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?

The description covers the purpose and prerequisites but omits return value or confirmation. Since there is no output schema, the description could add what the tool returns (e.g., success status). For a simple toggle tool, it is mostly complete but lacks this detail.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already fully documents both parameters. The description does not add new semantic details beyond what the schema provides (e.g., format of chatId, default for enabled). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Enable or disable') and the resource ('author signatures on broadcast channel posts'). It distinguishes itself from sibling tools by specifying it is for broadcast channels only, not supergroups, which is unique among the listed tools.

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?

The description explicitly states when to use (to toggle signatures) and provides key requirements ('Channel admin required' and 'not supported for supergroups'). However, it does not explicitly state when not to use or compare to alternatives, but given its uniqueness, this is adequate.

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

telegram-toggle-folder-tagsA

Enable or disable folder tags (colored labels that appear on messages in chat lists when the message belongs to a tagged folder). Requires Telegram Premium.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue to enable folder tags, false to disable

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false (mutation) and openWorldHint=true (potential side effects). The description adds that Telegram Premium is required, which is useful but does not elaborate on behavioral traits like immediate effect, reversibility, or rate limits. This is adequate given the simple nature of the 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?

The description is two sentences, front-loading the action and explanation, followed by the prerequisite. No extraneous words; every sentence earns its place.

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

Completeness5/5

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

For a simple boolean toggle with no output schema, the description is complete. It explains the function, provides a prerequisite, and the single parameter is fully documented in the schema. No additional context is needed 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 input schema covers 100% of parameters with clear descriptions: 'true to enable folder tags, false to disable'. The description adds no further parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses specific verbs ('enable or disable') and identifies the resource ('folder tags'), with an explanatory parenthetical about what folder tags are. It clearly distinguishes from sibling tools like telegram-create-folder or telegram-edit-folder by focusing on the tags toggle action.

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?

The description states 'Requires Telegram Premium,' providing a clear prerequisite. However, it does not explicitly discuss when to use the tool vs alternatives or when not to use it. Since there is no direct alternative tool for this action, the guideline is adequate but lacks explicit contextual boundaries.

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

telegram-toggle-forum-modeA
Destructive

Enable or disable forum/topics mode in a supergroup. Supergroup only; requires creator or admin. WARNING: disabling removes ALL existing topics โ€” pass confirm=true to proceed with disable

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesSupergroup ID or username
confirmNoMust be true when disabling (enabled=false) โ€” disabling deletes all existing topics
enabledYestrue to enable forum mode, false to disable

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark destructiveHint, but description adds vivid detail: 'disabling removes ALL existing topics' and the confirm guard. Adds permission context beyond annotations.

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?

Two concise sentences plus a warning. Front-loaded with purpose. Every word adds value.

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?

Covers purpose, preconditions, warning, parameter requirement. No output schema, so return values not needed. Could mention error handling or what happens if not admin, but sufficient for the tool's 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?

Schema covers all parameters with descriptions. Description adds critical context linking confirm parameter to disable action. Could be more explicit about confirm only needed when enabled=false.

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?

Clearly states the action (enable/disable) and resource (forum/topics mode in supergroup). Distinguishes from sibling tools like telegram-create-topic or telegram-delete-topic.

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?

Explicitly specifies when to use (supergroup, requires creator/admin). Warns about destructive nature and required confirm parameter. Does not list when not to use or alternatives, but context is clear.

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

telegram-toggle-paid-reaction-privacyA

Change leaderboard visibility of your paid reaction on a specific channel post (Layer 198 API).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username (channel)
privateYestrue = anonymous on leaderboard, false = show name
messageIdYesMessage ID of the channel post

TDQS

A3.8/5.0
Behavior3/5

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

Annotations indicate it's a mutation (readOnlyHint=false) and may have side effects (openWorldHint=true). Description confirms it changes state but adds little beyond that. Doesn't detail what happens to past reactions or any other effects.

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?

Single sentence of 12 words, front-loaded with the action, no wasted text. Every word contributes meaning.

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 boolean toggle with full schema coverage and annotations, the description provides enough context. Missing return value info but acceptable given no output schema.

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?

All parameters are fully described in the schema (100% coverage). The description adds no additional parameter-level information beyond what the schema provides.

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?

Description clearly states the verb 'change' and the resource 'leaderboard visibility of your paid reaction on a specific channel post'. It references the API layer for specificity, and is distinct from siblings like telegram-get-paid-reaction-privacy (read) and telegram-send-paid-reaction (send).

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?

Description implies the tool is for changing visibility, but does not explicitly state when to use it versus alternatives (e.g., get or send). No guidance on prerequisites or context.

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

telegram-toggle-prehistory-hiddenA

Toggle pre-history visibility for new members in a supergroup. When hidden=true, new joiners cannot see messages posted before they joined. Supergroup only; requires admin

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesSupergroup ID or username
hiddenYestrue to hide prior history from new members, false to make it visible

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate non-readonly (mutation). The description adds specific behavioral context: 'When hidden=true, new joiners cannot see messages posted before they joined'. This explains the effect beyond the annotation's binary read-only hint.

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?

Two sentences, efficient and front-loaded. Every sentence earns its place, with no wasted words. The purpose and key constraints are immediately clear.

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?

The description covers the tool's purpose, effect, and constraints. Given the tool's simplicity and the presence of annotations (readOnlyHint, openWorldHint), the description is sufficiently complete. No output schema expected, so return value details are unnecessary.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description implicitly references the 'hidden' parameter by stating 'When hidden=true', but does not add additional meaning beyond the schema descriptions. No new param insights provided.

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

Purpose5/5

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

The description clearly states the verb 'Toggle' and the resource 'pre-history visibility for new members in a supergroup'. The constraint 'Supergroup only; requires admin' distinguishes it from other toggle tools in the sibling list.

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?

The description provides context for when to use the tool (supergroup admin wanting to control pre-history visibility) and states constraints (supergroup only, requires admin). It does not explicitly mention when not to use or list alternatives, but the constraints offer clear guidance.

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

telegram-toggle-story-pinnedA

Pin or unpin stories in your profile highlights (Telegram allows up to 3 pinned stories).

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesStory IDs to pin or unpin
chatIdNoPeer owning the storiesme
pinnedYestrue to pin, false to unpin

TDQS

A4/5.0
Behavior4/5

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

The description adds useful behavioral context beyond annotations: it specifies that the action affects profile highlights and reveals the Telegram limit of 3 pinned stories. Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true, which are consistent. No contradictions.

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 sentence that conveys the essential purpose and a key constraint. It is front-loaded with the action and resource, and every word adds value. No unnecessary information.

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?

Given the tool's simplicity (3 parameters, no output schema), the description is largely complete. It explains what the tool does and a critical constraint. Minor gap: could mention that max 3 applies to total pinned, but not critical for basic usage.

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?

Input schema has 100% coverage with descriptions for all parameters (ids, chatId, pinned). The description does not add additional meaning to the parameters beyond what the schema provides. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (pin or unpin), the resource (stories), the context (profile highlights), and includes a specific constraint (Telegram allows up to 3 pinned stories). It clearly distinguishes from sibling tools like pin-message and pin-chat.

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 description does not explicitly state when to use this tool vs alternatives. It mentions a constraint (up to 3 pinned stories) which implies a usage condition, but lacks explicit guidance on when not to use or comparisons with similar tools.

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

telegram-toggle-story-pinned-to-topA

Pin stories to the very top of your pinned row. Pass an empty array [] to clear all top-pinned stories.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesStory IDs to pin to the top row; pass [] to clear
chatIdNoPeer owning the storiesme

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate mutation (readOnlyHint=false) and open world. Description adds that it affects the 'pinned row' and provides clearing behavior, which is beyond annotations.

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?

Two sentences, front-loaded with action, no redundant information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with two parameters; description explains core action and clearing. No output schema needed. Complete 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?

Schema coverage is 100% with parameter descriptions. Tool description adds 'very top of your pinned row' context, going beyond schema. No contradiction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Pin stories to the very top of your pinned row' and the resource (stories). It distinguishes from sibling 'telegram-toggle-story-pinned' by specifying 'very top' and includes a clearing mechanism.

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?

Explicitly tells when to use the tool for pinning and how to clear with empty array. Does not explicitly list when not to use, but the context implies it's for top-pinning specifically.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-transcribe-audioA

Request server-side transcription of a voice note or video note (Telegram Premium feature). Returns immediately with transcriptionId โ€” if pending:true, call telegram-get-transcription to poll for completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID of the voice or video note

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds async behavior details (returns immediately with transcriptionId and pending flag) and polling pattern. Annotations (readOnlyHint=false, openWorldHint=true) already indicate mutation and possible side effects; description does not contradict and adds useful 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?

Two sentences, front-loaded with main action and async behavior. Every sentence adds value; no fluff.

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?

Given no output schema, the description explains return fields (transcriptionId, pending) and how to get final result. Mentions Premium feature. Missing error handling or rate limits, but sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters. Description does not add extra semantics beyond the schema; it's adequate but not enhanced.

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?

Description clearly states it requests server-side transcription of voice/video notes, a Telegram Premium feature. It distinguishes from sibling telegram-get-transcription which is used for polling results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use (initiate transcription) and when to use sibling (if pending:true, call telegram-get-transcription). Also notes the Premium requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-translate-messageA

Translate one or more Telegram messages to a target language (requires Telegram Premium). Consumes account translation quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
toLangYesISO 639-1 (e.g. 'en', 'ru') or locale (e.g. 'en-US')
messageIdsYesArray of message IDs to translate (1-100)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate mutation and side effects (readOnlyHint=false, openWorldHint=true). Description adds specific behavior: consumes account translation quota, which is beyond what annotations provide. No contradictions.

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?

Two sentences, front-loaded purpose, zero waste. Every word adds value.

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?

Describes purpose, requirements, and side effects. Lacks mention of return value or confirmation (no output schema), but for a simple translation action, it's mostly complete. Minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all parameters with descriptions (100% coverage). Description adds no extra parameter semantics beyond what schema already provides, so baseline score is appropriate.

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?

Description clearly states 'Translate one or more Telegram messages to a target language', with a specific verb and resource. No sibling tool does translation, so it's well-differentiated.

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?

Explicitly mentions prerequisite (Telegram Premium) and resource consumption (translation quota), guiding when to use. Could be improved by noting when not to use (e.g., no premium), but schema coverage already provides parameter details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-unban-userA

Unban a previously banned user from a supergroup or channel

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
userIdYesUser ID or username to unban

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutation (readOnlyHint=false) and may have side effects (openWorldHint=true). The description adds that the action is unbanning from a supergroup/channel, but does not disclose other behavioral traits such as required permissions, whether the user must currently be banned, or the response format. The description adds only marginal value beyond annotations.

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, clear sentence with no extraneous information. Every word is necessary and contributes to understanding the tool's purpose.

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?

Given the tool's simplicity (2 parameters, no output schema), the description covers the essential purpose. It lacks information about prerequisites (e.g., admin rights) and expected response, but these are reasonably inferable from the action type. More detail could improve completeness, but it is sufficient for an agent to use correctly in most cases.

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 provides 100% coverage for both parameters with clear descriptions ('Chat ID or username', 'User ID or username to unban'). The tool description does not add any additional meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Unban', the resource 'a previously banned user', and the scope 'from a supergroup or channel'. This distinguishes it from siblings like 'telegram-unblock-user' (for private chats) and 'telegram-ban-user' (the inverse operation).

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?

The description explicitly states the precondition ('previously banned user') and the context ('supergroup or channel'), making it clear when to use. However, it does not provide explicit guidance on when not to use or alternatives for other scenarios (e.g., unblocking in private chats), though sibling tool names provide some differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-unblock-userB

Unblock a previously blocked Telegram user

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesUser ID or username to unblock

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description only states the action without disclosing behavioral traits like required permissions, reversibility, or side effects. Annotations provide no additional safety cues (destructiveHint is missing).

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?

One short sentence, no wasted words. However, it is almost too terse, lacking any structuring that might help the agent.

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 the simple one-parameter tool and absence of output schema, the description is minimally complete but could include context about prerequisites or effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'userId', and the description adds no extra meaning beyond the schema's own description. Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Unblock') and the target ('a previously blocked Telegram user'), distinguishing it from sibling tools like 'telegram-block-user' and 'telegram-ban-user'.

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 such as 'telegram-unban-user' or 'telegram-block-user'. Lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-unpin-messageB

Unpin a message in a Telegram chat

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID to unpin

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true, but the description adds no behavioral detail beyond the name 'Unpin'. It does not mention permissions, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence with no wasted words. While concise, it sacrifices some completeness for brevity.

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 the tool's simplicity, the description is minimally adequate but lacks details on prerequisites, return values, or edge cases. More context would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with simple descriptions for chatId and messageId. The description adds no additional meaning or usage tips, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Unpin a message in a Telegram chat' clearly states the verb 'Unpin' and the resource 'message', making the tool's purpose immediately understandable and distinct from siblings like telegram-pin-message.

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 provided on when to use this tool versus alternatives, such as when a message must already be pinned or what happens if it isn't. The description lacks any exclusions or context for proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-update-profileB

Update your Telegram profile โ€” first name, last name, bio, or username

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoNew bio/about text (max 70 chars, 300 for Premium)
lastNameNoNew last name
usernameNoNew username (without @)
firstNameNoNew first name

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (write operation) and openWorldHint=true (possible side effects), but the description adds no behavioral context beyond 'update'. No mention of destructive potential or need for authentication.

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 sentence of 12 words, front-loaded with the verb and resource. It contains no unnecessary words or redundancy.

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 tool has 4 parameters, no output schema, and moderate complexity, the description is too minimal. It omits vital context like optionality, character limits (partially in schema but not in description), and success feedback.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter descriptions already explain each field. The description only lists them without adding any additional meaning, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and the resource (Telegram profile) and lists the specific fields that can be updated (first name, last name, bio, username). It distinguishes itself from sibling tools that update other profile aspects like photo or color.

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 provided on when to use this tool versus alternatives (e.g., set-profile-photo, set-birthday). There is no mention of prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

telegram-vote-pollB

Vote in a poll by option index (single or multi-choice). Empty array retracts vote.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesChat ID or username
messageIdYesMessage ID of the poll
optionIndexesYesZero-based option indexes. Empty [] retracts vote.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint=false). The description adds the key behavior that an empty array retracts a vote, which is not obvious from annotations. However, it does not disclose other behavioral traits such as voting restrictions, persistence, or whether multiple votes are allowed.

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 core action. Every word is informative, with no wasted text.

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 mutation tool with no output schema and three well-described parameters, the description covers the essential functionality and the retraction special case. It could mention prerequisites like the poll must be active, but overall it is sufficiently complete for an AI agent to understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds marginal value. It echoes the schema's description for optionIndexes regarding retraction. No new semantics are provided for chatId or messageId beyond the schema's own descriptions.

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 clearly states the tool votes in a poll by option index, covering single/multi-choice and retraction. It distinguishes itself from sibling tools like telegram-create-poll and telegram-close-poll, but does not explicitly differentiate from telegram-press-button or other interactive actions.

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 versus alternatives. It implicitly suggests usage for voting, but lacks when-not-to-use or comparison to similar tools like telegram-press-button or telegram-send-reaction.

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. 1 tool updatev1.42.0
    • Addedtelegram-get-saved-music
  2. 168 tool updatesv1.36.5
    • Addedtelegram-activate-stealth-mode
    • Addedtelegram-add-contact
    • Addedtelegram-approve-join-request
    • Addedtelegram-archive-chat
    • Addedtelegram-ban-user
    • Addedtelegram-block-user
    • Addedtelegram-clear-drafts
    • Addedtelegram-clear-recent-emoji-statuses
    • Addedtelegram-close-poll
    • Addedtelegram-create-business-chat-link
    • Addedtelegram-create-folder
    • Addedtelegram-create-group
    • Addedtelegram-create-invite-link
    • Addedtelegram-create-poll
    • Addedtelegram-create-topic
    • Addedtelegram-delete-business-chat-link
    • Addedtelegram-delete-fact-check
    • Addedtelegram-delete-folder
    • Addedtelegram-delete-message
    • Addedtelegram-delete-profile-photo
    • Addedtelegram-delete-scheduled
    • Addedtelegram-delete-stories
    • Addedtelegram-delete-topic
    • Addedtelegram-download-media
    • Addedtelegram-edit-business-chat-link
    • Addedtelegram-edit-fact-check
    • Addedtelegram-edit-folder
    • Addedtelegram-edit-group
    • Addedtelegram-edit-message
    • Addedtelegram-edit-story
    • Addedtelegram-edit-topic
    • Addedtelegram-export-story-link
    • Addedtelegram-forward-message
    • Addedtelegram-get-admin-log
    • Addedtelegram-get-all-stories
    • Addedtelegram-get-boosts-list
    • Addedtelegram-get-boosts-status
    • Addedtelegram-get-broadcast-stats
    • Addedtelegram-get-business-chat-links
    • Addedtelegram-get-channel-updates
    • Addedtelegram-get-chat-folders
    • Addedtelegram-get-chat-info
    • Addedtelegram-get-chat-members
    • Addedtelegram-get-contact-requests
    • Addedtelegram-get-contacts
    • Addedtelegram-get-discussion-message
    • Addedtelegram-get-drafts
    • Addedtelegram-get-fact-check
    • Addedtelegram-get-global-privacy-settings
    • Addedtelegram-get-groups-for-discussion
    • Addedtelegram-get-installed-stickers
    • Addedtelegram-get-invite-links
    • Addedtelegram-get-megagroup-stats
    • Addedtelegram-get-message-buttons
    • Addedtelegram-get-message-link
    • Addedtelegram-get-message-read-participants
    • Addedtelegram-get-my-boosts
    • Addedtelegram-get-my-role
    • Addedtelegram-get-outbox-read-date
    • Addedtelegram-get-paid-reaction-privacy
    • Addedtelegram-get-peer-stories
    • Addedtelegram-get-poll-results
    • Addedtelegram-get-poll-voters
    • Addedtelegram-get-profile
    • Addedtelegram-get-profile-photo
    • Addedtelegram-get-reactions
    • Addedtelegram-get-recent-reactions
    • Addedtelegram-get-recent-stickers
    • Addedtelegram-get-replies
    • Addedtelegram-get-saved-dialogs
    • Addedtelegram-get-scheduled
    • Addedtelegram-get-sessions
    • Addedtelegram-get-state
    • Addedtelegram-get-sticker-set
    • Addedtelegram-get-stories-archive
    • Addedtelegram-get-stories-by-id
    • Addedtelegram-get-story-views
    • Addedtelegram-get-suggested-folders
    • Addedtelegram-get-top-reactions
    • Addedtelegram-get-transcription
    • Addedtelegram-get-unread
    • Addedtelegram-get-unread-mentions
    • Addedtelegram-get-unread-reactions
    • Addedtelegram-get-updates
    • Addedtelegram-get-web-preview
    • Addedtelegram-inline-query
    • Addedtelegram-inline-query-send
    • Addedtelegram-invite-to-group
    • Addedtelegram-join-chat
    • Addedtelegram-kick-user
    • Addedtelegram-leave-group
    • Addedtelegram-list-chats
    • Addedtelegram-list-emoji-statuses
    • Addedtelegram-list-topics
    • Addedtelegram-login
    • Addedtelegram-logout
    • Addedtelegram-mark-as-read
    • Addedtelegram-mark-dialog-unread
    • Addedtelegram-mute-chat
    • Addedtelegram-pin-chat
    • Addedtelegram-pin-message
    • Addedtelegram-press-button
    • Addedtelegram-rate-transcription
    • Addedtelegram-react-to-story
    • Addedtelegram-read-messages
    • Addedtelegram-read-stories
    • Addedtelegram-read-topic-messages
    • Addedtelegram-remove-admin
    • Addedtelegram-reorder-folders
    • Addedtelegram-report-spam
    • Addedtelegram-report-story
    • Addedtelegram-resolve-business-chat-link
    • Addedtelegram-revoke-invite-link
    • Addedtelegram-save-draft
    • Addedtelegram-search-chats
    • Addedtelegram-search-global
    • Addedtelegram-search-messages
    • Addedtelegram-search-sticker-sets
    • Addedtelegram-send-album
    • Addedtelegram-send-contact
    • Addedtelegram-send-dice
    • Addedtelegram-send-file
    • Addedtelegram-send-location
    • Addedtelegram-send-message
    • Addedtelegram-send-paid-reaction
    • Addedtelegram-send-reaction
    • Addedtelegram-send-scheduled
    • Addedtelegram-send-sticker
    • Addedtelegram-send-story
    • Addedtelegram-send-typing
    • Addedtelegram-send-venue
    • Addedtelegram-send-video-note
    • Addedtelegram-send-voice
    • Addedtelegram-set-admin
    • Addedtelegram-set-auto-delete
    • Addedtelegram-set-birthday
    • Addedtelegram-set-business-away
    • Addedtelegram-set-business-greeting
    • Addedtelegram-set-business-hours
    • Addedtelegram-set-business-intro
    • Addedtelegram-set-business-location
    • Addedtelegram-set-chat-permissions
    • Addedtelegram-set-chat-reactions
    • Addedtelegram-set-default-reaction
    • Addedtelegram-set-emoji-status
    • Addedtelegram-set-global-privacy-settings
    • Addedtelegram-set-personal-channel
    • Addedtelegram-set-privacy
    • Addedtelegram-set-profile-color
    • Addedtelegram-set-profile-photo
    • Addedtelegram-set-slow-mode
    • Addedtelegram-status
    • Addedtelegram-terminate-session
    • Addedtelegram-toggle-anti-spam
    • Addedtelegram-toggle-channel-signatures
    • Addedtelegram-toggle-folder-tags
    • Addedtelegram-toggle-forum-mode
    • Addedtelegram-toggle-paid-reaction-privacy
    • Addedtelegram-toggle-prehistory-hidden
    • Addedtelegram-toggle-story-pinned
    • Addedtelegram-toggle-story-pinned-to-top
    • Addedtelegram-transcribe-audio
    • Addedtelegram-translate-message
    • Addedtelegram-unban-user
    • Addedtelegram-unblock-user
    • Addedtelegram-unpin-message
    • Addedtelegram-update-profile
    • Addedtelegram-vote-poll
  3. 168 tool updatesv1.36.3
    • Removedtelegram-activate-stealth-mode
    • Removedtelegram-add-contact
    • Removedtelegram-approve-join-request
    • Removedtelegram-archive-chat
    • Removedtelegram-ban-user
    • Removedtelegram-block-user
    • Removedtelegram-clear-drafts
    • Removedtelegram-clear-recent-emoji-statuses
    • Removedtelegram-close-poll
    • Removedtelegram-create-business-chat-link
    • Removedtelegram-create-folder
    • Removedtelegram-create-group
    • Removedtelegram-create-invite-link
    • Removedtelegram-create-poll
    • Removedtelegram-create-topic
    • Removedtelegram-delete-business-chat-link
    • Removedtelegram-delete-fact-check
    • Removedtelegram-delete-folder
    • Removedtelegram-delete-message
    • Removedtelegram-delete-profile-photo
    • Removedtelegram-delete-scheduled
    • Removedtelegram-delete-stories
    • Removedtelegram-delete-topic
    • Removedtelegram-download-media
    • Removedtelegram-edit-business-chat-link
    • Removedtelegram-edit-fact-check
    • Removedtelegram-edit-folder
    • Removedtelegram-edit-group
    • Removedtelegram-edit-message
    • Removedtelegram-edit-story
    • Removedtelegram-edit-topic
    • Removedtelegram-export-story-link
    • Removedtelegram-forward-message
    • Removedtelegram-get-admin-log
    • Removedtelegram-get-all-stories
    • Removedtelegram-get-boosts-list
    • Removedtelegram-get-boosts-status
    • Removedtelegram-get-broadcast-stats
    • Removedtelegram-get-business-chat-links
    • Removedtelegram-get-channel-updates
    • Removedtelegram-get-chat-folders
    • Removedtelegram-get-chat-info
    • Removedtelegram-get-chat-members
    • Removedtelegram-get-contact-requests
    • Removedtelegram-get-contacts
    • Removedtelegram-get-discussion-message
    • Removedtelegram-get-drafts
    • Removedtelegram-get-fact-check
    • Removedtelegram-get-global-privacy-settings
    • Removedtelegram-get-groups-for-discussion
    • Removedtelegram-get-installed-stickers
    • Removedtelegram-get-invite-links
    • Removedtelegram-get-megagroup-stats
    • Removedtelegram-get-message-buttons
    • Removedtelegram-get-message-link
    • Removedtelegram-get-message-read-participants
    • Removedtelegram-get-my-boosts
    • Removedtelegram-get-my-role
    • Removedtelegram-get-outbox-read-date
    • Removedtelegram-get-paid-reaction-privacy
    • Removedtelegram-get-peer-stories
    • Removedtelegram-get-poll-results
    • Removedtelegram-get-poll-voters
    • Removedtelegram-get-profile
    • Removedtelegram-get-profile-photo
    • Removedtelegram-get-reactions
    • Removedtelegram-get-recent-reactions
    • Removedtelegram-get-recent-stickers
    • Removedtelegram-get-replies
    • Removedtelegram-get-saved-dialogs
    • Removedtelegram-get-scheduled
    • Removedtelegram-get-sessions
    • Removedtelegram-get-state
    • Removedtelegram-get-sticker-set
    • Removedtelegram-get-stories-archive
    • Removedtelegram-get-stories-by-id
    • Removedtelegram-get-story-views
    • Removedtelegram-get-suggested-folders
    • Removedtelegram-get-top-reactions
    • Removedtelegram-get-transcription
    • Removedtelegram-get-unread
    • Removedtelegram-get-unread-mentions
    • Removedtelegram-get-unread-reactions
    • Removedtelegram-get-updates
    • Removedtelegram-get-web-preview
    • Removedtelegram-inline-query
    • Removedtelegram-inline-query-send
    • Removedtelegram-invite-to-group
    • Removedtelegram-join-chat
    • Removedtelegram-kick-user
    • Removedtelegram-leave-group
    • Removedtelegram-list-chats
    • Removedtelegram-list-emoji-statuses
    • Removedtelegram-list-topics
    • Removedtelegram-login
    • Removedtelegram-logout
    • Removedtelegram-mark-as-read
    • Removedtelegram-mark-dialog-unread
    • Removedtelegram-mute-chat
    • Removedtelegram-pin-chat
    • Removedtelegram-pin-message
    • Removedtelegram-press-button
    • Removedtelegram-rate-transcription
    • Removedtelegram-react-to-story
    • Removedtelegram-read-messages
    • Removedtelegram-read-stories
    • Removedtelegram-read-topic-messages
    • Removedtelegram-remove-admin
    • Removedtelegram-reorder-folders
    • Removedtelegram-report-spam
    • Removedtelegram-report-story
    • Removedtelegram-resolve-business-chat-link
    • Removedtelegram-revoke-invite-link
    • Removedtelegram-save-draft
    • Removedtelegram-search-chats
    • Removedtelegram-search-global
    • Removedtelegram-search-messages
    • Removedtelegram-search-sticker-sets
    • Removedtelegram-send-album
    • Removedtelegram-send-contact
    • Removedtelegram-send-dice
    • Removedtelegram-send-file
    • Removedtelegram-send-location
    • Removedtelegram-send-message
    • Removedtelegram-send-paid-reaction
    • Removedtelegram-send-reaction
    • Removedtelegram-send-scheduled
    • Removedtelegram-send-sticker
    • Removedtelegram-send-story
    • Removedtelegram-send-typing
    • Removedtelegram-send-venue
    • Removedtelegram-send-video-note
    • Removedtelegram-send-voice
    • Removedtelegram-set-admin
    • Removedtelegram-set-auto-delete
    • Removedtelegram-set-birthday
    • Removedtelegram-set-business-away
    • Removedtelegram-set-business-greeting
    • Removedtelegram-set-business-hours
    • Removedtelegram-set-business-intro
    • Removedtelegram-set-business-location
    • Removedtelegram-set-chat-permissions
    • Removedtelegram-set-chat-reactions
    • Removedtelegram-set-default-reaction
    • Removedtelegram-set-emoji-status
    • Removedtelegram-set-global-privacy-settings
    • Removedtelegram-set-personal-channel
    • Removedtelegram-set-privacy
    • Removedtelegram-set-profile-color
    • Removedtelegram-set-profile-photo
    • Removedtelegram-set-slow-mode
    • Removedtelegram-status
    • Removedtelegram-terminate-session
    • Removedtelegram-toggle-anti-spam
    • Removedtelegram-toggle-channel-signatures
    • Removedtelegram-toggle-folder-tags
    • Removedtelegram-toggle-forum-mode
    • Removedtelegram-toggle-paid-reaction-privacy
    • Removedtelegram-toggle-prehistory-hidden
    • Removedtelegram-toggle-story-pinned
    • Removedtelegram-toggle-story-pinned-to-top
    • Removedtelegram-transcribe-audio
    • Removedtelegram-translate-message
    • Removedtelegram-unban-user
    • Removedtelegram-unblock-user
    • Removedtelegram-unpin-message
    • Removedtelegram-update-profile
    • Removedtelegram-vote-poll
  4. 151 tool updatesv1.36.1
    • Addedtelegram-activate-stealth-mode
    • Addedtelegram-add-contact
    • Addedtelegram-approve-join-request
    • Addedtelegram-archive-chat
    • Addedtelegram-ban-user
    • Addedtelegram-block-user
    • Addedtelegram-clear-drafts
    • Addedtelegram-clear-recent-emoji-statuses
    • Addedtelegram-close-poll
    • Addedtelegram-create-business-chat-link
    • Addedtelegram-create-folder
    • Addedtelegram-create-group
    • Addedtelegram-create-invite-link
    • Addedtelegram-create-poll
    • Addedtelegram-create-topic
    • Addedtelegram-delete-business-chat-link
    • Addedtelegram-delete-fact-check
    • Addedtelegram-delete-folder
    • Addedtelegram-delete-profile-photo
    • Addedtelegram-delete-scheduled
    • Addedtelegram-delete-stories
    • Addedtelegram-delete-topic
    • Addedtelegram-edit-business-chat-link
    • Addedtelegram-edit-fact-check
    • Addedtelegram-edit-folder
    • Addedtelegram-edit-group
    • Addedtelegram-edit-story
    • Addedtelegram-edit-topic
    • Addedtelegram-export-story-link
    • Addedtelegram-get-admin-log
    • Addedtelegram-get-all-stories
    • Addedtelegram-get-boosts-list
    • Addedtelegram-get-boosts-status
    • Addedtelegram-get-broadcast-stats
    • Addedtelegram-get-business-chat-links
    • Addedtelegram-get-channel-updates
    • Addedtelegram-get-chat-folders
    • Addedtelegram-get-contact-requests
    • Addedtelegram-get-discussion-message
    • Addedtelegram-get-drafts
    • Addedtelegram-get-fact-check
    • Addedtelegram-get-global-privacy-settings
    • Addedtelegram-get-groups-for-discussion
    • Addedtelegram-get-installed-stickers
    • Addedtelegram-get-invite-links
    • Addedtelegram-get-megagroup-stats
    • Addedtelegram-get-message-buttons
    • Addedtelegram-get-message-link
    • Addedtelegram-get-message-read-participants
    • Addedtelegram-get-my-boosts
    • Addedtelegram-get-my-role
    • Addedtelegram-get-outbox-read-date
    • Addedtelegram-get-paid-reaction-privacy
    • Addedtelegram-get-peer-stories
    • Addedtelegram-get-poll-results
    • Addedtelegram-get-poll-voters
    • Addedtelegram-get-profile-photo
    • Addedtelegram-get-reactions
    • Addedtelegram-get-recent-reactions
    • Addedtelegram-get-recent-stickers
    • Addedtelegram-get-replies
    • Addedtelegram-get-saved-dialogs
    • Addedtelegram-get-scheduled
    • Addedtelegram-get-sessions
    • Addedtelegram-get-state
    • Addedtelegram-get-sticker-set
    • Addedtelegram-get-stories-archive
    • Addedtelegram-get-stories-by-id
    • Addedtelegram-get-story-views
    • Addedtelegram-get-suggested-folders
    • Addedtelegram-get-top-reactions
    • Addedtelegram-get-transcription
    • Addedtelegram-get-unread-mentions
    • Addedtelegram-get-unread-reactions
    • Addedtelegram-get-updates
    • Addedtelegram-get-web-preview
    • Addedtelegram-inline-query
    • Addedtelegram-inline-query-send
    • Addedtelegram-invite-to-group
    • Addedtelegram-kick-user
    • Addedtelegram-leave-group
    • Changedtelegram-list-chats2 fields changed
      • changedInput schema / properties / filterType / description
        Previous value: -"Filter by chat type"New value: +"Filter by chat type. 'contact_requests' shows only private chats from non-contacts"
      • changedInput schema / properties / filterType / enum
        Previous value: -[
        -  "private",
        -  "group",
        -  "channel"
        -]New value: +[
        +  "private",
        +  "group",
        +  "channel",
        +  "contact_requests"
        +]
    • Addedtelegram-list-emoji-statuses
    • Addedtelegram-list-topics
    • Changedtelegram-login1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Addedtelegram-logout
    • Addedtelegram-mark-dialog-unread
    • Addedtelegram-mute-chat
    • Addedtelegram-pin-chat
    • Addedtelegram-press-button
    • Addedtelegram-rate-transcription
    • Addedtelegram-react-to-story
    • Addedtelegram-read-stories
    • Addedtelegram-read-topic-messages
    • Addedtelegram-remove-admin
    • Addedtelegram-reorder-folders
    • Addedtelegram-report-spam
    • Addedtelegram-report-story
    • Addedtelegram-resolve-business-chat-link
    • Addedtelegram-revoke-invite-link
    • Addedtelegram-save-draft
    • Addedtelegram-search-global
    • Addedtelegram-search-sticker-sets
    • Addedtelegram-send-album
    • Addedtelegram-send-contact
    • Addedtelegram-send-dice
    • Addedtelegram-send-location
    • Changedtelegram-send-message3 fields changed
      • addedInput schema / properties / effect
        Added value: +{
        +  "description": "Optional message effect ID (numeric string, up to 19 digits). Premium animated effect attached to the message.",
        +  "pattern": "^\\d{1,19}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / quoteText
        Added value: +{
        +  "description": "Optional excerpt from the replied-to message to show as a quote above your reply. Requires `replyTo` to be set. Must be a verbatim substring of the original message text.",
        +  "type": "string"
        +}
      • addedInput schema / properties / topicId
        Added value: +{
        +  "description": "Forum topic ID to send message into (for groups with Topics enabled)",
        +  "type": "number"
        +}
    • Addedtelegram-send-paid-reaction
    • Addedtelegram-send-reaction
    • Addedtelegram-send-scheduled
    • Addedtelegram-send-sticker
    • Addedtelegram-send-story
    • Addedtelegram-send-typing
    • Addedtelegram-send-venue
    • Addedtelegram-send-video-note
    • Addedtelegram-send-voice
    • Addedtelegram-set-admin
    • Addedtelegram-set-auto-delete
    • Addedtelegram-set-birthday
    • Addedtelegram-set-business-away
    • Addedtelegram-set-business-greeting
    • Addedtelegram-set-business-hours
    • Addedtelegram-set-business-intro
    • Addedtelegram-set-business-location
    • Addedtelegram-set-chat-permissions
    • Addedtelegram-set-chat-reactions
    • Addedtelegram-set-default-reaction
    • Addedtelegram-set-emoji-status
    • Addedtelegram-set-global-privacy-settings
    • Addedtelegram-set-personal-channel
    • Addedtelegram-set-privacy
    • Addedtelegram-set-profile-color
    • Addedtelegram-set-profile-photo
    • Addedtelegram-set-slow-mode
    • Changedtelegram-status1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Addedtelegram-terminate-session
    • Addedtelegram-toggle-anti-spam
    • Addedtelegram-toggle-channel-signatures
    • Addedtelegram-toggle-folder-tags
    • Addedtelegram-toggle-forum-mode
    • Addedtelegram-toggle-paid-reaction-privacy
    • Addedtelegram-toggle-prehistory-hidden
    • Addedtelegram-toggle-story-pinned
    • Addedtelegram-toggle-story-pinned-to-top
    • Addedtelegram-transcribe-audio
    • Addedtelegram-translate-message
    • Addedtelegram-unban-user
    • Addedtelegram-unblock-user
    • Addedtelegram-update-profile
    • Addedtelegram-vote-poll
  5. 1 tool updatev1.4.0
    • Addedtelegram-join-chat
  6. 20 tool updatesv1.3.1
    • First observedtelegram-delete-message
    • First observedtelegram-download-media
    • First observedtelegram-edit-message
    • First observedtelegram-forward-message
    • First observedtelegram-get-chat-info
    • First observedtelegram-get-chat-members
    • First observedtelegram-get-contacts
    • First observedtelegram-get-profile
    • First observedtelegram-get-unread
    • First observedtelegram-list-chats
    • First observedtelegram-login
    • First observedtelegram-mark-as-read
    • First observedtelegram-pin-message
    • First observedtelegram-read-messages
    • First observedtelegram-search-chats
    • First observedtelegram-search-messages
    • First observedtelegram-send-file
    • First observedtelegram-send-message
    • First observedtelegram-status
    • First observedtelegram-unpin-message

TDQS

B3.4/5.0

Scored across 169 tools

Disambiguation3/5

Most tools are distinct, but there are several overlapping clusters: search-messages/search-global/read-messages, get-updates/get-channel-updates/get-unread, and a large family of reaction/story/business-link tools that could easily be confused. The consistent telegram- prefix helps, but an agent would still need to read descriptions carefully to pick the right call.

Naming Consistency4/5

The vast majority follow a clear telegram-verb-noun pattern with hyphenated lowercase names, which is highly consistent. Minor deviations exist such as telegram-status, telegram-login/logout, and telegram-inline-query, but these are isolated and do not undermine the overall pattern.

Tool Count1/5

169 tools is an extreme count for any MCP server, even one covering a broad API like Telegram. This is far beyond the 50+ threshold and creates a massive surface area that is difficult for agents to navigate and for users to reason about.

Completeness5/5

The tool surface is exceptionally comprehensive: messages, media, stories, polls, folders, admin functions, privacy, business features, sessions, boosts, invites, and profile management are all covered with lifecycle operations. There are no obvious dead ends or severe gaps for the stated Telegram domain.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects AI assistants to your real Telegram account via User API (MTProto). Features default-deny ACL with per-chat permissions, message search, file sending, forwarding, media downloads, and rate limiting.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Telegram integration for Claude, Cursor, and other MCP-compatible clients, exposing account, chat, message, contact, media, folder, and admin operations through the Model Context Protocol using Telethon.
    Apache 2.0