MCP-Telegram
MCP-Telegram connects AI assistants to Telegram as a userbot, enabling full access to your personal Telegram account for messaging, chat management, media handling, and contact management.
Connection & Authentication
Check connection status and account info
Authenticate via QR code login with session persistence across restarts
Messaging
Send text messages (with optional reply, Markdown/HTML formatting) and files (photos, documents, videos)
Edit, delete, forward, pin, and unpin messages
Reading & Searching
List recent chats with unread counts (filterable by type: private/group/channel)
Read messages from a specific chat with date range filtering
Search chats/users/channels by name or username
Search messages within a chat by text
Get unread chats at a glance
Chat Management
Mark chats as read
Get detailed chat info (name, type, member count, description)
List members of a group or channel
User & Contact Info
Retrieve your contacts list with phone numbers
View detailed user profiles (bio, photo, last seen)
Media
Download media from messages to local files
Chats can be targeted by numeric ID or @username. Compatible with Claude Desktop, Cursor, VS Code, Mastra, and other MCP clients.
Connects to Telegram via the MTProto protocol as a userbot, enabling AI assistants to manage chats, send and edit messages, list contacts, search message history, and download media.
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}stateInline 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_IDandAPI_HASHfrom my.telegram.org
Quick Start
1. Get Telegram API credentials
Go to my.telegram.org and log in with your phone number.
Navigate to API development tools.
Create a new application (any name and platform).
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 loginA 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/sessionto 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_PASSWORDso the login can complete:TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH TELEGRAM_2FA_PASSWORD=YOUR_PASSWORD npx @overpod/mcp-telegram loginThe 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-telegramThat'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 loginThen 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-telegramEach 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-telegramVariable | Description |
| Proxy server address |
| Proxy server port |
|
|
| MTProxy secret (enables MTProxy mode) |
| Optional proxy auth |
| 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-telegramVariable | Description |
| When |
Installation Options
npx (recommended, zero install)
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 loginPre-built binary (no runtime needed)
Download from Releases โ standalone single-file binaries, zero dependencies:
Platform | Server | Login CLI |
Linux x64 |
|
|
Linux ARM64 |
|
|
macOS x64 |
|
|
macOS ARM64 |
|
|
Windows x64 |
|
|
# 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-telegramFrom source
git clone https://github.com/mcp-telegram/mcp-telegram.git
cd mcp-telegram
npm install && npm run buildDocker
docker build -t mcp-telegram https://github.com/mcp-telegram/mcp-telegram.gitLogin (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.jsRun 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-telegramNote: Login must be done once via terminal. After that, the session is persisted in
~/.mcp-telegramand 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-telegramClaude Desktop
Open your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the Telegram server:
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["@overpod/mcp-telegram"],
"env": {
"TELEGRAM_API_ID": "YOUR_ID",
"TELEGRAM_API_HASH": "YOUR_HASH"
}
}
}
}Restart Claude Desktop.
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).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)
Login via terminal first (see Docker section above).
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"
]
}
}
}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 |
|
Messaging |
|
Scheduled |
|
Reading |
|
Drafts |
|
Forum Topics |
|
Polls |
|
Poll Interaction (v1.31.0) |
|
Reactions |
|
Paid Reactions (v1.31.0) |
|
Audio Transcription (v1.31.0) |
|
Fact-check (v1.31.0) |
|
Stickers |
|
Media |
|
Rich Media Sending |
|
Groups |
|
Chat Info |
|
Folders (v1.33.0) |
|
Global Privacy (v1.33.0) |
|
Invite Links |
|
Contacts |
|
Moderation |
|
Profiles (read) |
|
Profile (write, v1.32.0) |
|
Account |
|
Pinning |
|
Chat Settings |
|
Admin Toggles |
|
Stats |
|
Inline Bots & Buttons |
|
Real-Time Polling |
|
Stories (read) |
|
Stories (write, v1.30.0) |
|
Discussion (v1.30.0) |
|
Read Receipts (v1.30.0) |
|
Boosts |
|
Business (v1.32.0) |
|
Opt-in (env-gated) |
|
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 |
|
|
|
|
| Stars balance & transactions, top-up options, subscriptions, and Star Gifts (browse / save / convert) |
|
|
|
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 BiomeProject 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 utilitiesTech 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 loginThen 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/sessionwith0600permissions (owner-only access)Session directory is created with
0700permissionsPhone 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_DUPLICATEDerrors (see Troubleshooting)This is a userbot (personal account), not a bot -- respect the Telegram Terms of Service
License
MIT
Available Tools
169 toolstelegram-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.
| Name | Required | Description | Default |
|---|---|---|---|
| past | No | Remove your views from stories you already watched | |
| future | No | Hide your views for the next 25 minutes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | Phone number for the contact | |
| userId | Yes | User ID or username to add | |
| lastName | No | Last name for the contact | |
| firstName | Yes | First name for the contact |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username where the join request is pending | |
| userId | Yes | User ID or username of the requesting user | |
| approved | Yes | true to approve the join request, false to deny |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| archive | Yes | true to archive, false to unarchive |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| userId | Yes | User ID or username to ban |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User ID or username to block |
TDQS
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.
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.
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.
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.
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.
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-draftsADestructive
Delete saved message drafts. Pass chatId to clear the draft for a single chat. Without chatId, clears drafts in ALL chats โ requires confirmAllChats: true
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | No | Chat ID or username. If provided, clears draft only for this chat | |
| confirmAllChats | No | Must be true to wipe drafts across ALL chats when chatId is omitted |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID of the poll to close |
TDQS
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.
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.
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.
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.
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.
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-business-chat-linkA
Create a Telegram Business chat link (t.me/m/... deep-link that opens a chat with you pre-filled with a message). Returns JSON with link, slug, message, title, and views. Requires Telegram Business subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Admin-facing label (not visible to visitors, max 32 chars) | |
| message | Yes | Pre-filled message text shown to users who click the link | |
| parseMode | No | Format message as Markdown or HTML |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and open-world hint. The description adds context by specifying the link format (t.me/m/...) and that it pre-fills a message, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and includes essential detail without any fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 3 parameters, the description is fairly complete: it specifies the output fields, the prerequisite, and the link type. It lacks error or limitation details, but that's acceptable given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all 3 parameters. The description does not add new parameter meaning but mentions return fields, which is helpful but not about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'Telegram Business chat link', specifying it's a deep-link type. It is distinct from sibling tools like telegram-create-invite-link or telegram-edit-business-chat-link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite 'Requires Telegram Business subscription' but does not provide explicit guidance on when to use this tool versus alternatives like telegram-create-invite-link or telegram-edit-business-chat-link.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bots | No | Include all bots | |
| title | Yes | Folder name (max 12 chars) | |
| groups | No | Include all groups | |
| contacts | No | Include all contacts | |
| emoticon | No | Single emoji icon for the folder | |
| broadcasts | No | Include all channels | |
| excludeRead | No | Exclude read chats | |
| nonContacts | No | Include all non-contacts | |
| pinnedPeers | No | Chats to pin at top of this folder (max 5) | |
| excludeMuted | No | Exclude muted chats | |
| excludePeers | No | Chat IDs/usernames to explicitly exclude (max 100) | |
| includePeers | No | Chat IDs/usernames to explicitly include (max 100) | |
| excludeArchived | No | Exclude archived chats |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| forum | No | Enable topics (requires supergroup) | |
| title | Yes | Group name | |
| users | Yes | Usernames or IDs to invite | |
| supergroup | No | Create as supergroup (supports >200 members, admin features) | |
| description | No | Group description |
TDQS
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.
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.
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.
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.
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.
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-invite-linkC
Create a new invite link for a group or channel
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Label for the invite link (only visible to admins) | |
| chatId | Yes | Chat ID or username | |
| expireDate | No | Link expiration as Unix timestamp | |
| memberLimit | No | Max number of users who can join via this link | |
| requestApproval | No | Require admin approval to join |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description only states 'create', which aligns with readOnlyHint=false (write operation). However, it does not disclose any additional behavioral traits, such as the need for admin rights, rate limits, or whether the link is automatically active. The openWorldHint=true annotation suggests possible side effects, but these are not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words, front-loaded and efficient. No wasted words, but could be slightly longer to include essential guidance without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is too minimal. It omits what the tool returns (the invite link), prerequisites (e.g., must be admin), and how it interacts with related tools. Siblings indicate a rich domain, but this description does not provide sufficient context for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a clear description. The tool description adds no additional meaning beyond what is in 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb and resource: 'Create a new invite link for a group or channel'. However, it does not distinguish from sibling like 'telegram-create-business-chat-link', which is a similar operation for business chats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Siblings include 'telegram-revoke-invite-link', 'telegram-edit-business-chat-link', and 'telegram-get-invite-links', but the description provides no context for choosing this tool.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | No | Quiz mode (one correct answer) | |
| chatId | Yes | Chat ID or username | |
| answers | Yes | Answer options (2-10) | |
| question | Yes | Poll question | |
| correctAnswer | No | Index of correct answer (0-based, required for quiz mode) | |
| multipleChoice | No | Allow multiple answers |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Topic title | |
| chatId | Yes | Chat ID or username of the forum supergroup | |
| iconColor | No | Optional icon color (one of 7322096, 16766590, 13338331, 9367192, 16749490, 16225862) | |
| iconEmojiId | No | Optional custom emoji document ID for the icon (numeric string) |
TDQS
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.
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.
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.
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.
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.
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-business-chat-linkA
Delete a Telegram Business chat link by its slug. Requires Telegram Business subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Link slug to delete (from t.me/m/<slug>) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (write operation) and openWorldHint=true (side effects possible). The description adds the subscription requirement but does not disclose additional behavioral traits like irreversibility, immediate invalidation of link, or any cascading effects. With annotations providing partial transparency, the description adds modest context but not enough for a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states action and method, second adds requirement. Extremely concise with no extraneous information. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter, the description is mostly complete. It lacks mention of return value or success behavior, but given no output schema, this is a minor gap. The openWorldHint annotation suggests side effects, which are not explained, keeping it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and describes the 'slug' parameter with format hint. The description reuses 'by its slug', adding no new semantic depth beyond the schema. Baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), resource (Telegram Business chat link), method (by slug), and a prerequisite (requires Telegram Business subscription). It distinguishes from sibling tools like create-business-chat-link, edit-business-chat-link, and get-business-chat-links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite (Telegram Business subscription) and context (by slug), but does not explicitly state when not to use this tool or name alternative tools. However, given the specific delete action, the usage is reasonably implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram-delete-fact-checkADestructive
Remove a fact-check annotation. Requires fact-checker privileges.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (channel) | |
| messageId | Yes | Message ID whose fact-check to remove |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Folder ID to delete (โฅ 2) |
TDQS
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.
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.
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.
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.
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.
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-messageBDestructive
Delete messages in a Telegram chat
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageIds | Yes | Array of message IDs to delete |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| photoIds | Yes | Array of photo IDs (stringified long) to delete from your profile photo history |
TDQS
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.
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.
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.
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.
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.
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-scheduledBDestructive
Delete scheduled messages in a Telegram chat
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageIds | Yes | Array of scheduled message IDs to delete (1-100) |
TDQS
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.
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.
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.
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.
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.
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-storiesADestructive
Delete one or more of your own stories. This action is irreversible and requires confirm:true.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Story IDs to delete (1โ100 per request) | |
| chatId | No | Peer owning the stories | me |
| confirm | Yes | Pass true to confirm irreversible deletion |
TDQS
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.
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.
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.
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.
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.
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-topicADestructive
Delete a forum topic and all its message history
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username of the forum supergroup | |
| topicId | Yes | Topic ID to delete |
TDQS
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.
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.
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.
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.
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.
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-mediaARead-only
Download media from a Telegram message to a local file
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID containing media | |
| downloadPath | Yes | Absolute path to save file |
TDQS
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.
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.
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.
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.
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.
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-business-chat-linkA
Edit an existing Telegram Business chat link by its slug (the trailing segment after t.me/m/). Returns JSON with updated fields. Requires Telegram Business subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Link slug โ the last path segment of t.me/m/<slug> | |
| title | No | New admin-facing label (max 32 chars) | |
| message | Yes | New pre-filled message text | |
| parseMode | No | Format message as Markdown or HTML |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true, consistent with an edit operation. The description adds that it returns JSON with updated fields and requires a Business subscription, providing useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no superfluous words: first sentence states purpose and identification method, second covers return type and prerequisite. Optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, link identification, return format, and a key prerequisite. Without an output schema, the return mention is helpful. Could mention parseMode enum details, but schema suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions in the schema. The description adds context for the slug (trailing segment after t.me/m/) and clarifies that title and message are 'new' values, enhancing understanding without repeating schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (edit), resource (existing business chat link), and identifier (slug). Distinguishes from sibling tools like create-business-chat-link and delete-business-chat-link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions the requirement of a Telegram Business subscription. The sibling list provides context for when to use this tool versus creating or deleting links, but no explicit 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-edit-fact-checkA
Add or update a fact-check annotation. Requires fact-checker privileges (limited to independent verifiers in supported countries).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Fact-check annotation text (1-1024 chars) | |
| chatId | Yes | Chat ID or username (channel) | |
| messageId | Yes | Message ID to annotate | |
| parseMode | No | Text format (currently ignored โ plain text only) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Folder ID (โฅ 2; 0 = All Chats, 1 = Archive are system folders) | |
| bots | No | ||
| title | No | New folder name (max 12 chars) | |
| groups | No | ||
| contacts | No | ||
| emoticon | No | New emoji icon | |
| broadcasts | No | ||
| excludeRead | No | ||
| nonContacts | No | ||
| pinnedPeers | No | Replace pinnedPeers list entirely | |
| excludeMuted | No | ||
| excludePeers | No | Replace excludePeers list entirely | |
| includePeers | No | Replace includePeers list entirely | |
| excludeArchived | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New group title | |
| chatId | Yes | Chat ID or username | |
| photoPath | No | Absolute path to new group photo image file | |
| description | No | New group description (supergroups only) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | New message text | |
| chatId | Yes | Chat ID or username | |
| messageId | Yes | ID of the message to edit |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Override auto-detected media type for new file | |
| chatId | No | Peer owning the story | me |
| caption | No | New caption; pass '' to clear | |
| privacy | No | New privacy setting | |
| storyId | Yes | ID of the story to edit | |
| filePath | No | Absolute path to replacement media | |
| parseMode | No | Caption parse mode | |
| allowUserIds | No | Required when privacy='selected' | |
| disallowUserIds | No | Blocked user IDs (ignored for 'selected') |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New topic title | |
| chatId | Yes | Chat ID or username of the forum supergroup | |
| closed | No | Close (true) or reopen (false) the topic | |
| hidden | No | Hide (true) or show (false) the General topic | |
| topicId | Yes | Topic ID (get from telegram-list-topics) | |
| iconEmojiId | No | New custom emoji document ID for the icon (numeric string) |
TDQS
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.
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.
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.
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.
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.
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-linkARead-only
Get a shareable t.me/โฆ URL for a public story.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Peer who posted the story | |
| storyId | Yes | Story ID to get the link for |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| toChatId | Yes | Destination chat ID or username | |
| fromChatId | Yes | Source chat ID or username | |
| messageIds | Yes | Array of message IDs to forward |
TDQS
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.
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.
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.
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.
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.
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-logARead-only
Get the admin action log (recent event history) of a supergroup or channel. Includes bans, edits, pins, and role changes
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Optional text filter for events | |
| limit | No | Number of events to return (1-100) | |
| chatId | Yes | Chat ID or username (supergroup or channel) |
TDQS
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.
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.
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.
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.
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.
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-storiesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Load the next page (use with state from a prior response) | |
| state | No | Pagination state token returned by a previous call | |
| hidden | No | Fetch stories from hidden/archived peers instead of the main feed |
TDQS
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.
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.
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.
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.
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.
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-listARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| chat | Yes | Channel or supergroup to query โ id, @username, or display name fragment | |
| gifts | No | If true, return only gift boosts | |
| limit | No | Max boosts to return per page (default 50, max 100) | |
| offset | No | Pagination cursor returned as nextOffset from the previous call |
TDQS
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.
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.
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.
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.
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.
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-statusARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| chat | Yes | Channel or supergroup to query โ id, @username, or display name fragment |
TDQS
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.
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.
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.
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.
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.
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-statsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| dark | No | Prefer dark-theme palette when Telegram renders graphs | |
| chatId | Yes | Broadcast channel ID or username | |
| includeGraphs | No | Include raw graph data for each series (growth, followers, interactions, etc.). Default false โ returns only aggregate numbers + metadata |
TDQS
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.
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.
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.
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.
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.
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-business-chat-linksARead-only
List Telegram Business chat links configured for the account. Each entry includes the t.me/... link, the prefilled message, optional title (admin-facing label), views count, and entityCount. Requires Telegram Business โ returns empty list when none configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and openWorldHint. The description adds valuable context: the requirement for Telegram Business, the empty list behavior, and the fields in each entry, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The first sentence front-loads the purpose, and the second provides necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema and no output schema, the description fully explains what the tool returns (including specific fields), the requirement, and behavior when empty. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. Baseline for 0 parameters is 4, and the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists Telegram Business chat links, details the contents of each entry (t.me/... link, prefilled message, title, views, entityCount), and distinguishes from siblings like create/edit/delete/resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the prerequisite (Requires Telegram Business) and the empty list behavior when none configured, providing clear guidance on when to use this tool. However, it does not explicitly contrast with sibling tools for creating or editing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram-get-channel-updatesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| pts | Yes | Last known per-channel pts | |
| force | No | Force request updates even if the client hasn't processed previous ones (rarely needed) | |
| limit | No | Max updates per batch (default 100) | |
| chatId | Yes | Channel or supergroup ID or username |
TDQS
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.
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.
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.
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.
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.
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-foldersARead-only
Get list of your Telegram chat folders (filters) with their names and chat counts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-infoARead-only
Get detailed info about a Telegram chat including name, type, members, description, and forum status
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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-membersCRead-only
Get members of a Telegram group or channel
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of members to return | |
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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-requestsARead-only
Get incoming messages from non-contacts (contact requests). Shows who messaged you without being in your contacts, with message preview
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of contact requests to return |
TDQS
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.
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.
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.
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.
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.
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-contactsARead-only
Get your Telegram contacts list with phone numbers
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of contacts to return |
TDQS
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.
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.
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.
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.
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.
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-messageARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Channel ID or @username that contains the post | |
| messageId | Yes | ID of the channel post to get discussion info for |
TDQS
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.
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.
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.
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.
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.
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-draftsARead-only
Get all saved message drafts across chats
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-checkARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (channel) | |
| messageIds | Yes | Message IDs to get fact-checks for (1-100) |
TDQS
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.
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.
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.
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.
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.
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-settingsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-discussionARead-only
List groups that can be linked as a discussion group to a channel you admin. Helper for channel admins setting up comment threads.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-stickersARead-only
List all sticker sets installed by the user. Returns pack names and short names for use with other sticker tools
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-invite-linksARead-only
Get list of invite links for a group or channel. By default returns links created by the current account; pass adminId to query another admin's links
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max links to return | |
| chatId | Yes | Chat ID or username | |
| adminId | No | Admin user ID or username to list links for (default: current account) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only and open-world. Description adds context about default vs admin-specific queries, enhancing behavioral understanding without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. First sentence delivers purpose, second adds key usage detail. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core usage with default vs admin query. No output schema but not critical for a simple list tool. Could mention pagination limit behavior but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions. Description adds nuance about adminId default behavior, but does not significantly expand beyond schema. Baseline at 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get list of invite links for a group or channel', specifying the verb, resource, and scope. It distinguishes from siblings like create-invite-link by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on default behavior (current account links) and how to query other admins via adminId. Lacks explicit when-not-to-use or alternatives, but purpose is 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-megagroup-statsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| dark | No | Prefer dark-theme palette when Telegram renders graphs | |
| chatId | Yes | Supergroup ID or username | |
| includeGraphs | No | Include raw graph data for each series (growth, members, messages, actions, top hours, weekdays, etc.). Default false โ returns only aggregate numbers + top lists |
TDQS
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.
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.
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.
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.
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.
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-buttonsARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username where the message lives | |
| messageId | Yes | Message ID whose keyboard to inspect |
TDQS
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.
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.
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.
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.
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.
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-linkARead-only
Get a t.me link to a specific message in a Telegram channel or supergroup
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (channel or supergroup) | |
| thread | No | Link to the message thread instead of the message itself | |
| messageId | Yes | ID of the message to link to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the description correctly implies a safe read operation. It adds context by specifying the link is a t.me link and limited to channels/supergroups, which is helpful but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 complete schema coverage and proper annotations, the description provides all necessary information. No output schema exists, but the return value (a link) is obvious from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond what is in the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 't.me link to a specific message', specifying the context of Telegram channel or supergroup. This makes the tool's purpose distinct from sibling tools like telegram-forward-message or telegram-send-message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage by stating what the tool does, but does not provide explicit guidance on when to use it versus alternatives (e.g., when a link is needed vs forwarding a message) or any prerequisites like requiring chat ID and message ID.
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-participantsARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Group chat ID or @username | |
| messageId | Yes | ID of the message to check read status for |
TDQS
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.
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.
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.
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.
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.
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-boostsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-roleARead-only
Get the current user's role in a chat (creator, admin, or member)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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-dateARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Private chat ID or @username of the recipient | |
| messageId | Yes | ID of your outgoing message |
TDQS
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.
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.
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.
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.
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.
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-privacyARead-only
Get your current default paid reaction privacy setting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-storiesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| chat | Yes | Peer to fetch stories from โ user/channel id, @username, phone, or display name fragment |
TDQS
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.
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.
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.
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.
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.
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-resultsARead-only
Get aggregated poll results: vote counts, percentages, quiz answer status
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID of the poll |
TDQS
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.
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.
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.
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.
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.
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-votersARead-only
List users who voted for specific poll options (public polls only, paginated)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max voters to return | |
| chatId | Yes | Chat ID or username | |
| offset | No | Pagination offset from previous call | |
| messageId | Yes | Message ID of the poll | |
| optionIndex | No | Zero-based option index to filter by. Omit to get all voters |
TDQS
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.
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.
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.
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.
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.
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-profileARead-only
Get detailed profile info of a Telegram user including bio, birthday, premium status, business info and more
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User ID or username |
TDQS
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.
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.
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.
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.
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.
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-photoARead-only
Download profile photo of a Telegram user, group, or channel. Returns inline image or saves to file
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Photo size: 'small' (160x160) or 'big' (640x640). Default: big | |
| entityId | Yes | User/Chat/Channel ID or username | |
| savePath | No | Absolute path to save file. If omitted, returns inline base64 image |
TDQS
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.
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.
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.
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.
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.
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-reactionsARead-only
Get detailed reaction info for a message: which reactions, counts, and who reacted (when visible)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID to get reactions for |
TDQS
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.
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.
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.
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.
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.
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-reactionsARead-only
Get the list of emoji reactions the current account used recently
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of reactions to return |
TDQS
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.
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.
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.
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.
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.
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-stickersARead-only
Get recently used stickers. Returns each sticker with its list index and associated emoji
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-repliesBRead-only
Get replies/comments under a Telegram channel post or discussion message
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of replies to return | |
| chatId | Yes | Chat ID or username (channel or linked discussion group) | |
| messageId | Yes | ID of the message whose replies to fetch |
TDQS
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.
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.
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.
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.
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.
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-dialogsARead-only
Get Saved Messages dialogs (Telegram's per-sender grouping of messages forwarded to your Saved Messages)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max dialogs to return |
TDQS
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.
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.
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.
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.
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.
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-musicARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | User to query โ id, @username, or display name fragment. Defaults to yourself | |
| limit | No | Max tracks to return per page (default 50, max 100) | |
| offset | No | Pagination offset (default 0) |
TDQS
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.
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.
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.
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.
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.
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-scheduledBRead-only
List scheduled messages in a Telegram chat
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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-sessionsARead-only
Get list of all active Telegram sessions (logged-in devices) with device info, IP, and last active time
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-stateARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-setARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| shortName | Yes | Short name of the sticker set (e.g. 'AnimatedEmojis', 'HotCherry'). Find names via telegram-search-sticker-sets or from t.me/addstickers/<shortName> links |
TDQS
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.
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.
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.
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.
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.
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-archiveARead-only
Fetch auto-archived (expired) stories from a peer's archive. Paginate via offsetId (pass last story id from previous page).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max stories to return (1โ100, default 50) | |
| chatId | No | Peer whose archive to fetch | me |
| offsetId | No | Pagination offset: pass last story ID from previous page (0 to start) |
TDQS
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.
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.
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.
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.
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.
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-idARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Story IDs to fetch (1โ100 per request) | |
| chat | Yes | Peer to fetch stories from โ user/channel id, @username, phone, or display name fragment |
TDQS
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.
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.
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.
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.
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.
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-viewsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Filter viewers by name substring | |
| chat | Yes | Peer owning the story โ usually 'me' or your own user id/@username | |
| limit | No | Max viewers to return (default 50, max 100) | |
| offset | No | Pagination offset from a previous response's nextOffset | |
| storyId | Yes | Story ID to fetch viewers for | |
| justContacts | No | Return only contacts | |
| forwardsFirst | No | Sort forwards/reposts first | |
| reactionsFirst | No | Sort viewers who reacted first |
TDQS
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.
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.
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.
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.
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.
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-foldersARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-reactionsBRead-only
Get the list of most popular emoji reactions available on Telegram
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of reactions to return |
TDQS
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.
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.
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.
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.
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.
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-transcriptionARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID of the voice or video note |
TDQS
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.
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.
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.
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.
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.
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-unreadARead-only
Get chats with unread messages. Forums show per-topic unread breakdown
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of unread chats to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of mentions to return | |
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of messages to return | |
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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-updatesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| pts | Yes | Last known pts (from telegram-get-state or prior telegram-get-updates) | |
| qts | Yes | Last known qts (secret-chat / encrypted stream cursor; 0 if unknown) | |
| date | Yes | Last known date (unix seconds from prior state) | |
| ptsLimit | No | Max updates per batch (default 100, capped at 1000) | |
| ptsTotalLimit | No | Max total updates across paginated slices (default 1000, capped at 1000) |
TDQS
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.
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.
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.
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.
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.
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-previewARead-only
Fetch Telegram's web-page preview metadata (type, title, description, site name) for a URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to preview (http:// or https://; literal private/loopback/reserved IPs rejected) |
TDQS
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.
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.
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.
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.
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.
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-queryARead-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
| Name | Required | Description | Default |
|---|---|---|---|
| bot | Yes | Inline bot username (e.g. @gif) or numeric user ID | |
| query | Yes | Query text the bot should resolve (may be empty string) | |
| chatId | Yes | Chat ID or username providing context for the inline query | |
| offset | No | Pagination offset returned by a previous call as nextOffset (empty string on first call) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Target chat ID or username to send the result into | |
| silent | No | Send without notification | |
| hideVia | No | Hide the 'via @bot' label on the sent message | |
| queryId | Yes | queryId from a prior telegram-inline-query call (valid ~60s) | |
| replyTo | No | Message ID to reply to | |
| resultId | Yes | id of the chosen result from telegram-inline-query results[] | |
| clearDraft | No | Clear the chat draft after sending |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | Usernames or IDs to invite | |
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Username (@group), link (t.me/group), or invite link (t.me/+xxx) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| userId | Yes | User ID or username to kick |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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-chatsARead-only
List Telegram chats with unread counts, type indicators, and contact status
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of chats to return | |
| filterType | No | Filter by chat type. 'contact_requests' shows only private chats from non-contacts | |
| offsetDate | No | Unix timestamp offset for pagination |
TDQS
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.
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.
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.
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.
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.
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-statusesARead-only
List default or recently-used emoji statuses available for your account. Useful for finding a documentId to pass to telegram-set-emoji-status.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Which list: default (popular set), recent (your recent usage), channel_default (for channels), collectible (paid unique) | default |
| limit | No | Max items to return |
TDQS
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.
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.
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.
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.
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.
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-topicsARead-only
List forum topics in a Telegram group with Topics enabled. Shows topic names, unread counts, and status
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max topics to return | |
| chatId | Yes | Chat ID or username of a group with Topics enabled |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-logoutADestructive
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| unread | Yes | true to mark as unread, false to clear the mark |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| muted | Yes | true to mute, false to unmute | |
| chatId | Yes | Chat ID or username | |
| duration | No | Mute duration in seconds (only when muted=true, must be > 0). Omit to mute forever |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pin | Yes | true to pin, false to unpin | |
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| silent | No | Pin without notification | |
| messageId | Yes | Message ID to pin |
TDQS
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.
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.
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.
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.
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.
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}
| Name | Required | Description | Default |
|---|---|---|---|
| row | No | Button row index (0-based) โ required unless data is provided | |
| data | No | Raw callback_data as base64 string (escape hatch โ prefer row/column) | |
| chatId | Yes | Chat ID or username where the message lives | |
| column | No | Button column index (0-based) โ required unless data is provided | |
| messageId | Yes | Message ID whose inline button to press |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| good | Yes | true = good quality, false = poor quality | |
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID of the voice or video note | |
| transcriptionId | Yes | Transcription ID returned by telegram-transcribe-audio |
TDQS
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.
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.
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.
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.
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.
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 ''.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | Reaction emoji. Empty string '' removes the reaction. | |
| chatId | Yes | Peer who posted the story | |
| storyId | Yes | Story ID to react to | |
| addToRecent | No | Add emoji to your recently used reactions |
TDQS
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.
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.
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.
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.
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.
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-messagesARead-only
Read recent messages from a Telegram chat with sender names, dates, media info, and reactions
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of messages to return | |
| chatId | Yes | Chat ID or username | |
| maxDate | No | Unix timestamp: only messages before this date | |
| minDate | No | Unix timestamp: only messages after this date | |
| offsetId | No | Message ID to start from (for pagination) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| maxId | Yes | Stories up to and including this ID will be marked seen | |
| chatId | Yes | Peer whose stories to mark as seen |
TDQS
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.
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.
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.
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.
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.
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-messagesARead-only
Read messages from a specific forum topic in a Telegram group
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of messages to return | |
| chatId | Yes | Chat ID or username | |
| topicId | Yes | Topic ID (get from telegram-list-topics) | |
| offsetId | No | Message ID to start from (for pagination) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| userId | Yes | User ID or username to demote |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes | Ordered list of folder IDs (โฅ 2). Obtain IDs from telegram-get-chat-folders |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username to report |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Story IDs to report | |
| chatId | Yes | Peer who posted the story | |
| option | No | Base64-encoded option bytes from a prior report step, or empty string to start the flow | |
| message | No | Optional message to accompany the report |
TDQS
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.
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.
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.
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.
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.
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-resolve-business-chat-linkARead-only
Resolve a Telegram Business chat link by slug to see whose chat it opens and the pre-filled message. Returns JSON with peerId, peerType, message, and entityCount.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Link slug to resolve (from t.me/m/<slug>) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and openWorldHint. The description adds output field details but does not elaborate on side effects or safety beyond what annotations convey. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states purpose and the second states output. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, no output schema, and clear annotation hints, the description fully covers the needed context. It lists the return fields, so the agent knows what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'slug' is fully described in the schema (100% coverage). The description adds valuable context: 'from t.me/m/<slug>', which helps the agent format the input correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Resolve'), the resource ('Telegram Business chat link'), and the method ('by slug'). It specifies the output fields, making the tool's purpose unambiguous and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for resolving a link into chat details, but does not explicitly mention when to use versus alternatives like telegram-get-business-chat-links or telegram-create-business-chat-link. Context is clear 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-revoke-invite-linkADestructive
Revoke an invite link for a group or channel
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | The invite link to revoke | |
| chatId | Yes | Chat ID or username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the destructive nature is clear. The description ('Revoke') aligns with this but adds no further behavioral context (e.g., whether notifications are sent, if the link becomes unusable immediately, or permission requirements). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words or information. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two well-documented parameters, no output schema, and annotations covering safety, the description is adequate. It could mention that the action is irreversible, but this is implied by destructiveHint. Overall, it provides sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters having clear descriptions. The tool description adds no additional meaning beyond what the schema already 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific action: revoking an invite link for a group or channel. It uses a specific verb ('revoke') and resource ('invite link'), and distinguishes itself from sibling tools like 'telegram-create-invite-link' and 'telegram-get-invite-links'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 any prerequisites, scenarios where revocation is appropriate, or when to avoid using it. Sibling tools exist for creating or getting invite links, but no comparative 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-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
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Draft text. Empty string clears the draft | |
| chatId | Yes | Chat ID or username | |
| replyTo | No | Message ID this draft replies to |
TDQS
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.
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.
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.
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.
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.
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-chatsARead-only
Search for Telegram chats, users, or channels by name or username. Returns description and member count
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| query | Yes | Search query (name or username) |
TDQS
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.
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.
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.
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.
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.
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-globalARead-only
Search messages globally across all public Telegram chats and channels
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| query | Yes | Search text | |
| maxDate | No | Unix timestamp: only messages before this date | |
| minDate | No | Unix timestamp: only messages after this date |
TDQS
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.
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.
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.
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.
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.
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-messagesARead-only
Search messages in a specific Telegram chat by text
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| query | Yes | Search text | |
| chatId | Yes | Chat ID or username | |
| maxDate | No | Unix timestamp: only messages before this date | |
| minDate | No | Unix timestamp: only messages after this date |
TDQS
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.
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.
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.
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.
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.
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-setsARead-only
Search for sticker sets by name or keyword. Returns matching sticker pack names that can be used with telegram-get-sticker-set
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. 'cat', 'love', 'pepe', 'anime') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Array of media items (2-10) | |
| chatId | Yes | Chat ID or username | |
| caption | No | Album-level caption (attached to the first item โ shown in the collapsed view) | |
| replyTo | No | Message ID to reply to | |
| topicId | No | Forum topic ID | |
| parseMode | No | Caption format (applies to all captions) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number in E.164-like format โ 6-15 digits, optional leading +. Note: sent as-is; Telegram shows the number to the recipient. | |
| vcard | No | Optional vCard v3.0 text content | |
| chatId | Yes | Chat ID or username | |
| replyTo | No | ||
| topicId | No | ||
| lastName | No | Contact last name | |
| firstName | Yes | Contact first name |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | No | Dice emoji: ๐ฒ dice (1-6), ๐ฏ dart (1-6), ๐ฐ slot machine (1-64), ๐ basketball (1-5), โฝ football (1-5), ๐ณ bowling (1-6) | ๐ฒ |
| chatId | Yes | Chat ID or username | |
| replyTo | No | ||
| topicId | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| caption | No | File caption | |
| filePath | Yes | Absolute path to file |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| heading | No | Direction the user is heading, 1-360 degrees (meaningful only for live locations) | |
| replyTo | No | Message ID to reply to | |
| topicId | No | Forum topic ID | |
| latitude | Yes | Latitude in decimal degrees (-90 to 90) | |
| longitude | Yes | Longitude in decimal degrees (-180 to 180) | |
| livePeriod | No | If set, sends a live location updated for N seconds (60-86400). Omit for static pin. | |
| accuracyRadius | No | Horizontal accuracy radius in meters (0 = unknown) | |
| proximityRadius | No | Alert radius for proximity notification in meters (live only) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Message text | |
| chatId | Yes | Chat ID or username (e.g. @username or numeric ID) | |
| effect | No | Optional message effect ID (numeric string, up to 19 digits). Premium animated effect attached to the message. | |
| replyTo | No | Message ID to reply to | |
| topicId | No | Forum topic ID to send message into (for groups with Topics enabled) | |
| parseMode | No | Message format: md (Markdown) or html | |
| quoteText | No | 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. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of Stars to send (1-2500) | |
| chatId | Yes | Chat ID or username (channel) | |
| private | No | true = anonymous on leaderboard, false = show name, omit = use account default | |
| messageId | Yes | Message ID of the channel post |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | No | Reaction emoji(s): single '๐' or array ['๐','๐ฅ']. Omit to remove all reactions | |
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID to react to | |
| addToExisting | No | If true, add reaction(s) to existing ones instead of replacing |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Message text | |
| chatId | Yes | Chat ID or username (use 'me' or 'self' for Saved Messages) | |
| replyTo | No | Message ID to reply to | |
| parseMode | No | Message format: md (Markdown) or html | |
| scheduleDate | Yes | Unix timestamp when to send the message (must be in the future) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Index of the sticker in the set (0-based, get from telegram-get-sticker-set) | |
| chatId | Yes | Chat ID or username | |
| replyTo | No | Message ID to reply to | |
| stickerSet | Yes | Short name of the sticker set (e.g. 'HotCherry') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Override auto-detected media type | |
| chatId | No | Peer to post the story to โ 'me', @username, or numeric ID | me |
| period | No | Story lifetime in seconds: 21600=6h, 43200=12h, 86400=24h (default), 172800=48h | |
| pinned | No | Keep the story in the profile highlights after expiry | |
| caption | No | Story caption (max 2048 chars) | |
| privacy | No | Who can see the story | everyone |
| filePath | Yes | Absolute path to the photo or video file to upload | |
| parseMode | No | Caption parse mode: md or html | |
| noforwards | No | Prevent others from forwarding or saving the story | |
| allowUserIds | No | Required when privacy='selected': numeric user IDs allowed to see the story | |
| disallowUserIds | No | User IDs explicitly blocked from seeing the story (ignored for privacy='selected') |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Typing action to broadcast | typing |
| chatId | Yes | Chat ID or username |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Venue name (e.g. 'Red Square') | |
| chatId | Yes | Chat ID or username | |
| address | Yes | Street address | |
| replyTo | No | ||
| topicId | No | ||
| venueId | No | Provider-specific venue ID | |
| latitude | Yes | Venue latitude | |
| provider | No | Data provider โ typically 'foursquare' or 'gplaces'. Defaults to 'foursquare'. | |
| longitude | Yes | Venue longitude | |
| venueType | No | Provider-specific venue type category |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| length | No | Frame edge length in pixels (the circle is square-cropped) | |
| replyTo | No | Message ID to reply to | |
| topicId | No | Forum topic ID | |
| duration | No | Duration in seconds (Telegram caps at 60) | |
| filePath | Yes | Absolute local filesystem path to video file (MP4 preferred, square source recommended for best look). URLs are rejected. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (e.g. @username or numeric ID) | |
| caption | No | Optional caption shown below the voice note | |
| replyTo | No | Message ID to reply to | |
| topicId | No | Forum topic ID (for groups with Topics enabled) | |
| filePath | Yes | Absolute local filesystem path to audio file (OGG/Opus preferred; M4A/MP3 also accepted). URLs are rejected. | |
| parseMode | No | Caption format: md (Markdown) or html |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Custom admin title | |
| chatId | Yes | Chat ID or username | |
| userId | Yes | User ID or username to promote |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| period | Yes | Auto-delete period in seconds. 0 = disable. Common: 86400 (1d), 604800 (1w), 2592000 (1mo) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Day of month (1-31) | |
| year | No | Year (optional โ omit to hide age) | |
| clear | No | Pass true to remove birthday from profile | |
| month | No | Month (1-12) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Pass true to disable away message | |
| audience | No | Who receives the away message | all_new |
| customTo | No | For schedule=custom: Unix timestamp range end | |
| schedule | No | When to send: always (any time offline), outside_hours (based on business hours), custom (time range) | outside_hours |
| customFrom | No | For schedule=custom: Unix timestamp range start | |
| shortcutId | No | Quick reply shortcut ID used as the away message template | |
| offlineOnly | No | Send only when you appear offline (true) or regardless of online status (false) | |
| excludeUsers | No | ||
| includeUsers | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Pass true to disable greeting message | |
| audience | No | Who receives the greeting: all_new (new contacts+non-contacts), contacts_only, non_contacts, existing_only | all_new |
| shortcutId | No | Quick reply shortcut ID (from telegram-get-quick-replies) used as the greeting template | |
| excludeUsers | No | Usernames/IDs to exclude โ overrides audience. Cannot be combined with includeUsers. | |
| includeUsers | No | Additional usernames/IDs to always include | |
| noActivityDays | No | Send greeting if user has been inactive for N days |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Pass true to remove business hours entirely | |
| openNow | No | Manually override current open/closed status. Omit to derive from schedule. | |
| schedule | No | Weekly schedule. Multiple ranges per day are allowed. | |
| timezone | No | IANA timezone ID (e.g. 'Europe/Moscow', 'America/New_York'). Required when setting schedule. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Pass true to remove the intro card | |
| title | No | Intro title (max 32 chars) | |
| stickerId | No | Sticker document ID (stringified long) โ optional illustrative sticker. Requires stickerAccessHash and stickerFileReference. | |
| description | No | Intro description (max 70 chars) | |
| stickerAccessHash | No | Access hash of the sticker document (required with stickerId) | |
| stickerFileReference | No | Hex-encoded file_reference bytes (required with stickerId) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Pass true to remove business location | |
| address | No | Street address text | |
| latitude | No | Geo latitude (-90 to 90) | |
| longitude | No | Geo longitude (-180 to 180) |
TDQS
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.
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.
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.
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.
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.
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-permissionsADestructive
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| sendGifs | No | Allow sending GIFs | |
| sendMedia | No | Allow sending photos/videos/documents | |
| sendPolls | No | Allow sending polls | |
| changeInfo | No | Allow changing chat info (title, photo, description) | |
| embedLinks | No | Allow link previews | |
| sendInline | No | Allow inline bot usage | |
| inviteUsers | No | Allow inviting new members | |
| pinMessages | No | Allow pinning messages | |
| sendMessages | No | Allow sending text messages | |
| sendStickers | No | Allow sending stickers |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (group, supergroup, or channel) | |
| reactions | Yes | Reaction policy for the chat |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | Emoji character (e.g. ๐ โค๏ธ ๐ฅ) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| untilUnix | No | Unix timestamp when status expires. Omit for permanent. | |
| documentId | No | Custom emoji document ID (stringified long). Omit to clear the status. | |
| collectibleId | No | Collectible emoji ID (stringified long) โ for paid unique emoji. Exactly one of documentId/collectibleId may be set. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hideReadMarks | No | Hide read receipts โ others cannot see when you read their messages (Premium) | |
| keepArchivedFolders | No | Keep archived chats in their folders | |
| keepArchivedUnmuted | No | Keep archived chats unmuted when archiving | |
| archiveAndMuteNewNoncontactPeers | No | Auto-archive and mute messages from unknown users | |
| newNoncontactPeersRequirePremium | No | Only allow users with Telegram Premium to message you if they are not in your contacts (Premium) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Pass true to remove personal channel from profile | |
| channelId | No | Channel ID or @username to feature on profile |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | Yes | Who can see/access this | |
| setting | Yes | Privacy setting to change | |
| allowUsers | No | User IDs/usernames to always allow (exceptions) | |
| disallowUsers | No | User IDs/usernames to always disallow (exceptions) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Color index (0-6 free palette; 7+ Premium custom). Omit to reset to default. | |
| forProfile | No | true = profile page color + background pattern (Premium); false = name color in chat lists | |
| backgroundEmojiId | No | Custom emoji document ID (stringified long) for profile background pattern (Premium). Omit to remove. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| isVideo | No | true if file is an MP4 animated avatar; false for static photo | |
| fallback | No | true = set as fallback photo (shown to users who cannot see your main photo due to privacy settings) | |
| filePath | Yes | Absolute local filesystem path to photo (JPEG/PNG) or video (MP4, square) to upload as avatar. URLs are rejected. | |
| videoStartTs | No | For video avatar: timestamp in seconds to use as still preview frame |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (supergroup) | |
| seconds | Yes | Interval in seconds: 0 (off), 10, 30, 60, 300, 900, or 3600 |
TDQS
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.
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.
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.
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.
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.
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-statusBRead-only
Check Telegram connection status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-sessionADestructive
Terminate a specific Telegram session by its hash, or explicitly terminate all other sessions by setting terminateAllOther=true
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | Session hash to terminate (numeric string from get-sessions). Required when terminateAllOther is not set | |
| terminateAllOther | No | Set to true to terminate all other sessions (excludes current). Cannot be combined with sessionId |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Supergroup ID or username | |
| enabled | Yes | true to enable aggressive anti-spam, false to disable |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Channel ID or username | |
| enabled | Yes | true to enable author signatures, false to disable |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | true to enable folder tags, false to disable |
TDQS
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.
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.
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.
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.
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.
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-modeADestructive
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Supergroup ID or username | |
| confirm | No | Must be true when disabling (enabled=false) โ disabling deletes all existing topics | |
| enabled | Yes | true to enable forum mode, false to disable |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username (channel) | |
| private | Yes | true = anonymous on leaderboard, false = show name | |
| messageId | Yes | Message ID of the channel post |
TDQS
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.
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.
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.
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.
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.
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-story-pinnedA
Pin or unpin stories in your profile highlights (Telegram allows up to 3 pinned stories).
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Story IDs to pin or unpin | |
| chatId | No | Peer owning the stories | me |
| pinned | Yes | true to pin, false to unpin |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Story IDs to pin to the top row; pass [] to clear | |
| chatId | No | Peer owning the stories | me |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID of the voice or video note |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| toLang | Yes | ISO 639-1 (e.g. 'en', 'ru') or locale (e.g. 'en-US') | |
| messageIds | Yes | Array of message IDs to translate (1-100) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| userId | Yes | User ID or username to unban |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User ID or username to unblock |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID to unpin |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| bio | No | New bio/about text (max 70 chars, 300 for Premium) | |
| lastName | No | New last name | |
| username | No | New username (without @) | |
| firstName | No | New first name |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chatId | Yes | Chat ID or username | |
| messageId | Yes | Message ID of the poll | |
| optionIndexes | Yes | Zero-based option indexes. Empty [] retracts vote. |
TDQS
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.
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.
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.
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.
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.
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 tool update
v1.42.0- Added
telegram-get-saved-music
168 tool updates
v1.36.5- Added
telegram-activate-stealth-mode - Added
telegram-add-contact - Added
telegram-approve-join-request - Added
telegram-archive-chat - Added
telegram-ban-user - Added
telegram-block-user - Added
telegram-clear-drafts - Added
telegram-clear-recent-emoji-statuses - Added
telegram-close-poll - Added
telegram-create-business-chat-link - Added
telegram-create-folder - Added
telegram-create-group - Added
telegram-create-invite-link - Added
telegram-create-poll - Added
telegram-create-topic - Added
telegram-delete-business-chat-link - Added
telegram-delete-fact-check - Added
telegram-delete-folder - Added
telegram-delete-message - Added
telegram-delete-profile-photo - Added
telegram-delete-scheduled - Added
telegram-delete-stories - Added
telegram-delete-topic - Added
telegram-download-media - Added
telegram-edit-business-chat-link - Added
telegram-edit-fact-check - Added
telegram-edit-folder - Added
telegram-edit-group - Added
telegram-edit-message - Added
telegram-edit-story - Added
telegram-edit-topic - Added
telegram-export-story-link - Added
telegram-forward-message - Added
telegram-get-admin-log - Added
telegram-get-all-stories - Added
telegram-get-boosts-list - Added
telegram-get-boosts-status - Added
telegram-get-broadcast-stats - Added
telegram-get-business-chat-links - Added
telegram-get-channel-updates - Added
telegram-get-chat-folders - Added
telegram-get-chat-info - Added
telegram-get-chat-members - Added
telegram-get-contact-requests - Added
telegram-get-contacts - Added
telegram-get-discussion-message - Added
telegram-get-drafts - Added
telegram-get-fact-check - Added
telegram-get-global-privacy-settings - Added
telegram-get-groups-for-discussion - Added
telegram-get-installed-stickers - Added
telegram-get-invite-links - Added
telegram-get-megagroup-stats - Added
telegram-get-message-buttons - Added
telegram-get-message-link - Added
telegram-get-message-read-participants - Added
telegram-get-my-boosts - Added
telegram-get-my-role - Added
telegram-get-outbox-read-date - Added
telegram-get-paid-reaction-privacy - Added
telegram-get-peer-stories - Added
telegram-get-poll-results - Added
telegram-get-poll-voters - Added
telegram-get-profile - Added
telegram-get-profile-photo - Added
telegram-get-reactions - Added
telegram-get-recent-reactions - Added
telegram-get-recent-stickers - Added
telegram-get-replies - Added
telegram-get-saved-dialogs - Added
telegram-get-scheduled - Added
telegram-get-sessions - Added
telegram-get-state - Added
telegram-get-sticker-set - Added
telegram-get-stories-archive - Added
telegram-get-stories-by-id - Added
telegram-get-story-views - Added
telegram-get-suggested-folders - Added
telegram-get-top-reactions - Added
telegram-get-transcription - Added
telegram-get-unread - Added
telegram-get-unread-mentions - Added
telegram-get-unread-reactions - Added
telegram-get-updates - Added
telegram-get-web-preview - Added
telegram-inline-query - Added
telegram-inline-query-send - Added
telegram-invite-to-group - Added
telegram-join-chat - Added
telegram-kick-user - Added
telegram-leave-group - Added
telegram-list-chats - Added
telegram-list-emoji-statuses - Added
telegram-list-topics - Added
telegram-login - Added
telegram-logout - Added
telegram-mark-as-read - Added
telegram-mark-dialog-unread - Added
telegram-mute-chat - Added
telegram-pin-chat - Added
telegram-pin-message - Added
telegram-press-button - Added
telegram-rate-transcription - Added
telegram-react-to-story - Added
telegram-read-messages - Added
telegram-read-stories - Added
telegram-read-topic-messages - Added
telegram-remove-admin - Added
telegram-reorder-folders - Added
telegram-report-spam - Added
telegram-report-story - Added
telegram-resolve-business-chat-link - Added
telegram-revoke-invite-link - Added
telegram-save-draft - Added
telegram-search-chats - Added
telegram-search-global - Added
telegram-search-messages - Added
telegram-search-sticker-sets - Added
telegram-send-album - Added
telegram-send-contact - Added
telegram-send-dice - Added
telegram-send-file - Added
telegram-send-location - Added
telegram-send-message - Added
telegram-send-paid-reaction - Added
telegram-send-reaction - Added
telegram-send-scheduled - Added
telegram-send-sticker - Added
telegram-send-story - Added
telegram-send-typing - Added
telegram-send-venue - Added
telegram-send-video-note - Added
telegram-send-voice - Added
telegram-set-admin - Added
telegram-set-auto-delete - Added
telegram-set-birthday - Added
telegram-set-business-away - Added
telegram-set-business-greeting - Added
telegram-set-business-hours - Added
telegram-set-business-intro - Added
telegram-set-business-location - Added
telegram-set-chat-permissions - Added
telegram-set-chat-reactions - Added
telegram-set-default-reaction - Added
telegram-set-emoji-status - Added
telegram-set-global-privacy-settings - Added
telegram-set-personal-channel - Added
telegram-set-privacy - Added
telegram-set-profile-color - Added
telegram-set-profile-photo - Added
telegram-set-slow-mode - Added
telegram-status - Added
telegram-terminate-session - Added
telegram-toggle-anti-spam - Added
telegram-toggle-channel-signatures - Added
telegram-toggle-folder-tags - Added
telegram-toggle-forum-mode - Added
telegram-toggle-paid-reaction-privacy - Added
telegram-toggle-prehistory-hidden - Added
telegram-toggle-story-pinned - Added
telegram-toggle-story-pinned-to-top - Added
telegram-transcribe-audio - Added
telegram-translate-message - Added
telegram-unban-user - Added
telegram-unblock-user - Added
telegram-unpin-message - Added
telegram-update-profile - Added
telegram-vote-poll
168 tool updates
v1.36.3- Removed
telegram-activate-stealth-mode - Removed
telegram-add-contact - Removed
telegram-approve-join-request - Removed
telegram-archive-chat - Removed
telegram-ban-user - Removed
telegram-block-user - Removed
telegram-clear-drafts - Removed
telegram-clear-recent-emoji-statuses - Removed
telegram-close-poll - Removed
telegram-create-business-chat-link - Removed
telegram-create-folder - Removed
telegram-create-group - Removed
telegram-create-invite-link - Removed
telegram-create-poll - Removed
telegram-create-topic - Removed
telegram-delete-business-chat-link - Removed
telegram-delete-fact-check - Removed
telegram-delete-folder - Removed
telegram-delete-message - Removed
telegram-delete-profile-photo - Removed
telegram-delete-scheduled - Removed
telegram-delete-stories - Removed
telegram-delete-topic - Removed
telegram-download-media - Removed
telegram-edit-business-chat-link - Removed
telegram-edit-fact-check - Removed
telegram-edit-folder - Removed
telegram-edit-group - Removed
telegram-edit-message - Removed
telegram-edit-story - Removed
telegram-edit-topic - Removed
telegram-export-story-link - Removed
telegram-forward-message - Removed
telegram-get-admin-log - Removed
telegram-get-all-stories - Removed
telegram-get-boosts-list - Removed
telegram-get-boosts-status - Removed
telegram-get-broadcast-stats - Removed
telegram-get-business-chat-links - Removed
telegram-get-channel-updates - Removed
telegram-get-chat-folders - Removed
telegram-get-chat-info - Removed
telegram-get-chat-members - Removed
telegram-get-contact-requests - Removed
telegram-get-contacts - Removed
telegram-get-discussion-message - Removed
telegram-get-drafts - Removed
telegram-get-fact-check - Removed
telegram-get-global-privacy-settings - Removed
telegram-get-groups-for-discussion - Removed
telegram-get-installed-stickers - Removed
telegram-get-invite-links - Removed
telegram-get-megagroup-stats - Removed
telegram-get-message-buttons - Removed
telegram-get-message-link - Removed
telegram-get-message-read-participants - Removed
telegram-get-my-boosts - Removed
telegram-get-my-role - Removed
telegram-get-outbox-read-date - Removed
telegram-get-paid-reaction-privacy - Removed
telegram-get-peer-stories - Removed
telegram-get-poll-results - Removed
telegram-get-poll-voters - Removed
telegram-get-profile - Removed
telegram-get-profile-photo - Removed
telegram-get-reactions - Removed
telegram-get-recent-reactions - Removed
telegram-get-recent-stickers - Removed
telegram-get-replies - Removed
telegram-get-saved-dialogs - Removed
telegram-get-scheduled - Removed
telegram-get-sessions - Removed
telegram-get-state - Removed
telegram-get-sticker-set - Removed
telegram-get-stories-archive - Removed
telegram-get-stories-by-id - Removed
telegram-get-story-views - Removed
telegram-get-suggested-folders - Removed
telegram-get-top-reactions - Removed
telegram-get-transcription - Removed
telegram-get-unread - Removed
telegram-get-unread-mentions - Removed
telegram-get-unread-reactions - Removed
telegram-get-updates - Removed
telegram-get-web-preview - Removed
telegram-inline-query - Removed
telegram-inline-query-send - Removed
telegram-invite-to-group - Removed
telegram-join-chat - Removed
telegram-kick-user - Removed
telegram-leave-group - Removed
telegram-list-chats - Removed
telegram-list-emoji-statuses - Removed
telegram-list-topics - Removed
telegram-login - Removed
telegram-logout - Removed
telegram-mark-as-read - Removed
telegram-mark-dialog-unread - Removed
telegram-mute-chat - Removed
telegram-pin-chat - Removed
telegram-pin-message - Removed
telegram-press-button - Removed
telegram-rate-transcription - Removed
telegram-react-to-story - Removed
telegram-read-messages - Removed
telegram-read-stories - Removed
telegram-read-topic-messages - Removed
telegram-remove-admin - Removed
telegram-reorder-folders - Removed
telegram-report-spam - Removed
telegram-report-story - Removed
telegram-resolve-business-chat-link - Removed
telegram-revoke-invite-link - Removed
telegram-save-draft - Removed
telegram-search-chats - Removed
telegram-search-global - Removed
telegram-search-messages - Removed
telegram-search-sticker-sets - Removed
telegram-send-album - Removed
telegram-send-contact - Removed
telegram-send-dice - Removed
telegram-send-file - Removed
telegram-send-location - Removed
telegram-send-message - Removed
telegram-send-paid-reaction - Removed
telegram-send-reaction - Removed
telegram-send-scheduled - Removed
telegram-send-sticker - Removed
telegram-send-story - Removed
telegram-send-typing - Removed
telegram-send-venue - Removed
telegram-send-video-note - Removed
telegram-send-voice - Removed
telegram-set-admin - Removed
telegram-set-auto-delete - Removed
telegram-set-birthday - Removed
telegram-set-business-away - Removed
telegram-set-business-greeting - Removed
telegram-set-business-hours - Removed
telegram-set-business-intro - Removed
telegram-set-business-location - Removed
telegram-set-chat-permissions - Removed
telegram-set-chat-reactions - Removed
telegram-set-default-reaction - Removed
telegram-set-emoji-status - Removed
telegram-set-global-privacy-settings - Removed
telegram-set-personal-channel - Removed
telegram-set-privacy - Removed
telegram-set-profile-color - Removed
telegram-set-profile-photo - Removed
telegram-set-slow-mode - Removed
telegram-status - Removed
telegram-terminate-session - Removed
telegram-toggle-anti-spam - Removed
telegram-toggle-channel-signatures - Removed
telegram-toggle-folder-tags - Removed
telegram-toggle-forum-mode - Removed
telegram-toggle-paid-reaction-privacy - Removed
telegram-toggle-prehistory-hidden - Removed
telegram-toggle-story-pinned - Removed
telegram-toggle-story-pinned-to-top - Removed
telegram-transcribe-audio - Removed
telegram-translate-message - Removed
telegram-unban-user - Removed
telegram-unblock-user - Removed
telegram-unpin-message - Removed
telegram-update-profile - Removed
telegram-vote-poll
151 tool updates
v1.36.1- Added
telegram-activate-stealth-mode - Added
telegram-add-contact - Added
telegram-approve-join-request - Added
telegram-archive-chat - Added
telegram-ban-user - Added
telegram-block-user - Added
telegram-clear-drafts - Added
telegram-clear-recent-emoji-statuses - Added
telegram-close-poll - Added
telegram-create-business-chat-link - Added
telegram-create-folder - Added
telegram-create-group - Added
telegram-create-invite-link - Added
telegram-create-poll - Added
telegram-create-topic - Added
telegram-delete-business-chat-link - Added
telegram-delete-fact-check - Added
telegram-delete-folder - Added
telegram-delete-profile-photo - Added
telegram-delete-scheduled - Added
telegram-delete-stories - Added
telegram-delete-topic - Added
telegram-edit-business-chat-link - Added
telegram-edit-fact-check - Added
telegram-edit-folder - Added
telegram-edit-group - Added
telegram-edit-story - Added
telegram-edit-topic - Added
telegram-export-story-link - Added
telegram-get-admin-log - Added
telegram-get-all-stories - Added
telegram-get-boosts-list - Added
telegram-get-boosts-status - Added
telegram-get-broadcast-stats - Added
telegram-get-business-chat-links - Added
telegram-get-channel-updates - Added
telegram-get-chat-folders - Added
telegram-get-contact-requests - Added
telegram-get-discussion-message - Added
telegram-get-drafts - Added
telegram-get-fact-check - Added
telegram-get-global-privacy-settings - Added
telegram-get-groups-for-discussion - Added
telegram-get-installed-stickers - Added
telegram-get-invite-links - Added
telegram-get-megagroup-stats - Added
telegram-get-message-buttons - Added
telegram-get-message-link - Added
telegram-get-message-read-participants - Added
telegram-get-my-boosts - Added
telegram-get-my-role - Added
telegram-get-outbox-read-date - Added
telegram-get-paid-reaction-privacy - Added
telegram-get-peer-stories - Added
telegram-get-poll-results - Added
telegram-get-poll-voters - Added
telegram-get-profile-photo - Added
telegram-get-reactions - Added
telegram-get-recent-reactions - Added
telegram-get-recent-stickers - Added
telegram-get-replies - Added
telegram-get-saved-dialogs - Added
telegram-get-scheduled - Added
telegram-get-sessions - Added
telegram-get-state - Added
telegram-get-sticker-set - Added
telegram-get-stories-archive - Added
telegram-get-stories-by-id - Added
telegram-get-story-views - Added
telegram-get-suggested-folders - Added
telegram-get-top-reactions - Added
telegram-get-transcription - Added
telegram-get-unread-mentions - Added
telegram-get-unread-reactions - Added
telegram-get-updates - Added
telegram-get-web-preview - Added
telegram-inline-query - Added
telegram-inline-query-send - Added
telegram-invite-to-group - Added
telegram-kick-user - Added
telegram-leave-group - Changed
telegram-list-chats2 fields changed- changed
Input schema / properties / filterType / descriptionPrevious value: -"Filter by chat type"New value: +"Filter by chat type. 'contact_requests' shows only private chats from non-contacts" - changed
Input schema / properties / filterType / enumPrevious value: -[ - "private", - "group", - "channel" -]New value: +[ + "private", + "group", + "channel", + "contact_requests" +]
- Added
telegram-list-emoji-statuses - Added
telegram-list-topics - Changed
telegram-login1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Added
telegram-logout - Added
telegram-mark-dialog-unread - Added
telegram-mute-chat - Added
telegram-pin-chat - Added
telegram-press-button - Added
telegram-rate-transcription - Added
telegram-react-to-story - Added
telegram-read-stories - Added
telegram-read-topic-messages - Added
telegram-remove-admin - Added
telegram-reorder-folders - Added
telegram-report-spam - Added
telegram-report-story - Added
telegram-resolve-business-chat-link - Added
telegram-revoke-invite-link - Added
telegram-save-draft - Added
telegram-search-global - Added
telegram-search-sticker-sets - Added
telegram-send-album - Added
telegram-send-contact - Added
telegram-send-dice - Added
telegram-send-location - Changed
telegram-send-message3 fields changed- added
Input schema / properties / effectAdded 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" +} - added
Input schema / properties / quoteTextAdded 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" +} - added
Input schema / properties / topicIdAdded value: +{ + "description": "Forum topic ID to send message into (for groups with Topics enabled)", + "type": "number" +}
- Added
telegram-send-paid-reaction - Added
telegram-send-reaction - Added
telegram-send-scheduled - Added
telegram-send-sticker - Added
telegram-send-story - Added
telegram-send-typing - Added
telegram-send-venue - Added
telegram-send-video-note - Added
telegram-send-voice - Added
telegram-set-admin - Added
telegram-set-auto-delete - Added
telegram-set-birthday - Added
telegram-set-business-away - Added
telegram-set-business-greeting - Added
telegram-set-business-hours - Added
telegram-set-business-intro - Added
telegram-set-business-location - Added
telegram-set-chat-permissions - Added
telegram-set-chat-reactions - Added
telegram-set-default-reaction - Added
telegram-set-emoji-status - Added
telegram-set-global-privacy-settings - Added
telegram-set-personal-channel - Added
telegram-set-privacy - Added
telegram-set-profile-color - Added
telegram-set-profile-photo - Added
telegram-set-slow-mode - Changed
telegram-status1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Added
telegram-terminate-session - Added
telegram-toggle-anti-spam - Added
telegram-toggle-channel-signatures - Added
telegram-toggle-folder-tags - Added
telegram-toggle-forum-mode - Added
telegram-toggle-paid-reaction-privacy - Added
telegram-toggle-prehistory-hidden - Added
telegram-toggle-story-pinned - Added
telegram-toggle-story-pinned-to-top - Added
telegram-transcribe-audio - Added
telegram-translate-message - Added
telegram-unban-user - Added
telegram-unblock-user - Added
telegram-update-profile - Added
telegram-vote-poll
1 tool update
v1.4.0- Added
telegram-join-chat
20 tool updates
v1.3.1- First observed
telegram-delete-message - First observed
telegram-download-media - First observed
telegram-edit-message - First observed
telegram-forward-message - First observed
telegram-get-chat-info - First observed
telegram-get-chat-members - First observed
telegram-get-contacts - First observed
telegram-get-profile - First observed
telegram-get-unread - First observed
telegram-list-chats - First observed
telegram-login - First observed
telegram-mark-as-read - First observed
telegram-pin-message - First observed
telegram-read-messages - First observed
telegram-search-chats - First observed
telegram-search-messages - First observed
telegram-send-file - First observed
telegram-send-message - First observed
telegram-status - First observed
telegram-unpin-message
TDQS
Scored across 169 tools
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.
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.
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.
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
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client โ Claude, ChatGPT, Cursor, Cline, Windsurf.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA simple MCP server that allows Claude to access your Telegram account to read and send messages on your behalf.7Apache 2.0
- MIT
- AlicenseNot gradedqualityDmaintenanceMCP 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.3MIT
- AlicenseNot gradedqualityDmaintenanceA 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