Skip to main content
Glama
TONresistor

Telegram MCP Server

by TONresistor

Telegram MCP Server

TypeScript MCP License: MIT npm

Production-ready MCP server for the complete Telegram Bot API. 162 methods with token-optimized meta mode (~157 tokens vs ~55,000).

Highlights

  • Complete API coverage: All 162 Telegram Bot API methods

  • Token efficient: Meta mode reduces context by 99.7%

  • Production hardened: Circuit breaker, rate limiting, retries with backoff

  • Observable: Prometheus metrics, structured logging, health checks

  • Type safe: Full TypeScript with Zod validation

Related MCP server: agent-telegram-mcp

Installation

npm install @tonresistor/telegram-mcp

Or clone and build from source:

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

Quick Start

Get your bot token from @BotFather, then add to your MCP config:

{
  "mcpServers": {
    "telegram": {
      "command": "node",
      "args": ["/path/to/build/index-meta.js"],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token_here"
      }
    }
  }
}

Usage Modes

Mode

Entry Point

Tools

Best For

Meta (recommended)

index-meta.js

2

Production: minimal token usage

Standard

index.js

161

Development: direct tool access

Meta mode exposes just 2 tools:

  • telegram_find: Search methods by name or category

  • telegram_call: Execute any Telegram API method

Configuration

Variable

Default

Description

TELEGRAM_BOT_TOKEN

required

Bot token from BotFather

LOG_LEVEL

info

debug / info / warning / error / critical

REQUEST_TIMEOUT

30000

Request timeout in ms (5000-120000)

MAX_RETRIES

3

Retry attempts (0-10)

RATE_LIMIT_PER_MINUTE

30

Global rate limit (1-60)

HEALTH_PORT

Enable health endpoints (/health, /metrics)

Features

Resilience

  • Circuit breaker: Opens after 5 failures, auto-recovers after 30s

  • Rate limiting: Global + per-chat (respects Telegram limits)

  • Retries: Exponential backoff with jitter

Observability

  • Prometheus metrics: Request counts, latencies, error rates

  • Health checks: Kubernetes-ready readiness/liveness probes

  • Structured logging: JSON format with automatic secret redaction

API Reference

All 161 Telegram Bot API methods organized by category.

Method

Description

sendMessage

Send text message

sendPhoto

Send photo

sendVideo

Send video

sendAudio

Send audio file

sendDocument

Send document/file

sendAnimation

Send GIF animation

sendVoice

Send voice message

sendVideoNote

Send video note (round video)

sendLocation

Send location

sendVenue

Send venue/place

sendContact

Send phone contact

sendPoll

Send poll/survey

sendDice

Send animated dice

sendChatAction

Send typing indicator

sendMediaGroup

Send media album

sendPaidMedia

Send paid media

sendMessageDraft

Stream partial message (AI)

forwardMessage

Forward message

forwardMessages

Forward multiple messages

copyMessage

Copy message

copyMessages

Copy multiple messages

sendSticker

Send sticker

sendChecklist

Send checklist (business)

Method

Description

getChat

Get chat info

getChatMember

Get member info

getChatMemberCount

Get member count

getChatAdministrators

List administrators

banChatMember

Ban user

unbanChatMember

Unban user

restrictChatMember

Restrict user

promoteChatMember

Promote to admin

setChatAdministratorCustomTitle

Set admin title

setChatPermissions

Set default permissions

setChatTitle

Set chat title

setChatDescription

Set chat description

setChatPhoto

Set chat photo

deleteChatPhoto

Delete chat photo

pinChatMessage

Pin message

unpinChatMessage

Unpin message

unpinAllChatMessages

Unpin all messages

leaveChat

Leave chat

exportChatInviteLink

Generate invite link

createChatInviteLink

Create invite link

editChatInviteLink

Edit invite link

revokeChatInviteLink

Revoke invite link

approveChatJoinRequest

Approve join request

declineChatJoinRequest

Decline join request

banChatSenderChat

Ban channel

unbanChatSenderChat

Unban channel

setChatStickerSet

Set sticker set

deleteChatStickerSet

Delete sticker set

createChatSubscriptionInviteLink

Create subscription link

editChatSubscriptionInviteLink

Edit subscription link

Method

Description

editMessageText

Edit text

editMessageCaption

Edit caption

editMessageMedia

Edit media

editMessageReplyMarkup

Edit keyboard

editMessageLiveLocation

Edit live location

stopMessageLiveLocation

Stop live location

stopPoll

Stop poll

deleteMessage

Delete message

deleteMessages

Delete multiple messages

Method

Description

setMyCommands

Set commands

getMyCommands

Get commands

deleteMyCommands

Delete commands

setMyName

Set bot name

getMyName

Get bot name

setMyDescription

Set description

getMyDescription

Get description

setMyShortDescription

Set short description

getMyShortDescription

Get short description

setChatMenuButton

Set menu button

getChatMenuButton

Get menu button

setMyDefaultAdministratorRights

Set default admin rights

getMyDefaultAdministratorRights

Get default admin rights

getUserProfilePhotos

Get user photos

getFile

Get file info

setUserEmojiStatus

Set emoji status

Method

Description

getBusinessConnection

Get connection info

readBusinessMessage

Mark as read

deleteBusinessMessages

Delete messages

setBusinessAccountName

Set account name

setBusinessAccountUsername

Set username

setBusinessAccountBio

Set bio

setBusinessAccountProfilePhoto

Set profile photo

removeBusinessAccountProfilePhoto

Remove photo

setBusinessAccountGiftSettings

Set gift settings

getBusinessAccountStarBalance

Get star balance

transferBusinessAccountStars

Transfer stars

postStory

Post story

editStory

Edit story

deleteStory

Delete story

repostStory

Repost story

approveSuggestedPost

Approve post

declineSuggestedPost

Decline post

Method

Description

getStickerSet

Get sticker set

getCustomEmojiStickers

Get custom emojis

uploadStickerFile

Upload sticker

createNewStickerSet

Create set

addStickerToSet

Add to set

setStickerPositionInSet

Move position

deleteStickerFromSet

Delete from set

replaceStickerInSet

Replace sticker

setStickerEmojiList

Set emojis

setStickerKeywords

Set keywords

setStickerMaskPosition

Set mask position

setStickerSetTitle

Set title

setStickerSetThumbnail

Set thumbnail

setCustomEmojiStickerSetThumbnail

Set emoji thumbnail

deleteStickerSet

Delete set

Method

Description

getForumTopicIconStickers

Get icon stickers

createForumTopic

Create topic

editForumTopic

Edit topic

closeForumTopic

Close topic

reopenForumTopic

Reopen topic

deleteForumTopic

Delete topic

unpinAllForumTopicMessages

Unpin all

editGeneralForumTopic

Edit General

closeGeneralForumTopic

Close General

reopenGeneralForumTopic

Reopen General

hideGeneralForumTopic

Hide General

unhideGeneralForumTopic

Unhide General

unpinAllGeneralForumTopicMessages

Unpin General

Method

Description

answerInlineQuery

Answer inline query

answerCallbackQuery

Answer callback

answerWebAppQuery

Answer Web App

savePreparedInlineMessage

Save prepared message

setMessageReaction

Set reaction

getUserChatBoosts

Get user boosts

Method

Description

sendInvoice

Send invoice

createInvoiceLink

Create invoice link

answerShippingQuery

Answer shipping

answerPreCheckoutQuery

Answer pre-checkout

getStarTransactions

Get transactions

refundStarPayment

Refund payment

editUserStarSubscription

Edit subscription

getMyStarBalance

Get balance

Method

Description

getAvailableGifts

Get available gifts

sendGift

Send gift

giftPremiumSubscription

Gift Premium

getUserGifts

Get user gifts

getChatGifts

Get chat gifts

getBusinessAccountGifts

Get business gifts

convertGiftToStars

Convert to stars

upgradeGift

Upgrade gift

transferGift

Transfer gift

Method

Description

sendGame

Send game

setGameScore

Set score

getGameHighScores

Get high scores

Method

Description

getUpdates

Get updates (polling)

setWebhook

Set webhook

deleteWebhook

Delete webhook

getWebhookInfo

Get webhook info

getMe

Get bot info

logOut

Log out

close

Close instance

Method

Description

verifyUser

Verify user

verifyChat

Verify chat

removeUserVerification

Remove user verification

removeChatVerification

Remove chat verification

setPassportDataErrors

Set Passport errors

Development

npm test          # Run tests
npm run build     # Compile TypeScript

License

MIT

Available Tools

161 tools
addStickerToSetA

Add a new sticker to a set created by the bot. Emoji sticker sets can have up to 200 stickers. Other sticker sets can have up to 120 stickers. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker set name.
stickerYesAn InputSticker object with information about the sticker to be added. Must include sticker, format, emoji_list, and optionally mask_position and keywords.
user_idYesUser identifier of sticker set owner.

TDQS

A3.5/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the burden of behavioral disclosure. It discloses the mutation ('Add'), a successful return value ('Returns True on success'), and capacity constraints. It does not cover failure modes or permission requirements beyond the bot-ownership implication, making this adequate but not comprehensive.

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

Conciseness5/5

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

Three concise sentences with no filler: the first states the purpose, the second provides relevant capacity limits, and the third gives the success return value. Every sentence earns its place and the main action is front-loaded.

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

Completeness3/5

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

The description covers the core purpose, the bot-ownership prerequisite, capacity bounds, and return value, while the schema handles nested InputSticker details. It lacks explicit alternative routing and failure semantics, so it is not fully complete, but it provides enough context for basic invocation.

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

Parameters3/5

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

The input schema covers 100% of parameters and already provides meaningful descriptions for user_id, name, and sticker. The tool description adds no additional parameter-level meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific operation: 'Add a new sticker to a set created by the bot.' It clearly identifies the resource (sticker set) and an ownership constraint. It implicitly distinguishes itself from createNewStickerSet but does not explicitly name sibling alternatives, so it stops short of a 5.

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

Usage Guidelines3/5

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

The description implies usage context: use this for existing sets created by the bot, and the capacity limits tell the agent when adding is possible. However, it does not explicitly state when not to use it or mention alternatives like createNewStickerSet or uploadStickerFile, so guidance is implied rather than explicit.

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

answerCallbackQueryA

Send answers to callback queries sent from inline keyboards. The answer is displayed as a notification at the top of the chat screen or as an alert. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL that will be opened by the user's client. For game URLs or t.me deep links.
textNoText of the notification. If not specified, nothing will be shown to the user. 0-200 characters.
cache_timeNoMaximum time in seconds that the result of the callback query may be cached client-side. Defaults to 0.
show_alertNoIf True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false.
callback_query_idYesUnique identifier for the query to be answered.

TDQS

A4/5.0
Behavior3/5

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

The description discloses the user-visible effect ('displayed as a notification at the top of the chat screen or as an alert') and states that it returns True on success. However, with no annotations provided, it does not address failure behavior, timeout sensitivity, or lack of side effects beyond the acknowledgement.

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

Conciseness5/5

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

The description is two short sentences with no filler. It front-loads the core action, then adds the behavioral outcome and return value, every phrase earning its place.

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

Completeness4/5

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

For a low-complexity tool with a 100%-documented input schema and no output schema, the description covers what the tool does, its visible effect, and its success return. It could be slightly more explicit about when not to use it, but it is otherwise sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already fully documented. The description does not add meaning beyond the schema; it only repeats the conceptual behavior of showing a notification or alert, which maps to the show_alert and text fields already described.

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

Purpose5/5

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

The description names a specific verb and resource: 'Send answers to callback queries sent from inline keyboards.' This distinguishes it clearly from sibling tools like answerInlineQuery, answerWebAppQuery, answerShippingQuery, and answerPreCheckoutQuery, which handle different query types.

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

Usage Guidelines4/5

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

The description provides clear context: this tool is for callback queries originating from inline keyboards, and the answer appears as either a chat notification or an alert. It does not explicitly state when not to use it or name alternatives, but the query type is specific enough to guide selection.

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

answerInlineQueryA

Send answers to an inline query. Results are displayed in the user's chat. Maximum 50 results per query. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
buttonNoAn InlineQueryResultsButton object to be shown above inline query results.
resultsYesA JSON-serialized array of InlineQueryResult objects representing results for the inline query.
cache_timeNoMaximum time in seconds that the result may be cached on Telegram servers. Defaults to 300.
is_personalNoPass True if results may be cached on the server side only for the user that sent the query.
next_offsetNoOffset that a client should send in the next query to receive more results. Max 64 bytes.
inline_query_idYesUnique identifier for the answered query.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden and does disclose behavior beyond the schema: the 50-result cap, that results render in the user's chat, and that it returns True on success. It omits error behavior and timing sensitivity (inline queries expire), but it offers three concrete operational facts useful to an agent.

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

Conciseness5/5

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

Four short sentences, each earning its place: purpose, display effect, hard limit, and return value. The core purpose is front-loaded before constraints, with no filler and no repetition of schema content.

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

Completeness3/5

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

For a tool with nested result objects, no output schema, and no annotations, the description covers the essentials — purpose, cap, and return value. It leaves gaps an agent would want: the need to respond promptly before the query expires, failure behavior for an invalid inline_query_id, and the valid InlineQueryResult shapes for the nested results array.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters; the baseline of 3 applies. The description adds one useful constraint above the schema — 'Maximum 50 results per query' — but does not otherwise enrich the meaning of individual parameters.

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

Purpose5/5

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

The description uses a specific verb+resource pair — 'Send answers to an inline query' — which cleanly distinguishes this from siblings like answerCallbackQuery, answerWebAppQuery, and sendMessage. The clause 'Results are displayed in the user's chat' reinforces the exact scenario without ambiguity.

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

Usage Guidelines3/5

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

The wording implies the tool is used in response to an inline query update, but there is no explicit when/when-not guidance or alternative routing. An agent must infer the distinction from the sibling set (e.g., answerCallbackQuery exists for callback queries) rather than being told.

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

answerPreCheckoutQueryA

Respond to pre-checkout queries. Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
okYesSpecify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems.
error_messageNoRequired if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout.
pre_checkout_query_idYesUnique identifier for the query to be answered

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the success return value ('True is returned') and the essential 10-second deadline. It does not detail failure behavior beyond schema hints, but the key operational constraints are present.

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

Conciseness4/5

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

The core purpose is front-loaded and the description is mostly concise. The sentence 'Use this method to respond to such pre-checkout queries' is somewhat redundant with the first sentence, but the remaining content about the Update field, return value, and deadline all earn their place.

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

Completeness5/5

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

For a simple three-parameter method with fully documented schema, the description covers the trigger event, the required action, the return value, and the essential time limit. An agent has enough information to invoke the tool correctly without additional context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline of 3 applies. The description does not add parameter-level meaning beyond the schema; it only provides contextual background about where the query comes from, which is useful but not necessary for parameter understanding.

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

Purpose5/5

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

States a specific verb ('Respond') and resource ('pre-checkout queries') and explains the trigger context (an Update with the pre_checkout_query field). It clearly identifies the distinct operation from related siblings like answerShippingQuery, even without naming them explicitly.

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

Usage Guidelines4/5

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

Provides clear context on when to use the method: after the user confirms payment and shipping details, when the Bot API sends a pre_checkout_query update. It also notes the critical 10-second response window, though it does not mention alternatives or exclusion cases.

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

answerShippingQueryA

Reply to shipping queries. If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
okYesPass True if delivery to the specified address is possible and False if there are any problems.
error_messageNoRequired if ok is False. Error message in human readable form that explains why it is impossible to complete the order.
shipping_optionsNoRequired if ok is True. A JSON-serialized array of available shipping options.
shipping_query_idYesUnique identifier for the query to be answered

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It states the trigger context and that True is returned on success, but it does not explain failure behavior, whether a query can be answered only once, or any side effects beyond the reply.

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

Conciseness3/5

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

The description is short and front-loaded with the core purpose, but it repeats 'reply to shipping queries' in the first and third sentences. This redundancy slightly undermines conciseness without adding information.

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

Completeness4/5

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

For a straightforward look-and-answer method, the description provides the necessary trigger context and return behavior, while the schema covers parameter details. It is complete enough for an agent to understand when and how to invoke the tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema documents all four parameters. The description adds no extra meaning about the parameters themselves; it only references is_flexible from the invoice context, not any direct parameter.

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

Purpose5/5

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

The description clearly identifies the action as 'Reply to shipping queries' and references the shipping_query Update field. This distinguishes it well from sibling methods like answerPreCheckoutQuery or answerCallbackQuery.

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

Usage Guidelines4/5

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

It specifies the exact triggering condition: after sending an invoice with is_flexible requesting a shipping address, the Bot API sends a shipping_query Update. This gives clear context for when to use the tool, though it does not explicitly name alternatives.

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

answerWebAppQueryA

Set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. Returns a SentWebAppMessage object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultYesA JSON-serialized InlineQueryResult object describing the message to be sent.
web_app_query_idYesUnique identifier for the query to be answered.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of disclosure. It directly states the main side effect — sending a message on behalf of the user to the originating chat — and mentions the success return type. It does not cover permission prerequisites or failure behavior, but the core send-on-behalf-of-user behavior is explicit.

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

Conciseness5/5

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

A single dense sentence with no filler, front-loading the action and side effect before noting the return value. Every clause contributes useful information.

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

Completeness4/5

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

For a two-parameter tool with a nested object and no output schema, the description provides essential context: the query originates from a chat, the message is sent on behalf of the user, and a SentWebAppMessage object is returned on success. It could add an explicit note about permission requirements or one-time answering, but it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents web_app_query_id and result. The description adds no parameter-level detail beyond what the schema provides; mentioning 'result' and 'message' is consistent but redundant.

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

Purpose5/5

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

The description opens with a specific verb phrase, 'Set the result of an interaction with a Web App,' and identifies the unique resource: a Web App query. It also clarifies that a message is sent on behalf of the user to the originating chat, which distinguishes it from sibling answer*Query tools such as answerCallbackQuery and answerInlineQuery.

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

Usage Guidelines4/5

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

The description conveys a clear context: use this tool when a Web App interaction has produced a query that must be answered and the resulting message should be sent to the originating chat. It does not explicitly name alternatives or exclusions, but the context is specific enough to route an agent correctly.

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

approveChatJoinRequestA

Approve a chat join request. The bot must be an administrator with can_invite_users rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
user_idYesUnique identifier of the target user

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the required administrator permission and states that the method returns True on success. It does not describe failure behavior or side effects, but for a simple approval action this is reasonably transparent.

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

Conciseness5/5

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

The description is two concise sentences with no filler. The core action is front-loaded, and the prerequisite and return value each earn their place.

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

Completeness4/5

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

The tool is low-complexity: two fully documented parameters, no output schema, and no annotations. The description covers the essential authorization requirement and success return value, making it largely complete. A note contrasting it with declineChatJoinRequest would make it fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, and the input schema already explains both chat_id and user_id clearly. The description adds no parameter-specific information beyond the schema, which fits the baseline of 3.

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

Purpose5/5

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

The description states a specific verb ('Approve') and a clear resource ('chat join request'), which unambiguously identifies the operation. It is distinct from the sibling declineChatJoinRequest and other chat-management tools.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: to approve a chat join request, and it names a concrete prerequisite (bot must be an administrator with can_invite_users rights). It does not explicitly mention the alternative declineChatJoinRequest, but the context is sufficiently clear.

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

approveSuggestedPostA

Approves a suggested post in a direct messages chat. The bot must have the can_post_messages administrator right in the corresponding channel chat. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier of the chat containing the suggested post
send_dateNoUnix timestamp specifying when the post should be published. If not specified, the post is published immediately. Must be no more than 2678400 seconds (30 days) in the future.
message_idYesUnique identifier of the suggested post message

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does disclose the required can_post_messages permission and the success return value, but it does not explain failure behavior, reversibility, or how send_date affects publishing. This is partial but not full transparency.

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

Conciseness5/5

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

Two sentences with no wasted words. The action is front-loaded, and both the permission requirement and return value earn their place as essential operational details.

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

Completeness4/5

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

For a simple three-parameter approval action, the description covers the operation, the required permission, and the return value. It does not mention the relationship to declineSuggestedPost or scheduling implications, but those are minor gaps given the schema covers parameters.

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

Parameters3/5

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

The input schema already describes all three parameters with 100% coverage, so the baseline is 3. The description adds no parameter-specific detail beyond the general action context, but it also does not need to because the schema is complete.

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

Purpose5/5

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

The description uses a specific verb, 'Approves,' and a precise resource, 'suggested post in a direct messages chat.' This clearly distinguishes it from the sibling tool declineSuggestedPost and leaves no ambiguity about the operation.

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

Usage Guidelines3/5

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

It provides useful context by stating where approval happens and the required administrator right, but it never explicitly mentions when to use this tool versus declineSuggestedPost or when not to use it. Usage is implied rather than explicitly contrasted with alternatives.

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

banChatMemberA

Ban a user in a group, supergroup or channel. The bot must be an administrator with the appropriate rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup/channel (in the format @channelusername)
user_idYesUnique identifier of the target user
until_dateNoDate when the user will be unbanned (Unix timestamp). If user is banned for more than 366 days or less than 30 seconds from the current time, they are considered banned forever. Applied for supergroups and channels only.
revoke_messagesNoPass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden, and it does meaningful work: it states the action, the permission prerequisite, and the success return value ('Returns True on success'), which is valuable since there is no output schema. It does not mention that a ban is permanent by default unless until_date is set, nor the message-deletion side effect of revoke_messages — those are left to the schema. For a no-annotation mutation tool, this exceeds the bare minimum.

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

Conciseness5/5

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

Three short sentences with zero filler: action+scope, prerequisite, and return value. The action is front-loaded, and every sentence earns its place — the return-value sentence is justified because there is no output schema. This is a model of compact, structured description.

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

Completeness3/5

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

The core invocation facts are covered (what it does, where, the admin prerequisite, and the return value), and the schema fully documents parameter semantics. The clear gaps are the absence of tool-level guidance on the default-permanent ban behavior (only implied deep inside the until_date schema description) and no positioning against the large moderation sibling family (unban/restrict/banChatSenderChat). Adequate, but an agent would benefit from more orientation.

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

Parameters3/5

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

Schema description coverage is 100% — all four parameters (chat_id, user_id, until_date, revoke_messages) are individually described in the schema, including edge-case semantics like the 366-day/30-second permanent-ban rule. The description itself adds no parameter-level information. Per the rubric, baseline 3 applies when the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb (ban) + resource (a user) + scope (group, supergroup or channel), which fully identifies the operation. It also self-differentiates from the sibling family by action semantics: unbanChatMember is the inverse, restrictChatMember is a lesser restriction, and banChatSenderChat targets a chat rather than a user.

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

Usage Guidelines3/5

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

The description supplies a useful precondition ('The bot must be an administrator with the appropriate rights'), which tells the agent when the call can succeed. However, it gives no explicit when-to-use vs alternatives or exclusions — in a sibling list containing unbanChatMember, restrictChatMember, and banChatSenderChat, the agent must infer routing from the names alone. Usage context is present but effectively implied rather than stated.

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

banChatSenderChatA

Ban a channel chat in a supergroup or channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator and must have the appropriate administrator rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup/channel (in the format @channelusername)
sender_chat_idYesUnique identifier of the target sender chat

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It explains the consequence ('owner of the banned chat won't be able to send messages on behalf of any of their channels'), the prerequisite ('bot must be an administrator'), and the return value ('Returns True on success'). It also implies reversibility via 'until the chat is unbanned.'

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

Conciseness5/5

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

Three concise, information-dense sentences. The primary action is front-loaded, followed by the key consequence and prerequisite, with no filler or repetition of schema content.

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

Completeness4/5

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

The description covers the action, effect, prerequisites, and return value. There is no output schema, so the explicit 'Returns True on success' is valuable. Minor gaps such as how to obtain the sender_chat_id or error behavior are not included, but the core calling context is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents both parameters fully. The description does not add meaning beyond the schema's field descriptions, which is acceptable given the high coverage.

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

Purpose5/5

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

States a specific verb and resource: 'Ban a channel chat in a supergroup or channel.' This clearly distinguishes the operation from banChatMember and aligns with the sibling unbanChatSenderChat. The scope ('channel chat' as opposed to a user) is explicit.

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

Usage Guidelines4/5

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

Provides clear context: it bans a channel chat and requires the bot to be an administrator with appropriate rights. It does not explicitly name alternatives such as unbanChatSenderChat or banChatMember, but the behavior described makes the intended use case evident without ambiguity.

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

closeA

Close the bot instance. Use before moving the bot to a local server. Must be called before running locally.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. It states the core action and a prerequisite, but it does not disclose expected effects such as return value, reversibility, or what state the bot instance enters afterward.

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

Conciseness4/5

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

Three short sentences, with the main action front-loaded. The final two clauses both express the same local-server condition, introducing slight redundancy, but the description remains compact and readable.

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

Completeness4/5

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

For a parameterless close operation with no output schema, the description covers what and when sufficiently. It could mention the resulting bot state or distinguish from logOut, but those gaps are minor given the tool's simplicity.

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

Parameters4/5

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

The tool takes zero parameters and the empty schema fully captures that, so there is nothing for the description to add. The baseline of 4 applies.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Close the bot instance.' It also adds the context 'before moving the bot to a local server,' which helps distinguish it from related sibling methods such as logOut or deleteWebhook.

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

Usage Guidelines4/5

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

It gives an explicit trigger: 'Use before moving the bot to a local server. Must be called before running locally.' It does not name alternatives or state when not to use it, so it falls just short of a 5.

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

closeForumTopicA

Close an open topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)
message_thread_idYesUnique identifier for the target message thread of the forum topic

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by specifying the admin permission requirement and stating that it returns True on success. It does not mention failure behavior, side effects, or what happens if the topic is already closed, which would strengthen transparency.

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

Conciseness5/5

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

The description is two short sentences with no wasted words. It front-loads the main action, then adds the essential permission requirement and return value. Every sentence contributes meaningful information, making it easy to scan.

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

Completeness4/5

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

For a simple two-parameter method with no output schema and no annotations, the description covers the essential elements: the action, the target, the authorization requirement, and the success return value. It could be slightly more complete by noting behavior on already-closed topics or explicitly routing to reopenForumTopic, but the core information needed to invoke the tool correctly is present.

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

Parameters3/5

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

Schema description coverage is 100%, so both chat_id and message_thread_id are already documented in the input schema. The tool description adds no additional parameter-level meaning, such as how chat_id relates to supergroups or that message_thread_id identifies the topic. The baseline of 3 is appropriate since the schema does the necessary work.

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

Purpose5/5

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

The description uses a specific verb ('Close') and resource ('an open topic in a forum supergroup chat'), making the tool's function unambiguous. It implicitly distinguishes itself from siblings like reopenForumTopic and closeGeneralForumTopic by specifying 'open topic' and 'forum supergroup chat'. Even without title information, an agent can identify exactly what this tool does.

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

Usage Guidelines3/5

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

The description states a key prerequisite: the bot must be an administrator with can_manage_topics rights. However, it does not explicitly say when to prefer this tool over alternatives such as reopenForumTopic or closeGeneralForumTopic. Usage context is implied by the action described, but explicit when/when-not guidance is missing.

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

closeGeneralForumTopicA

Close the 'General' topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses that the operation is a mutating close action, requires specific administrator rights, and returns True on success. However, it does not detail side effects (e.g., whether the topic can be reopened, impact on existing messages), which would be useful for an unannotated mutation tool.

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

Conciseness5/5

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

The description is concise and front-loaded: it immediately states the action and target, then adds the permission requirement and return behavior. Every sentence earns its place with no redundancy or filler.

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

Completeness5/5

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

For a single-parameter operation with no output schema, the description is complete: it identifies the target, the required permission, and the success return value. An agent has enough information to invoke the tool correctly without additional context.

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

Parameters3/5

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

The input schema already provides a complete description for chat_id, so schema coverage is 100%. The description adds no extra parameter-level detail. Per the rubric, the baseline is 3 when the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb and resource: 'Close the 'General' topic in a forum supergroup chat.' This clearly identifies the operation and differentiates it from sibling tools like closeForumTopic, which targets a regular topic rather than the special General topic.

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

Usage Guidelines4/5

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

The description provides clear context for when the tool applies: closing the General topic in a forum supergroup. It also states the prerequisite that the bot must be an administrator with can_manage_topics rights, which helps an agent determine eligibility. It does not explicitly compare to sibling alternatives, but the target resource ('General' topic) makes the usage context clear enough.

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

convertGiftToStarsA

Converts a given regular gift to Telegram Stars. Requires the can_convert_gifts_to_stars business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
owned_gift_idYesUnique identifier of the regular gift that should be converted to Telegram Stars.
business_connection_idYesUnique identifier of the business connection on behalf of which the gift will be converted.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It states the permission requirement, the conversion action, and the return value ('Returns True on success'). However, it does not describe failure behavior, side effects, or the condition of the original gift after conversion, which would be useful for a mutation-like operation.

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

Conciseness5/5

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

The description is two concise sentences. The key action and permission are front-loaded, and the return value is stated clearly with no filler or repetition of schema details.

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

Completeness4/5

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

For a two-parameter tool with a fully described schema, the description provides the essential context: the action, the permission prerequisite, and the success return. It does not specify error conditions or whether the gift is consumed, but given schema completeness and no nested objects, the description is sufficiently complete for correct invocation in most cases.

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

Parameters3/5

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

The input schema already covers 100% of parameters with descriptions, so the baseline is 3. The description does not add parameter-level meaning beyond the schema, but it confirms the overall operation and the required permission, which indirectly clarifies why both parameters are needed.

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

Purpose5/5

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

The description clearly states a specific verb ('Converts') and resource ('regular gift to Telegram Stars'), and mentions a required permission ('can_convert_gifts_to_stars business bot right'). This distinguishes it from sibling gift tools like upgradeGift, transferGift, and getBusinessAccountGifts.

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

Usage Guidelines4/5

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

The description names a required permission, which indirectly tells an agent the tool can only be used when that right is present. It does not explicitly mention alternatives or when not to use it, but the permission requirement and the verb 'convert' give clear context compared to siblings.

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

copyMessageA

Copy messages of any kind. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionNoNew caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idYesMessage identifier in the chat specified in from_chat_id.
parse_modeNoMode for parsing entities in the new caption. See formatting options for more details.
from_chat_idYesUnique identifier for the chat where the original message was sent (or channel username in the format @channelusername).
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
video_start_timestampNoNew start timestamp for the copied video in the message, in seconds.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
show_caption_above_mediaNoPass True, if the caption must be shown above the message media. Ignored if a new caption isn't specified.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It explains the lack of a link to the original, the limits on service/paid/giveaway/invoice messages, the quiz poll condition, and the return value. This is a strong disclosure of core behavior, though it does not discuss edge cases like media group behavior or rate limits.

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

Conciseness5/5

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

Three sentences, all informative and front-loaded with the core purpose. Every sentence earns its place: the action, the exceptions, the comparison to forwardMessage, and the return type. No filler or redundant restatement of the tool name.

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

Completeness4/5

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

Despite having 17 parameters and no output schema, the description covers the crucial invocation context: what can be copied, what cannot, and what is returned. The schema handles the remaining parameter details, so nothing critical is missing for an agent to correctly select and invoke the tool. It could add examples or integration notes, but none are essential.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 17 parameters in detail. The description adds little parameter-specific meaning beyond what the schema provides; it does not reiterate or enrich parameter semantics. Baseline 3 is appropriate because the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb and resource: 'Copy messages of any kind', then precisely scopes exceptions and an analogy to forwardMessage. It clearly distinguishes itself from forwardMessage by noting the copied message doesn't have a link to the original, so an agent can tell them apart without opening the schema.

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

Usage Guidelines4/5

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

The description gives explicit context for when to use copyMessage versus forwardMessage: it is analogous but removes the original-message link, which is a clear decision criterion. It lists unsupported message types and the quiz poll condition, providing important constraints. It does not explicitly mention the sibling copyMessages tool or advise when bulk copying is preferred, so some usage guidance is left implicit.

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

copyMessagesA

Copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessages, but the copied messages don't have a link to the original message. Album grouping is kept for copied messages. Returns an array of MessageId of the sent messages on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idsYesA JSON-serialized list of 1-100 identifiers of messages in the chat from_chat_id to copy. The identifiers must be specified in a strictly increasing order.
from_chat_idYesUnique identifier for the chat where the original messages were sent (or channel username in the format @channelusername).
remove_captionNoPass True to copy the messages without their captions.
protect_contentNoProtects the contents of the sent messages from forwarding and saving.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
disable_notificationNoSends the messages silently. Users will receive a notification with no sound.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It states that unfindable/un-copyable messages are skipped, enumerates non-copyable message types, gives the quiz-poll condition, notes that album grouping is preserved, and specifies the success return. This is unusually complete for a tool with no annotation support.

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

Conciseness5/5

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

Each sentence in the description delivers a distinct operational fact: core action, failure behavior, unsupported types, quiz condition, comparison to forwardMessages, album handling, and return format. There is no filler or repetition of schema content, and the core action is front-loaded.

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

Completeness5/5

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

For a tool with 8 parameters, no annotations, and no output schema, the description covers the essential non-obvious details: partial failure behavior, unsupported message types, special poll condition, relationship to forwardMessages, album grouping, and return value. The schema handles parameter details, so nothing critical is missing for an agent to invoke this correctly.

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

Parameters3/5

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

The input schema already describes all 8 parameters, including chat_id, message_ids, and remove_caption, so the baseline is 3. The description adds behavioral context such as skipped messages and album grouping, but it does not clarify individual parameter semantics beyond what the schema already states.

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

Purpose4/5

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

The description opens with a clear verb and resource: 'Copy messages of any kind.' It also distinguishes the tool from forwardMessages by noting that copied messages don't retain a link to the original. However, it never explicitly differentiates copyMessages from its sibling copyMessage, and 'any kind' is immediately qualified by a list of non-copyable types.

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

Usage Guidelines4/5

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

The description gives clear context by explicitly comparing the method to forwardMessages and calling out the key tradeoff: copied messages lack a link to the original. This lets an agent choose between copying and forwarding in many cases. It does not provide explicit when-to-use guidance relative to copyMessage or the send* family, but the batch nature is strongly implied by the plural name and message_ids parameter.

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

createForumTopicA

Create a topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns ForumTopic object.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTopic name, 1-128 characters
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)
icon_colorNoColor of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F)
icon_custom_emoji_idNoUnique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It discloses the required administrator permission and the return type (ForumTopic object), adding meaningful context beyond the schema. It doesn't describe failure modes, but the permission requirement is the key behavioral constraint for this creation operation.

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

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the action and target, then follows with the permission requirement and return type. Every clause earns its place.

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

Completeness4/5

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

The description covers the essential operational context: target resource, required permission, and return value. The schema covers all parameter details, so nothing critical is missing. A slightly richer note about the returned ForumTopic object's relevance or failure behavior would push it to fully complete, but it is sufficient for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all four parameters including icon color values and emoji identifier usage. The description adds no additional parameter-level semantics, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Create'), a specific resource ('a topic in a forum supergroup chat'), and is distinct from sibling tools like editForumTopic or deleteForumTopic. The verb+resource combination makes the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description clearly identifies when the tool applies (creating a topic in a forum supergroup chat) and gives a concrete prerequisite (bot must be an administrator with can_manage_topics rights). It doesn't explicitly contrast with alternatives, but the creation context is clear enough that an agent can select it over edit/close/delete siblings.

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

createNewStickerSetA

Create a new sticker set owned by a user. The bot will be able to edit the sticker set. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesShort name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in '_by_<bot_username>'. <bot_username> is case insensitive. 1-64 characters.
titleYesSticker set title, 1-64 characters.
user_idYesUser identifier of created sticker set owner.
stickersYesA list of 1-50 initial stickers to be added to the sticker set. Each object is an InputSticker with sticker, format, emoji_list, mask_position (optional), and keywords (optional).
sticker_typeNoType of stickers in the set: "regular", "mask", or "custom_emoji". By default, a regular sticker set is created.
needs_repaintingNoPass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context. For custom emoji sticker sets only.

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral disclosure burden. It does state two useful facts: the bot gains the ability to edit the sticker set, and the method returns True on success. However, it does not mention failure behavior, error cases, or any implicit ownership/authorization constraints beyond the phrase 'owned by a user'.

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

Conciseness5/5

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

The description is three short sentences with no filler. The core action is front-loaded, and each sentence contributes distinct information: creation, the bot's future edit permission, and the success return value. Nothing is redundant or missing from a structural standpoint.

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

Completeness4/5

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

The schema comprehensively documents all six parameters, including enum values and special boolean constraints, and the description supplies the success return value since there is no output schema. The key side effect—bot edit rights—is also disclosed, making the definition usable for correct invocation. It still lacks explicit failure semantics and alternative routing, but these are partially addressed by the schema and sibling tool names.

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

Parameters3/5

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

Input schema coverage is 100%, so every parameter already has a meaningful description in the schema. The tool-level description adds only a loose echo of parameters ('new sticker set', 'owned by a user') but no extra format, constraints, or relationships. This is the appropriate baseline case where the schema does the heavy lifting.

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

Purpose5/5

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

The description uses a specific verb ('Create') and a clear resource ('a new sticker set owned by a user'), so the tool's function is immediately evident. It also adds a distinguishing trait: the bot will be able to edit the sticker set. This is not a tautology and separates it from read/manipulation tools like getStickerSet or addStickerToSet.

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

Usage Guidelines3/5

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

The word 'new' implies this is for creating a set rather than modifying an existing one, but the description does not explicitly compare against sibling tools such as addStickerToSet, setStickerSetTitle, or uploadStickerFile. It gives no explicit when-to-use or when-not-to-use guidance, nor any prerequisites such as the need for a user to have interacted with the bot.

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

declineChatJoinRequestA

Decline a chat join request. The bot must be an administrator with can_invite_users rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
user_idYesUnique identifier of the target user

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It reveals the required administrator permission ('can_invite_users rights') and the success return value ('Returns True on success'), which are useful operational traits beyond the schema.

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

Conciseness5/5

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

The description is two short sentences that communicate the action, the prerequisite, and the return value without unnecessary words. All sentences add value.

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

Completeness5/5

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

For a simple two-parameter tool, the description is complete: it explains what the tool does, the required permission, and the return behavior. The schema fully documents the parameters, so no critical context is missing.

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

Parameters3/5

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

The input schema has 100% coverage for both parameters, chat_id and user_id, with descriptions. The tool description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Decline a chat join request.' This is unambiguous and distinguishes the tool from its sibling approveChatJoinRequest, making the operation clear to an agent.

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

Usage Guidelines3/5

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

The description clearly identifies the action, but it does not explicitly contrast with approveChatJoinRequest or state when to choose this over alternatives. The usage is implied by the operation name and description rather than explicitly guided.

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

declineSuggestedPostA

Declines a suggested post in a direct messages chat. Requires the can_manage_direct_messages administrator right in the corresponding channel. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier of the chat containing the suggested post
commentNoA comment explaining why the post was declined; 0-128 characters
message_idYesUnique identifier of the suggested post message

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It clearly states the required permission, the action performed, and the return value (True on success). It does not describe error cases or whether the action is reversible, but for a simple decline operation the key behavioral traits are transparent.

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

Conciseness5/5

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

The description is composed of three short sentences with no filler: the action, the permission requirement, and the return value. Every sentence serves a distinct purpose, and the most important information is front-loaded.

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

Completeness4/5

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

For a simple tool with three well-documented parameters and no output schema, the description covers the core action, the required permission, and the return value. It does not mention edge cases or failure modes, but nothing essential for calling the tool correctly is missing given the schema's thorough parameter descriptions.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides; it does not clarify comment usage or further detail chat_id/message_id semantics. Each parameter is already well documented in the schema.

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

Purpose5/5

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

The description clearly states the action ('Declines a suggested post') and the context ('in a direct messages chat'), distinguishing it from the sibling approveSuggestedPost. The verb and resource are specific, leaving no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies when to use the tool by stating the action, and it provides a clear prerequisite (can_manage_direct_messages administrator right). However, it does not explicitly name alternatives like approveSuggestedPost or describe conditions where the tool should not be used, leaving usage guidance mostly implied.

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

deleteBusinessMessagesA

Deletes messages on behalf of a business account. Requires can_delete_sent_messages for bot's own messages or can_delete_all_messages for any message. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYesA list of 1-100 identifiers of messages to delete. All messages must be from the same chat.
business_connection_idYesUnique identifier of the business connection

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and uses it well: it discloses the required permission scopes ('can_delete_sent_messages' vs 'can_delete_all_messages') and the success return value. It stops short of mentioning edge cases such as missing messages or deletion age limits, but the core behavioral contract is present.

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

Conciseness5/5

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

Two sentences with no filler: the subject-action pair is first, followed by permission requirements and return behavior. Every sentence adds operational value.

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

Completeness4/5

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

For a two-parameter, no-nested-schema tool, the description covers authorization, target scope, and return value, and the schema covers parameter constraints. It could be slightly stronger by routing to alternatives or noting partial-failure behavior, but nothing essential to invoking it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with both business_connection_id and message_ids meaningfully documented. The description adds no parameter-level detail beyond the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Deletes messages on behalf of a business account.' The 'business account' qualifier distinguishes it from siblings like deleteMessage and deleteMessages, which target ordinary chat messages.

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

Usage Guidelines3/5

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

The description implies the tool is for business-account message deletion and specifies required permissions, but it does not explicitly contrast it with deleteMessage/deleteMessages or state when not to use it. The usage context is inferable rather than articulated.

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

deleteChatPhotoA

Delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator with can_change_info rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the required permission, a scope limitation (private chats), and the success return value (True). This covers the key behavioral aspects for a simple deletion endpoint, though it doesn't detail failure modes or edge cases like a missing photo.

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

Conciseness5/5

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

Three concise sentences, each carrying distinct value: the action, the limitations/prerequisite, and the return value. Front-loaded with the core purpose and no wasted words.

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

Completeness5/5

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

For a one-parameter, side-effect-focused method with no output schema and no annotations, this description covers the essential aspects: what it does, who can use it, where it doesn't work, and what it returns. Nothing critical is missing.

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

Parameters3/5

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

The single parameter chat_id is already fully documented in the schema with 100% coverage. The description adds no further parameter-specific meaning, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Delete') with a clear resource ('chat photo'), making the operation unmistakable. It naturally contrasts with sibling setChatPhoto, so an agent can distinguish them without comparing schemas.

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

Usage Guidelines4/5

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

It provides clear usage context: the bot must be an administrator with can_change_info rights, and it notes that photos can't be changed for private chats, effectively excluding private chat targets. It doesn't explicitly name alternative tools, but the prerequisite and limitation are useful guidance.

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

deleteChatStickerSetA

Delete a group sticker set from a supergroup. The bot must be an administrator with can_change_info rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It discloses the required permissions, a way to check eligibility, and the success return value (True). It does not state whether the deletion is irreversible or that the sticker set itself is not deleted globally, but it covers the most critical behavioral aspects.

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

Conciseness5/5

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

Three sentences contain only necessary information: the action, the permission requirement, the verification method, and the return value. It is front-loaded with the core purpose and has no filler.

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

Completeness5/5

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

For a low-complexity tool with one parameter and no output schema, the description is complete: it explains what the tool does, prerequisites, how to check them, and what the caller will receive. Nothing essential is missing for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the single chat_id parameter is already fully documented in the schema. The description adds no parameter-specific detail beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action: deleting a group sticker set from a supergroup. This distinguishes it from sibling tools like deleteStickerSet and setChatStickerSet by specifying the target scope ('from a supergroup').

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

Usage Guidelines4/5

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

The description provides clear preconditions: the bot must be an administrator with can_change_info rights. It also tells the agent how to verify readiness using the can_set_sticker_set field from getChat, which is practical usage guidance. It does not explicitly mention alternatives, 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.

deleteForumTopicA

Delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator with can_delete_messages rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username (in the format @supergroupusername)
message_thread_idYesUnique identifier for the target message thread of the forum topic

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It explicitly discloses the destructive scope (topic plus all its messages), the required authorization, and the success return value. It does not mention irreversible consequences or error behavior, but the core behavioral traits are transparent.

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

Conciseness5/5

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

The description is two concise sentences with no wasted words. The core action and scope are front-loaded, followed by the permission requirement and return value. Every sentence provides necessary information.

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

Completeness5/5

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

For a two-parameter tool with full schema coverage and no output schema, the description covers the essential context: what is deleted, where it applies, what permission is needed, and the success return value. Nothing critical is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both chat_id and message_thread_id. The description adds no additional parameter-level meaning, which is acceptable given the baseline; it does not create ambiguity.

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

Purpose5/5

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

The description uses a specific verb ('delete') with a precise resource ('forum topic... in a forum supergroup chat') and clearly states the full scope ('along with all its messages'). This distinguishes it from sibling tools like closeForumTopic or editForumTopic without needing to inspect their schemas.

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

Usage Guidelines4/5

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

The description provides a clear prerequisite: the bot must be an administrator with can_delete_messages rights. It does not explicitly name alternatives or state 'use this instead of closeForumTopic', but the destructive scope and required permission make the intended usage clear.

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

deleteMessageA

Delete a message, including service messages, with the following limitations: A message can only be deleted if it was sent less than 48 hours ago. Service messages about a supergroup, channel, or forum topic creation can't be deleted. A dice message in a private chat can only be deleted if it was sent more than 24 hours ago. Bots can delete outgoing messages in private chats, groups, and supergroups. Bots can delete incoming messages in private chats. Bots granted can_post_messages permissions can delete outgoing messages in channels. If the bot is an administrator of a group, it can delete any message there. If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idYesIdentifier of the message to delete.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses deletion limitations, the 48-hour window, specific exceptions for dice messages and creation service messages, permission requirements across chat types, and the success return value. This is far beyond the bare operation name.

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

Conciseness4/5

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

The description is long but every sentence adds necessary information about deletion constraints and permissions. It is front-loaded with the core action and the most important qualifier. It could be tightened with bullet points for readability, but there is no wasted content.

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

Completeness5/5

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

Given a simple two-parameter tool with no annotations and no output schema, this description is unusually complete. It covers all essential edge cases: service messages, time limits, dice messages, bot permissions, channel/supergroup/group behavior, and the return value. An agent has enough information to know when the call will succeed or fail.

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

Parameters3/5

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

The input schema already documents both parameters fully, including chat_id format and message_id meaning, with 100% schema description coverage. The description adds no extra parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description begins with 'Delete a message' which is a specific verb and resource, and adds the key qualifier 'including service messages.' It clearly identifies the tool's function and is distinguishable from the sibling deleteMessages, which targets multiple messages.

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

Usage Guidelines4/5

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

The description provides rich context on when deletion is allowed, including time limits, message types, bot permissions, and chat types. However, it does not explicitly compare against the sibling deleteMessages tool or state when to prefer one over the other, so it lacks explicit alternative routing.

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

deleteMessagesA

Delete multiple messages simultaneously. If some of the specified messages can't be found, they are skipped. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idsYesA JSON-serialized list of 1-100 identifiers of messages to delete. See deleteMessage for limitations on which messages can be deleted.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden, and it does add value: the partial-failure behavior (missing messages are skipped) and the return value are both stated. However, for a destructive batch operation it omits permanence/irreversibility and permission requirements (e.g., bots can only delete their own messages in groups), which a no-annotation tool should disclose.

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

Conciseness5/5

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

Three sentences, each earning its place: the action, the partial-failure behavior, and the return value. The primary action is front-loaded and there is zero redundant wording.

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

Completeness4/5

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

For a 2-parameter tool with no output schema, the description plus rich schema is nearly complete: behavior, partial failure, and return value are covered, and the schema supplies parameter details and points to deleteMessage for deletion limitations. It falls just short of exhaustive because error semantics on total failure (e.g., invalid chat_id) and irreversibility are not stated.

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

Parameters4/5

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

Schema description coverage is 100%: chat_id documents the identifier/channel-username forms and message_ids documents the 1-100 JSON-serialized list plus a cross-reference to deleteMessage limitations. The description adds a genuine semantic bonus by clarifying that message_ids may reference non-existent messages without causing failure, since they are skipped.

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

Purpose5/5

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

States a specific verb ('Delete'), resource (messages), and scope ('multiple... simultaneously'), which directly distinguishes it from the singular sibling deleteMessage. An agent can identify this as the batch deletion variant without opening the schema.

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

Usage Guidelines4/5

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

The description makes the batch use case explicit ('Delete multiple messages simultaneously'), and the skip-on-missing note tells agents they can pass a set of IDs without pre-validating them. It does not explicitly name alternatives or state exclusions, though the schema's reference to 'See deleteMessage for limitations' partially covers the single-message path.

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

deleteMyCommandsB

Delete the list of bot commands for the given scope and language. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoScope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.
language_codeNoTwo-letter ISO 639-1 language code. If empty, commands apply to all users from the given scope.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states the destructive action and the 'Returns True on success' outcome, which is useful. However, it does not disclose any side effects, reversibility, or how this interacts with previously set commands, so the behavioral disclosure is only partially complete.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. It clearly states the action, the scope qualifier, and the return value in minimal words — every word earns its place.

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

Completeness3/5

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

For a two-parameter tool with a fully documented schema, the description is adequate. It states the operation and success return, while the schema covers parameter defaults. However, without annotations, it omits any guidance on when to avoid this operation or consequences beyond deletion, leaving some context for the agent to infer.

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

Parameters3/5

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

Schema description coverage is 100%, with both scope and language_code already explained. The description mentions 'given scope and language' but adds no new parameter-specific meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description uses a specific verb ('Delete'), names the resource ('list of bot commands'), and qualifies by scope and language. It clearly distinguishes from siblings like setMyCommands and getMyCommands through the verb, though it does not explicitly name an alternative.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus setMyCommands or getMyCommands. The description does not state conditions, exclusions, or prerequisites, leaving the agent to infer usage solely from the tool name and context.

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

deleteStickerFromSetA

Delete a sticker from a set created by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
stickerYesFile identifier of the sticker.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly communicates the destructive action ('Delete') and the 'created by the bot' precondition, and it states the success return value. However, it does not mention irreversibility, failure behavior, or any permissions needed, though for a simple delete operation this is a moderate gap.

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

Conciseness5/5

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

The description is one concise sentence that front-loads the action and resource, then gives the return behavior. Every word earns its place, with no filler or repetition.

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

Completeness5/5

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

For a one-parameter tool with no output schema, the description is complete: it names the operation, restricts it to bot-created sets, and states the return value. The schema covers the parameter fully, and the sibling list does not reveal any missing edge case that would prevent an agent from invoking this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, and the sole parameter 'sticker' is already documented as 'File identifier of the sticker.' The description adds no additional parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and states the exact resource: a sticker within a set created by the bot. It also distinguishes itself from sibling tools like deleteStickerSet by clarifying it removes a single sticker, not the entire set.

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

Usage Guidelines3/5

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

The description implies the usage context: use this when you need to remove one sticker from a bot-created sticker set. However, it does not explicitly contrast with alternatives such as deleteStickerSet, replaceStickerInSet, or setStickerPositionInSet, leaving selection partly to inference.

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

deleteStickerSetA

Delete a sticker set that was created by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker set name.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the destructive nature ('Delete'), the prerequisite scope ('created by the bot'), and the success return value ('Returns True on success'). This is sufficient for a straightforward deletion operation, though it could hint at irreversibility more explicitly.

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

Conciseness5/5

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

The description is a single crisp sentence that front-loads the action and then states the return value. Every word adds value and there is no redundancy, making it easy for an agent to parse quickly.

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

Completeness5/5

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

For a one-parameter destructive method with no output schema, the description is complete: it identifies the resource, the restriction, and the success return value. An agent has enough information to call the tool correctly without further clarification.

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

Parameters3/5

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

The input schema already provides 100% coverage for the single 'name' parameter with its own description ('Sticker set name'). The tool description adds no additional details about format, length, or usage constraints beyond what the schema supplies, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Delete'), identifies the resource ('sticker set'), and adds a clear scope condition ('created by the bot'). This distinguishes it well from related siblings like deleteStickerFromSet, which operates on a single sticker, and deleteChatStickerSet, which targets a chat's sticker set.

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

Usage Guidelines3/5

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

The phrase 'created by the bot' is a useful scoping hint and clearly indicates the intended target. However, the description does not explicitly say when not to use this tool or mention alternatives such as deleteStickerFromSet for removing individual stickers, leaving some routing to inference.

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

deleteStoryA

Deletes a story previously posted by the bot on behalf of a managed business account. Requires the can_manage_stories business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
story_idYesUnique identifier of the story to delete
business_connection_idYesUnique identifier of the business connection

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does a solid job: it discloses the required permission (can_manage_stories), limits the operation to bot-posted stories, and states the success return value (True). It does not cover failure behavior or irreversibility in depth, but 'Deletes' already signals destructive intent.

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

Conciseness5/5

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

Two sentences with no filler: the main action is front-loaded, followed by the permission requirement and the return value. Every sentence earns its place, and the entire definition can be processed quickly.

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

Completeness4/5

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

For a low-complexity, two-parameter delete operation with no output schema, the description covers the action, scope, authorization, and success response. The only meaningful gap is failure semantics (e.g., what happens when the story does not exist), which is a minor omission given how direct the operation is.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema's generic 'unique identifier' phrasing. It clarifies that story_id refers to a bot-posted story and that business_connection_id belongs to a managed business account, which helps an agent map the parameters correctly.

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

Purpose5/5

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

The description names a specific verb ('Deletes') and a precise resource ('a story previously posted by the bot on behalf of a managed business account'), which clearly separates it from sibling tools like deleteMessage, deleteBusinessMessages, or editStory. Adding the permission requirement further pins down its scope.

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

Usage Guidelines4/5

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

The description provides clear context for when the tool applies: the story must be one previously posted by the bot, the account must be a managed business account, and the can_manage_stories bot right is required. It names no explicit alternatives or exclusion cases, but the conditions given are specific enough for an agent to select this tool correctly.

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

deleteWebhookA

Remove webhook integration. Use getUpdates to receive updates after this.

ParametersJSON Schema
NameRequiredDescriptionDefault
drop_pending_updatesNoPass True to drop all pending updates.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It names the destructive target (webhook integration) and reveals a behavioral consequence (updates must be polled via getUpdates afterward). However, it does not disclose what happens to pending updates by default or the success return value, leaving side effects partially opaque.

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

Conciseness5/5

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

Two short sentences with zero filler. The core action is front-loaded, and the follow-up guidance about getUpdates earns its place.

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

Completeness4/5

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

For a low-complexity tool with one optional parameter and no output schema, the description is nearly complete: it states the action and the post-action update channel. A note about pending updates default behavior or the boolean success response would make it fully complete, but nothing essential is missing for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, and the sole optional parameter already has a clear description in the input schema. The tool description adds no parameter-level detail, but none is necessary here since the schema fully documents the parameter.

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

Purpose5/5

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

The description opens with a specific verb ('Remove') and a clear resource ('webhook integration'), stating exactly what the tool does. This also distinguishes it from siblings like setWebhook and getWebhookInfo without requiring inspection of their schemas.

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

Usage Guidelines3/5

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

The description provides a useful post-action routing hint ('Use getUpdates to receive updates after this'), but it gives no explicit condition for choosing deleteWebhook over alternatives such as setWebhook or getWebhookInfo. The main usage context is only implied by the verb 'Remove'.

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

editForumTopicA

Edit name and icon of a forum topic. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept
chat_idYesUnique identifier for the target chat or username (in the format @supergroupusername)
message_thread_idYesUnique identifier for the target message thread of the forum topic
icon_custom_emoji_idNoNew unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the required permission, the fact that the operation is a mutation, and the return behavior ('Returns True on success'). This is substantial behavioral context for a small edit tool.

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

Conciseness5/5

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

Two sentences with zero redundancy. The main purpose is front-loaded, followed by the permission requirement and return value. Every sentence earns its place.

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

Completeness5/5

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

For a simple edit operation with four well-documented parameters, the description covers the essential operational facts: what it does, required permissions, and return value. No critical information is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters in detail. The description adds minimal parameter-level information beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Edit') and resource ('forum topic'), and narrows the operation to 'name and icon'. This clearly distinguishes it from siblings like createForumTopic, closeForumTopic, and editGeneralForumTopic.

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

Usage Guidelines4/5

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

The description provides a clear usage condition: the bot must be an administrator with can_manage_topics rights. It does not explicitly mention alternatives or exclusions, but the condition and scope make the intended use reasonably clear.

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

editGeneralForumTopicA

Edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew topic name, 1-128 characters
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It discloses the permission requirement and the success return value ('Returns True on success'). It does not describe failure behaviors or side effects, but for a simple rename operation these are adequate and the key conditions are stated.

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

Conciseness5/5

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

Two terse sentences with zero filler. The action is front-loaded, the required permission follows immediately, and the return value is included. Every sentence earns its place.

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

Completeness4/5

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

For a simple 2-parameter tool with no output schema, the description covers the essential operational context: the target resource, the required permission, and the success result. It lacks sibling routing and failure-mode detail, but nothing critical is missing for an agent to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented with types and descriptions. The description adds no additional parameter-level detail beyond loosely referencing 'name' and 'forum supergroup chat'. Baseline 3 is appropriate because the schema already carries the semantic load.

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

Purpose5/5

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

The description states the exact operation: 'Edit the name of the 'General' topic in a forum supergroup chat.' This clearly identifies the verb, resource, and scope, and inherently distinguishes the tool from sibling editForumTopic which targets regular topics. The quoted 'General' makes the target unambiguous.

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

Usage Guidelines3/5

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

The description provides a clear prerequisite: the bot must be an administrator with can_manage_topics rights. However, it does not explicitly state when to use this tool versus editForumTopic for non-General topics or other General-topic management actions like hideGeneralForumTopic or closeGeneralForumTopic. The usage context is implied, but alternatives are not delineated.

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

editMessageCaptionA

Edit captions of messages. Returns the edited Message on success, or True if the message is an inline message.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionNoNew caption of the message, 0-1024 characters after entities parsing.
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idNoRequired if inline_message_id is not specified. Identifier of the message to edit.
parse_modeNoMode for parsing entities in the message caption. See formatting options for more details.
reply_markupNoA JSON-serialized object for an inline keyboard.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
business_connection_idNoUnique identifier of the business connection on behalf of which the message to be edited was sent.
show_caption_above_mediaNoPass True if the caption must be shown above the message media. Supported only for animation, photo and video messages.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It does surface one genuinely useful behavioral trait — the divergent return value for inline messages (True instead of the edited Message). However, it stays silent on prerequisites (bot must have sent the message or hold edit rights), failure conditions, and the fact that only the caption is modified while media/text remain untouched.

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

Conciseness5/5

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

Two sentences with zero filler. The core operation is front-loaded, and the return-value caveat follows immediately; both sentences earn their place.

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

Completeness3/5

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

For a 9-parameter mutation tool with no annotations and no output schema, the description is thin. It omits the conditional addressing requirement (chat_id+message_id XOR inline_message_id), which an agent would only discover by reading schema parameter descriptions, and offers no guidance on supported message types or when editing is not permitted. The return-value disclosure partially compensates, but an agent reading the description alone would miss key invocation preconditions.

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

Parameters3/5

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

Schema description coverage is 100%, and the parameter descriptions are rich (e.g., 'Required if inline_message_id is not specified', @channelusername format, and the media-type constraint on show_caption_above_media). The tool description adds no parameter-level meaning, but at full coverage the baseline of 3 applies — the schema already does the heavy lifting.

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

Purpose5/5

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

The description opens with the specific operation 'Edit captions of messages' — a precise verb+resource pairing that distinguishes it from the many sibling edit tools (editMessageText, editMessageMedia, editMessageReplyMarkup). It also discloses the return contract (edited Message vs True for inline messages), removing ambiguity about what the caller receives.

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

Usage Guidelines3/5

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

The purpose statement implies the use case — changing a message's caption — but it never explicitly routes the agent away from siblings like editMessageText, nor does it flag the mutually exclusive addressing modes (chat_id+message_id vs inline_message_id). No alternatives or exclusions are named; the guidance is only implied.

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

editMessageLiveLocationA

Edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. Returns the edited Message on success, or True if the message is an inline message.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
headingNoDirection in which the user is moving, in degrees. Must be between 1 and 360 if specified.
latitudeYesLatitude of new location.
longitudeYesLongitude of new location.
message_idNoRequired if inline_message_id is not specified. Identifier of the message to edit.
live_periodNoNew period in seconds during which the location can be updated, starting from the message send date. If 0x7FFFFFFF is specified, then the location can be updated forever. Otherwise, the new value must not exceed the current live_period by more than a day, and the live location expiration date must remain within the next 90 days. If not specified, then live_period remains unchanged.
reply_markupNoA JSON-serialized object for an inline keyboard.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
horizontal_accuracyNoThe radius of uncertainty for the location, measured in meters; 0-1500.
business_connection_idNoUnique identifier of the business connection on behalf of which the message to be edited was sent.
proximity_alert_radiusNoMaximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral transparency burden. It discloses the temporal edit constraint, the stopMessageLiveLocation escape hatch, and the return behavior for inline vs. non-inline messages. It omits permissions and failure modes, but the core side effects and boundaries are clearly stated.

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

Conciseness5/5

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

Two compact sentences with no fluff. The core operation is front-loaded, followed by the key boundary condition and return type. Every sentence earns its place.

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

Completeness4/5

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

With 11 parameters, a nested reply_markup object, and no output schema, the description supplies essential lifecycle and return-value context that the schema cannot convey. It does not mention every restriction, such as the message having been sent by the bot, but the rich schema plus focused description is largely sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter and its conditional requirements. The description adds no parameter-level detail, which is acceptable given the high schema coverage baseline.

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

Purpose5/5

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

The description states a specific verb ('Edit') and resource ('live location messages'), which clearly distinguishes it from sibling edit tools like editMessageText and editMessageMedia. The lifecycle sentence about live_period and stopMessageLiveLocation further anchors exactly which messages this tool targets.

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

Usage Guidelines4/5

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

The description gives clear usage context by explaining when editing is allowed (until live_period expires or stopMessageLiveLocation is called). It does not explicitly exclude sibling tools like editMessageText or editMessageCaption, but the context strongly implies this is only for live location messages.

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

editMessageMediaA

Edit animation, audio, document, photo, or video messages, or add media to text messages. If a message is part of a message album, then it can only be edited to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. Returns the edited Message on success, or True if the message is an inline message.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaYesA JSON-serialized object for a new media content of the message. Supported types: InputMediaAnimation, InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo.
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idNoRequired if inline_message_id is not specified. Identifier of the message to edit.
reply_markupNoA JSON-serialized object for an inline keyboard.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
business_connection_idNoUnique identifier of the business connection on behalf of which the message to be edited was sent.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden. It adds meaningful behavioral detail beyond the schema: album editing restrictions and the distinct return type for inline messages (True instead of Message). It does not cover permissions, ownership requirements, or irreversible replacement of old media, so it is not a 5.

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

Conciseness5/5

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

The description is compact and front-loaded: purpose first, then the key constraint, then the return behavior. Every sentence contributes unique information with no filler or repetition.

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

Completeness4/5

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

Given a nested media object, no annotations, and no output schema, the description covers the most important behavior: supported media, album limitations, and return values. The schema handles parameter semantics. Some context is still missing, such as whether only messages sent by the bot can be edited and what happens to the original text when media is added.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds extra semantic context for the media parameter by defining what media types can be edited, how album membership constrains those types, and the special case of adding media to text messages—details not present in the schema itself.

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

Purpose5/5

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

The description states a specific verb and resource: editing the media of existing messages, and explicitly lists supported media types plus the 'add media to text messages' case. This clearly differentiates it from sibling tools like editMessageText, editMessageCaption, and editMessageReplyMarkup.

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

Usage Guidelines3/5

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

The description makes clear this tool is for editing media and adds album-specific constraints, but it does not explicitly contrast with sibling tools or state when to use editMessageText/editMessageCaption instead. Usage context is implied rather than explicitly delimited.

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

editMessageReplyMarkupA

Edit only the reply markup of messages. Returns the edited Message on success, or True if the message is an inline message.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idNoRequired if inline_message_id is not specified. Identifier of the message to edit.
reply_markupNoA JSON-serialized object for an inline keyboard.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
business_connection_idNoUnique identifier of the business connection on behalf of which the message to be edited was sent.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It does disclose the operation ('edit only reply markup') and the return behavior (edited Message or True for inline messages), but it does not mention permission requirements, the effect of passing an empty reply_markup (removing the keyboard), or reversibility.

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

Conciseness5/5

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

One compact sentence front-loads the action and scope, then gives the return behavior. Every clause contributes essential information with no redundancy.

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

Completeness4/5

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

The description covers the tool's purpose and return values, which is needed since there is no output schema. Conditional parameter requirements and inline_message_id semantics are already described in the schema, so the main gap is the lack of explicit alternative routing, which is minor.

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

Parameters3/5

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

The schema already provides full descriptions for all 5 parameters (100% coverage), so the baseline is 3. The description adds no parameter-level detail beyond 'reply markup' and return behavior, which do not enhance the schema's parameter information.

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

Purpose5/5

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

The description uses a specific verb ('Edit') and precise resource ('reply markup of messages'), and the word 'only' explicitly narrows scope from sibling edit tools like editMessageText and editMessageCaption. This makes the tool's role unambiguous.

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

Usage Guidelines4/5

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

The limitation 'only the reply markup' implicitly tells the agent to choose this tool when just the inline keyboard needs changing, not text/caption/media. However, it does not explicitly name alternatives or state when not to use it, so the guidance is clear but not exhaustive.

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

editMessageTextA

Edit text and game messages. Returns the edited Message on success, or True if the message is an inline message.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNew text of the message, 1-4096 characters after entities parsing.
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
entitiesNoA JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode.
message_idNoRequired if inline_message_id is not specified. Identifier of the message to edit.
parse_modeNoMode for parsing entities in the message text. See formatting options for more details.
reply_markupNoA JSON-serialized object for an inline keyboard.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
link_preview_optionsNoLink preview generation options for the message.
business_connection_idNoUnique identifier of the business connection on behalf of which the message to be edited was sent.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the mutating nature of the operation and specifies the return behavior (edited Message vs True for inline messages). But it does not mention constraints such as message ownership, edit time limits, or other side effects that would give an agent a fuller behavioral picture.

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

Conciseness5/5

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

The description is a single front-loaded sentence that states the action, scope, and return behavior without any filler. Every piece of information contributes to an agent's understanding.

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

Completeness3/5

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

Although there is no output schema, the description covers the return type, and the schema thoroughly documents parameter requirements like the mutual exclusion of chat_id/message_id vs inline_message_id. Still, with nine parameters and nested options, the description offers no usage scenarios or limitations beyond what is already structured, leaving moderate gaps in context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning beyond the schema, but it does not need to because every parameter is already well documented in the schema.

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

Purpose5/5

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

The description clearly states the action ('Edit') and the resource ('text and game messages'), which distinguishes it from sibling edit tools such as editMessageCaption, editMessageMedia, and editMessageReplyMarkup. The return-value note further clarifies that it covers both regular and inline messages.

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

Usage Guidelines3/5

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

The scope is implied by the resource mention — text and game messages — so an agent can infer this is not for captions, media, or reply markup. However, the description does not explicitly name alternative tools or state when not to use this one, leaving the routing to inference.

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

editStoryA

Edits a story previously posted by the bot on behalf of a managed business account. Requires the can_manage_stories business bot right. Returns a Story object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
areasNoA list of StoryArea objects to be shown on the story.
captionNoNew caption for the story; 0-2048 characters
contentYesNew content of the story. Must be an InputStoryContent object.
story_idYesUnique identifier of the story to edit
parse_modeNoMode for parsing entities in the caption.
caption_entitiesNoA list of special entities that appear in the caption.
business_connection_idYesUnique identifier of the business connection

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the authorization requirement (can_manage_stories business bot right) and the success outcome (returns a Story object), which are useful behavioral facts beyond what the name alone conveys. It does not detail whether the edit irreversibly replaces content, but the action is stated clearly.

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

Conciseness5/5

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

Three concise sentences with no filler: the operation is front-loaded, followed by the required permission and the return type. Every sentence earns its place.

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

Completeness4/5

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

For a 7-parameter edit operation with nested objects and no output schema, the description supplies the important operational scope, the permission precondition, and the return type. The schema already documents parameter semantics, so the description is sufficiently complete for an agent to call the tool correctly.

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

Parameters3/5

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

The input schema has 100% description coverage: every parameter, including business_connection_id, story_id, content, caption, parse_mode, caption_entities, and areas, has an explanatory description. The tool description adds no parameter-level detail, but the baseline of 3 is appropriate when the schema fully documents parameters.

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

Purpose5/5

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

The description uses a specific verb ('Edits') and a precise resource ('a story previously posted by the bot on behalf of a managed business account'). This clearly identifies the operation and distinguishes it from sibling story tools like postStory, deleteStory, and repostStory without needing to open the schema.

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

Usage Guidelines4/5

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

The description provides clear context: use this when editing an existing story that the bot previously posted, and it states a hard prerequisite (can_manage_stories business bot right). It does not explicitly name alternatives or exclusions, so it misses the top score.

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

editUserStarSubscriptionA

Allows the bot to cancel or re-enable extension of a subscription paid in Telegram Stars. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesIdentifier of the user whose subscription will be edited
is_canceledYesPass True to cancel extension of the user subscription; the subscription must be active up to the end of the current subscription period. Pass False to allow the user to re-enable it.
telegram_payment_charge_idYesTelegram payment identifier for the subscription

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations present, the description carries the full behavioral burden. It does disclose the mutating nature of the operation and its success return value ('Returns True on success'), which is useful since no output schema exists. But it does not mention prerequisites (an active subscription period), failure behavior, or side effects of canceling vs. re-enabling beyond what the schema's is_canceled text already states.

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

Conciseness5/5

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

Two short sentences with no filler. The core action is front-loaded and the return-value note is the only additional sentence, and it earns its place because there is no output schema. Every word contributes.

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

Completeness3/5

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

For a simple 3-parameter mutation with no output schema, the description combined with the rich schema covers the core action and success return, making the tool callable. It is incomplete on usage context relative to payment-related siblings and on failure/prerequisite behavior, which matters for a state-changing operation with no annotations to back it up.

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

Parameters3/5

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

Schema description coverage is 100%: each parameter (user_id, is_canceled, telegram_payment_charge_id) already has a meaningful schema description, including the subtle behavior constraint on is_canceled. The tool description adds useful domain context ('paid in Telegram Stars') that clarifies what telegram_payment_charge_id refers to, but adds no parameter-level detail, so the baseline 3 for high coverage is appropriate.

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

Purpose5/5

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

The description names a specific action pair ('cancel or re-enable extension') and a specific resource ('a subscription paid in Telegram Stars'), and scopes it to the bot. This clearly differentiates it from near-siblings like refundStarPayment (refunding a payment), getStarTransactions (read-only ledger), and sendInvoice/createInvoiceLink (creating new payment flows), so an agent can route correctly without opening the schema.

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

Usage Guidelines3/5

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

The purpose statement implies the usage context: use this when the bot needs to toggle the renewal state of an existing Star subscription. However, it names no alternatives and gives no when-not-to-use guidance, even though the sibling list contains closely related payment tools such as refundStarPayment and getStarTransactions where explicit exclusions would help disambiguate.

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

forwardMessageA

Forward messages of any kind. Service messages and messages with protected content can't be forwarded. Returns the sent Message on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idYesMessage identifier in the chat specified in from_chat_id.
from_chat_idYesUnique identifier for the chat where the original message was sent (or channel username in the format @channelusername).
protect_contentNoProtects the contents of the forwarded message from forwarding and saving.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
video_start_timestampNoNew start timestamp for the forwarded video in the message, in seconds.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses two important limitations (service messages and protected content cannot be forwarded) and the success return value. It could go further by noting required permissions or that the message is copied rather than moved, but the core behavioral constraints are present.

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

Conciseness5/5

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

Two concise sentences with no filler. The primary action is front-loaded, and the constraints and return value are stated efficiently. Every sentence earns its place.

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

Completeness3/5

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

The description covers the core action, exceptions, and return value, and the schema documents all parameters. However, with no output schema and 10 parameters, plus closely related siblings like forwardMessages and copyMessage, the description should have provided more guidance on how this tool fits among them. It is adequate but not fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters. The description adds no parameter-level 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.

Purpose4/5

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

The description clearly states the action ('Forward messages') and the resource, and it adds meaningful scope ('of any kind') with constraints. However, it does not explicitly distinguish this single-message tool from the sibling forwardMessages, so differentiation is incomplete.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like forwardMessages, copyMessage, or sendMessage. The only usage-related information is a negative condition (service messages and protected content can't be forwarded), which does not help an agent choose among related forwarding/copying tools.

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

forwardMessagesA

Forward multiple messages of any kind. If some of the specified messages can't be found or forwarded, they are skipped. Service messages and messages with protected content can't be forwarded. Album grouping is kept for forwarded messages. Returns an array of MessageId of the sent messages on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idsYesA JSON-serialized list of 1-100 identifiers of messages in the chat from_chat_id to forward. The identifiers must be specified in a strictly increasing order.
from_chat_idYesUnique identifier for the chat where the original messages were sent (or channel username in the format @channelusername).
protect_contentNoProtects the contents of the forwarded messages from forwarding and saving.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
disable_notificationNoSends the messages silently. Users will receive a notification with no sound.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does meaningful work by disclosing partial-failure semantics ('if some ... can't be found or forwarded, they are skipped'), restrictions on service messages and protected content, and that album grouping is preserved. This is above-average transparency for a mutation-like tool, though it omits permission or rate-limit context.

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

Conciseness5/5

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

The description is compact and information-dense: four sentences, each adding a distinct useful fact. It front-loads the primary purpose and then covers failure behavior, content restrictions, grouping behavior, and return value. There is no redundant phrasing or restatement of the tool name.

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

Completeness4/5

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

For a batch forwarding method with fully documented parameters and no output schema, the description covers the important operational semantics: partial failures, non-forwardable content, album behavior, and the success return type. It does not spend space explaining return values in detail, which is acceptable without an output schema, but it could have noted permission requirements or contrast with copying alternatives.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all seven parameters. The description adds a little contextual meaning by explaining that unspecified messages are skipped and album grouping is retained, which clarifies message_ids behavior. This meets the baseline but does not go beyond what a well-documented schema plus behavioral notes already provide.

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

Purpose4/5

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

The description clearly states the core action: 'Forward multiple messages of any kind' and specifies the return type. It distinguishes itself from the singular forwardMessage by emphasizing batch operation and album grouping. However, it does not explicitly name sibling alternatives or contrast with copyMessages, so differentiation is partially left to the tool name and context.

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

Usage Guidelines2/5

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

The description gives no explicit guidance about when to choose forwardMessages over forwardMessage, copyMessages, or copyMessage. It implies batch usage by saying 'multiple messages' and describes skip behavior, but it never states conditions for selecting an alternative. This leaves the agent to infer usage boundaries from sibling names alone.

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

getAvailableGiftsA

Returns the list of gifts that can be sent by the bot to users and channel chats. Returns a Gifts object.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It says the method 'Returns' a list, which suggests a read operation, but it does not explicitly state that there are no side effects, that no authorization is needed, or whether the list has any ordering or other output behavior.

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

Conciseness4/5

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

The description is short and front-loads the primary behavior in the first sentence. The second sentence is mildly redundant because it repeats 'Returns', but it adds the precise object type, so it still contributes value.

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

Completeness3/5

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

For a simple zero-parameter getter, the description adequately states the purpose and the return type. However, with no output schema and no annotations, it leaves the fine-grained return shape unspecified, such as whether the list is sorted or paginated.

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

Parameters4/5

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

The tool has zero parameters and the schema description coverage is 100%, so there is no parameter information missing. Per the rubric, a no-parameter tool receives a baseline score of 4.

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

Purpose5/5

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

The description uses a specific verb ('Returns') and identifies the exact resource: the list of gifts the bot can send to users and channel chats. This clearly distinguishes it from gift-related siblings such as sendGift, getUserGifts, and getChatGifts. It also states the return type, a Gifts object.

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

Usage Guidelines3/5

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

The description gives a clear context for when this tool is appropriate: when you need the bot-sendable gift catalog. However, it does not explicitly contrast it with sibling methods like getBusinessAccountGifts, getUserGifts, or getChatGifts, so an agent has to infer the boundary between them.

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

getBusinessAccountGiftsA

Returns the gifts received and owned by a managed business account. Requires the can_view_gifts_and_stars business bot right. Returns an OwnedGifts object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of gifts to be returned; 1-100. Defaults to 100.
offsetNoOffset of the first entry to return as received from the previous request.
exclude_savedNoPass True to exclude gifts that are saved to the account's profile page.
sort_by_priceNoPass True to sort results by gift price instead of send date. Sorting is applied before pagination.
exclude_uniqueNoPass True to exclude unique gifts.
exclude_unsavedNoPass True to exclude gifts that are not saved to the account's profile page.
exclude_unlimitedNoPass True to exclude gifts that can be purchased unlimited number of times.
business_connection_idYesUnique identifier of the business connection.
exclude_from_blockchainNoPass True to exclude gifts transferred from the TON blockchain.
exclude_limited_upgradableNoPass True to exclude limited gifts that can be upgraded.
exclude_limited_non_upgradableNoPass True to exclude limited gifts that cannot be upgraded.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds meaningful context by stating the required permission ('can_view_gifts_and_stars business bot right') and the success return type ('OwnedGifts object'). It does not explicitly mention that the operation is read-only, but the 'Returns' language and 'get' verb strongly imply it.

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

Conciseness5/5

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

The description is two sentences with no filler: it states the result, the scope, the permission requirement, and the success return type. Every sentence earns its place, and the most important information is front-loaded.

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

Completeness4/5

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

For an 11-parameter tool with no annotations or output schema, the description provides the essential context: what the tool returns, for whom, and what permission is required. It only lacks a more detailed breakdown of the OwnedGifts return structure, but the agent has enough to invoke the tool correctly using the thoroughly described input schema.

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

Parameters3/5

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

The input schema covers 100% of the parameters with descriptions, so the baseline is 3. The tool description does not add additional parameter-level meaning beyond pointing to the business account context, which is already reflected in the required business_connection_id parameter. No parameter semantics are missing, but the description also does not enhance them.

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

Purpose5/5

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

The description states a specific verb ('Returns') and a specific resource ('gifts received and owned by a managed business account'), making the tool's purpose immediately clear. It also distinguishes itself from sibling gift-related tools by scoping to managed business accounts rather than user or chat gifts.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: it is for managed business accounts, and it states the required business bot right. It does not explicitly name alternative tools or state when not to use it, but the 'managed business account' scope gives enough situational guidance for correct selection.

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

getBusinessAccountStarBalanceA

Returns the current Telegram Star balance of a managed business account. Requires the can_view_gifts_and_stars business bot right. Returns a StarAmount object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_connection_idYesUnique identifier of the business connection

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does substantial work: it discloses the authorization requirement (can_view_gifts_and_stars), the read-only nature implied by 'Returns', and the success return type ('StarAmount object'). It stops short of covering failure behavior (invalid connection ID, missing permission), but for a simple read operation the disclosure is strong.

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

Conciseness5/5

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

Two tight sentences with zero waste: the first states the core function, the second adds the two highest-value facts (permission requirement and return type). Information is front-loaded and every clause earns its place.

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

Completeness4/5

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

For a single-parameter read tool with no output schema, the description covers purpose, scope, auth precondition, and return type — nearly everything needed to call it safely. The only gaps are failure-mode behavior and the structure of the returned StarAmount object, which are minor for a simple balance query.

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

Parameters3/5

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

Schema coverage is 100% — the single business_connection_id parameter is already fully documented as 'Unique identifier of the business connection'. The description adds no parameter-specific syntax or format detail, so the baseline 3 applies; the 'managed business account' phrasing only loosely reinforces the parameter's purpose.

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

Purpose5/5

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

States a specific verb ('Returns'), resource ('Telegram Star balance'), and scope ('managed business account'), which distinguishes it from the sibling getMyStarBalance (bot's own balance) and getStarTransactions (transaction history). The wording is unambiguous and an agent can tell what this tool does without opening the schema.

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

Usage Guidelines3/5

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

Gives clear context via the explicit precondition 'Requires the can_view_gifts_and_stars business bot right' and the 'managed business account' scope, which implies it is for business accounts rather than the bot itself. However, it never names the closest alternatives (getMyStarBalance, getStarTransactions) or states when not to use this tool, leaving routing decisions to inference.

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

getBusinessConnectionA

Get information about the connection of the bot with a business account. Returns a BusinessConnection object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_connection_idYesUnique identifier of the business connection.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral transparency burden. It discloses the success response ('Returns a BusinessConnection object') and implies a read-only operation via 'Get information', but does not mention failure modes, error responses, authentication requirements, or side effects. For a simple getter this is adequate but not richly transparent.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary purpose and immediately states the success return value. There is no redundant or filler content.

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

Completeness4/5

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

For a low-complexity tool with one fully documented parameter and no output schema, the description sufficiently defines what the tool does and what it returns. It lacks details on errors and prerequisites, but the operation is simple enough that the provided information is mostly complete for an agent to invoke it correctly.

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

Parameters3/5

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

The input schema already provides 100% coverage for the single parameter, business_connection_id, with a clear description. The tool description adds no additional parameter semantics, so the baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Get information') and the specific resource ('the connection of the bot with a business account'). It identifies the return value as a BusinessConnection object, making the tool's purpose unambiguous and distinct from the many sibling business-related tools.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: whenever an agent needs to retrieve information about a business connection. It provides clear context without explicitly naming alternatives or exclusions, which is acceptable since no direct sibling alternative for fetching business connection info exists among the listed tools.

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

getChatA

Get up to date information about the chat. Returns ChatFullInfo object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It discloses the success return type (ChatFullInfo) and implies read-only behavior via the verb 'Get', but does not disclose failure modes, permission requirements, or rate-limit behavior. This is adequate for a simple read tool but relies on inference rather than explicit disclosure.

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

Conciseness5/5

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

Two sentences totaling roughly 17 words with zero waste. The primary purpose is front-loaded in the first sentence and the return type in the second, and it does not repeat schema content.

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

Completeness4/5

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

For a one-parameter read tool with no output schema, the description plus schema is nearly sufficient: chat_id is documented and the return type is named in prose. Missing are failure-mode notes and steering away from confusing siblings, but an agent has everything needed to make a correct call.

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

Parameters3/5

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

Schema description coverage is 100%: chat_id is fully documented in the schema, including the integer/string union and the @channelusername format for supergroups and channels. The tool description adds nothing about the parameter, which matches the baseline 3 for high schema coverage.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('the chat'), and names the return type (ChatFullInfo object), which differentiates it from sibling sub-resource getters like getChatAdministrators, getChatMember, and getChatMemberCount. However, it does not explicitly name any sibling it is not, so differentiation is implicit rather than stated, which keeps it from a 5.

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

Usage Guidelines3/5

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

No explicit when-to-use guidance, exclusions, or alternative tool names are provided. The phrase 'up to date information' only implicitly suggests using this when the full current chat state is needed rather than a sub-resource. Given roughly 130 siblings including several confusable getChat* variants, explicit routing would add significant value.

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

getChatAdministratorsA

Get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description must carry behavioral context. It discloses that bot administrators are excluded and that the return value is an Array of ChatMember objects. It does not mention potential error cases, chat-type restrictions, or any authorization requirements, but for a simple read-only getter this is a reasonable minimal disclosure.

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

Conciseness5/5

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

The description is two concise sentences with no filler. It front-loads the core action and resource, then gives the return type. Every word contributes useful information.

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

Completeness4/5

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

This is a low-complexity tool with one required parameter, no nested objects, and no output schema. The description includes the return type and a key behavioral filter, which together cover the essential information needed to call it correctly. It could note permission or failure conditions, but those are not critical for this simple getter.

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

Parameters3/5

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

The schema description for chat_id is already complete and explains the integer or string formats including the @channelusername form. The tool description adds no new parameter-level detail, but with 100% schema coverage the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Get a list of administrators in a chat'. It adds a useful distinguishing detail by excluding bots and names the return type, Array of ChatMember objects. This is enough to tell the tool apart from sibling chat-related tools like getChat or getChatMemberCount.

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

Usage Guidelines3/5

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

The intended usage is implied by the description: use this when you need the chat administration list. However, it does not explicitly compare against alternatives such as getChatMember for a single member or getChatMemberCount for a count, so the agent must infer the choice from the name and description alone.

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

getChatGiftsB

Returns the gifts received and owned by a chat. Returns an OwnedGifts object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of gifts to be returned; 1-100. Defaults to 100.
offsetNoOffset of the first entry to return as received from the previous request.
chat_idYesUnique identifier for the target chat or username of the target channel (format: @channelusername).
exclude_savedNoPass True to exclude gifts that are saved to the chat's profile page.
sort_by_priceNoPass True to sort results by gift price instead of send date. Sorting is applied before pagination.
exclude_uniqueNoPass True to exclude unique gifts.
exclude_unsavedNoPass True to exclude gifts that are not saved to the chat's profile page.
exclude_unlimitedNoPass True to exclude gifts that can be purchased unlimited number of times.
exclude_from_blockchainNoPass True to exclude gifts transferred from the TON blockchain.
exclude_limited_upgradableNoPass True to exclude limited gifts that can be upgraded.
exclude_limited_non_upgradableNoPass True to exclude limited gifts that cannot be upgraded.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It does add the return type OwnedGifts and success behavior, but it provides no detail on error cases, pagination semantics, or side effects. The verb 'Returns' implies a read operation, yet this is not made explicit.

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

Conciseness4/5

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

The description is short and front-loaded, stating the primary purpose first and then the return type. There is mild redundancy with 'Returns' used twice, but the overall structure is efficient and easy to scan.

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

Completeness3/5

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

This is minimally viable: the description names the resource and output type, and the schema covers all parameters. However, it lacks sibling differentiation, deeper behavioral context, and explanation of the OwnedGifts shape, which matters because no output schema is provided.

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

Parameters3/5

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

Schema description coverage is 100%, and the input schema already documents all parameters with individual descriptions and constraints. The tool description adds no parameter-level meaning, so the coverage baseline of 3 applies.

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

Purpose4/5

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

The description identifies a specific verb and resource: it returns gifts received and owned by a chat. It is clear and unambiguous, but it does not explicitly distinguish this tool from closely related siblings like getUserGifts or getAvailableGifts.

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

Usage Guidelines3/5

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

The description implies this should be used to retrieve gifts belonging to a chat, but it never explicitly states when to choose it over alternatives such as getUserGifts or getBusinessAccountGifts. No when-not-to-use guidance or exclusion criteria are provided.

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

getChatMemberA

Get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
user_idYesUnique identifier of the target user

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the admin prerequisite and the success return type ('Returns a ChatMember object on success'), which are important beyond the schema. It does not cover failure behavior, but for a read operation this is adequate.

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

Conciseness5/5

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

Two sentences with no redundant words. The purpose is front-loaded, and the admin caveat and return type each add valuable information without clutter.

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

Completeness4/5

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

For a simple two-parameter read method, the description covers the purpose, the main constraint (admin requirement), and the return type. Explicit differentiation from getChatAdministrators would improve it, but the singular 'a member' makes the tool's scope reasonably clear.

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

Parameters3/5

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

Schema description coverage is 100%, with both chat_id and user_id fully documented in the input schema. The description adds no additional parameter semantics, aligning with the baseline score.

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

Purpose5/5

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

The description states 'Get information about a member of a chat,' identifying a specific verb and resource. This clearly distinguishes it from sibling tools like getChatAdministrators (plural administrators) and getChatMemberCount (count).

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

Usage Guidelines3/5

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

It provides a key constraint: 'only guaranteed to work for other users if the bot is an administrator in the chat,' which guides expected behavior. However, it does not explicitly compare with sibling tools or state when to prefer alternatives, so usage guidance is mostly implied.

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

getChatMemberCountA

Get the number of members in a chat. Returns Int on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It conveys a read-only 'Get' operation and states the successful return type, but does not discuss error cases, permission requirements, or any caveats such as approximate counts. This is adequate for a simple read operation but not richly transparent.

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

Conciseness5/5

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

The description is a single concise sentence with a second short sentence for return type. It contains no filler and front-loads the primary purpose. Every word earns its place.

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

Completeness4/5

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

For a tool with one required parameter and no output schema, the description is nearly complete: it names the resource, the operation, and the return type. Minor omissions such as failure behavior and edge cases prevent a 5, but the essential information for correct invocation is present.

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

Parameters3/5

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

There is only one parameter and the schema description covers 100% of it, clearly defining chat_id as either an integer ID or a @username. The description adds no further parameter-specific meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Get the number of members') and resource ('a chat'), plus the return type ('Returns Int on success'). This clearly distinguishes it from sibling tools like getChat, getChatMember, and getChatAdministrators, which serve different purposes.

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

Usage Guidelines3/5

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

The intended use is implied: use this when you need a chat's member count rather than member details or chat metadata. However, it does not explicitly name alternatives or provide when-to-use/when-not-to-use guidance, so the agent must infer the selection context.

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

getChatMenuButtonA

Get the current value of the bot's menu button in a private chat, or the default menu button. Returns a MenuButton object.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoUnique identifier for the target private chat. If not specified, returns the default bot menu button.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It discloses the operation is a read ('Get'), specifies the returned object type, and clarifies the default behavior when chat_id is omitted. This is sufficient for a simple, non-mutating getter, though it does not discuss potential errors or edge cases.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and includes the essential scope and return type. Every part earns its place, with no redundant or vague wording.

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

Completeness5/5

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

For a simple one-optional-parameter getter with no output schema, the description is complete: it states what the tool returns, what the parameter means, and the default behavior. An agent has enough information to invoke this tool correctly.

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

Parameters3/5

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

There is only one optional parameter and schema description coverage is 100%, so the schema already documents chat_id adequately. The description adds minimal semantic value beyond the schema, only reinforcing that the chat is private and that omitting chat_id returns the default menu button.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Get the current value of the bot's menu button' with explicit scope ('in a private chat, or the default menu button'). It also names the return type, making the tool's purpose unambiguous and distinct from the sibling setChatMenuButton.

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

Usage Guidelines4/5

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

The description provides clear context for when to call it—retrieving a menu button value rather than modifying it—and it describes the optional chat_id behavior. It does not explicitly name setChatMenuButton as the alternative for setting, but the get-versus-set distinction is obvious from the tool name and sibling list.

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

getCustomEmojiStickersA

Get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
custom_emoji_idsYesA list of custom emoji identifiers. At most 200 custom emoji identifiers can be specified.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It reveals the output is an 'Array of Sticker objects' and implies a read-only operation via 'Get information', but it does not mention error behavior, empty results, ordering, authentication needs, or rate limits. For a simple read tool this is adequate but not comprehensive.

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

Conciseness5/5

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

The description is two short, front-loaded sentences with no filler. The first sentence states the action and resource, the second provides the return type, and each sentence earns its place.

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

Completeness4/5

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

For a single-parameter read operation with a fully described schema, the description covers the essential facts: what is fetched and what is returned. The explicit return type is valuable given the absence of an output schema. It omits error handling and permission context, but the simplicity of the operation makes those gaps non-critical.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents the identifier list and the 200-item limit. The description only restates that values are identifiers, adding no format or constraint details beyond the schema, hence the baseline score.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('custom emoji stickers'), the method of lookup ('by their identifiers'), and the return type ('Array of Sticker objects'). This clearly distinguishes it from sibling tools like getStickerSet or getForumTopicIconStickers.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to choose this tool over alternatives, nor any exclusions. The phrase 'by their identifiers' implies the condition for use, but it does not compare against getStickerSet or other sticker-related tools, leaving the agent to infer usage context from the tool name alone.

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

getFileA

Get basic info about a file and prepare it for downloading. Returns a File object with file_path for download. Files up to 20MB can be downloaded.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesFile identifier to get information about.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does meaningful work: it discloses the return payload shape ('File object with file_path') and a concrete operational constraint (the 20MB download limit). It stops short of stating what happens with larger files or how the returned file_path is consumed, but for a simple read-style retrieval this is solid coverage.

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

Conciseness5/5

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

Three short sentences, each earning its place: the main action, the return contract, and the size limit. The key purpose is front-loaded in the first sentence, and there is zero filler or redundancy.

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

Completeness4/5

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

For a single-parameter tool with no output schema, the description is appropriately complete — it states what is returned (File object with file_path) and the constraints on that return (20MB cap). The only minor gap is that it doesn't mention the separate download endpoint or URL construction that follows, but that is client-level detail beyond this tool's call contract.

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

Parameters3/5

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

Schema description coverage is 100% — file_id is already documented as 'File identifier to get information about.' The tool description adds no parameter-specific semantics beyond the general notion of 'about a file,' so the baseline 3 applies and the schema does the heavy lifting.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a concrete resource ('a file') and adds the distinctive scope 'prepare it for downloading,' which goes beyond the tool name and clarifies its role. It clearly separates this from the many file-sending siblings (sendDocument, sendPhoto, etc.) by framing it as a retrieval/preparation step rather than a transmission step.

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

Usage Guidelines3/5

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

The usage context is implied rather than explicit: 'prepare it for downloading' signals that this is the step to obtain a download path, but no alternatives are named and no when-to-use vs. when-not-to-use guidance is given. The purpose statement carries the usage signal, but the description leaves the routing decision entirely to inference.

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

getForumTopicIconStickersA

Get custom emoji stickers that can be used as forum topic icons by any user. Returns an Array of Sticker objects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It clearly states the return format ('Array of Sticker objects') and implies a read-only get operation, but it does not mention authentication requirements, rate limits, or any failure/empty-response behavior. For a simple zero-parameter getter this is adequate, but not rich.

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

Conciseness5/5

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

The description is two short sentences with no filler. The primary action and purpose are front-loaded, and the return type is stated efficiently. Every sentence adds value.

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

Completeness4/5

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

For a tool with no parameters and no output schema, the description covers the essential information: what it returns and the intended use. It does not explain edge cases like empty results or whether newer custom emoji are always available, but these are minor gaps for such a simple tool.

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

Parameters4/5

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

There are zero parameters and the schema already provides full coverage, so the description is not required to explain parameter behavior. The baseline for zero-parameter tools is 4, and the description appropriately avoids inventing parameter detail where none exists.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('custom emoji stickers that can be used as forum topic icons') and states the return type. This distinguishes it from the closely related sibling getCustomEmojiStickers by scoping the stickers to forum topic icon usage.

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

Usage Guidelines3/5

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

The phrase 'can be used as forum topic icons by any user' implies when this tool is relevant, but the description never explicitly contrasts it with alternatives like getCustomEmojiStickers or getStickerSet. There is clear context, but no direct guidance on choosing this tool over a sibling.

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

getGameHighScoresB

Get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat.
user_idYesTarget user id
message_idNoRequired if inline_message_id is not specified. Identifier of the sent message.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.

TDQS

B3.4/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It does reveal that the tool is read-only and returns an Array of GameHighScore objects covering the user and neighbors, which is useful. However, it does not mention the mutual exclusivity requirement among chat_id, message_id, and inline_message_id, nor any ordering or limits on neighbors.

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

Conciseness4/5

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

The description is two sentences with no filler, front-loading the core behavior and then clarifying the return value. It is compact and readable. The only minor missed opportunity is encoding the identifier constraint, but the current length is well-suited to the tool's simplicity.

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

Completeness3/5

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

With no output schema or annotations, the description adequately names the return type and basic behavior, which covers the most essential needs. However, it omits the required selection rule among chat_id, message_id, and inline_message_id, and leaves the notion of 'neighbors' vague, so an agent may need to consult the schema to invoke it correctly in all cases.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds slight meaning by identifying the 'specified user' as the score target and framing the data in a game context, but it provides no additional insight into the chat_id/message_id/inline_message_id relationship that isn't already in the schema.

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

Purpose5/5

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

The description states a specific operation: retrieving high score data for a specified user and their neighbors in a game. It clearly indicates a read operation, distinguishing it from mutating siblings like setGameScore and sendGame. It even names the return type, leaving no ambiguity about what the tool does.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, and no prerequisites or exclusions are mentioned. The context of retrieving high scores is implied, but the description does not explicitly say when an agent should choose this tool over related game tools or what conditions must hold before calling it.

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

getMeA

Get basic information about the bot. Returns a User object with id, is_bot, first_name, username, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It communicates a read-only operation ('Get') and describes the return payload ('User object with id, is_bot, first_name, username, etc.'). This gives sufficient behavioral transparency for a zero-parameter, non-destructive tool.

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

Conciseness5/5

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

A single, information-dense sentence that front-loads the action and resource, then provides the return value. Every part of the sentence earns its place with no redundancy.

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

Completeness5/5

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

For a simple, zero-parameter, read-only tool with no output schema, the description is complete. It tells the agent what action is performed, what is returned, and even lists representative fields. There are no meaningful gaps.

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

Parameters4/5

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

There are zero parameters, so no parameter documentation is needed. The description reinforces that the tool takes no input and simply returns bot information, which is consistent with the empty schema.

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

Purpose5/5

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

The description clearly states the verb ('Get'), the resource ('basic information about the bot'), and the return type ('User object'). It is immediately distinct from the many sibling get* tools by identifying the bot itself as the subject.

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

Usage Guidelines4/5

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

The description makes it obvious when to use this tool: whenever an agent needs basic information about the bot. It does not explicitly exclude alternatives, but no sibling tool has the same purpose, so the usage context is clear enough without explicit exclusions.

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

getMyCommandsA

Get the current list of bot commands for the given scope and language. Returns an Array of BotCommand objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoScope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.
language_codeNoTwo-letter ISO 639-1 language code or empty string.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It does state that the tool returns an Array of BotCommand objects and that the result depends on the given scope and language, which is useful. However, it does not clarify behavior such as what happens when no commands are set, whether an empty array is returned, or any fallback semantics for language codes.

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

Conciseness5/5

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

The description is two short sentences with no filler. The core action is front-loaded, and the return type is stated in the second sentence. Every word earns its place.

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

Completeness4/5

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

Given that there is no output schema, the description's explicit statement that it returns an Array of BotCommand objects is valuable and largely sufficient. The input schema fully documents both optional parameters, including the nested scope object and its defaults. The main gap is the missing usage guidance relative to command-related siblings, but the tool is simple enough that an agent can invoke it correctly with the information provided.

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

Parameters3/5

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

Schema description coverage is 100%, so both scope and language_code are already documented in the schema. The description's mention of 'scope and language' maps cleanly to the parameters but adds no additional meaning beyond the schema. Baseline 3 is appropriate because the schema does the heavy lifting.

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

Purpose5/5

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

The description starts with the specific verb 'Get' and the resource 'current list of bot commands', immediately establishing this as the read counterpart to sibling tools like setMyCommands and deleteMyCommands. It also mentions the scope and language dimensions that make it distinct from simpler 'get me' or 'get updates' operations. The purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as setMyCommands or deleteMyCommands, nor any mention of prerequisites or when not to use it. The only usage signal is implicit in the verb 'get', which is not enough to help an agent choose confidently among the command-related siblings.

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

getMyDefaultAdministratorRightsA

Get the current default administrator rights of the bot. Returns a ChatAdministratorRights object.

ParametersJSON Schema
NameRequiredDescriptionDefault
for_channelsNoPass True to get default administrator rights for channels. Otherwise, returns rights for groups and supergroups.

TDQS

A3.8/5.0
Behavior3/5

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

The description conveys that this is a read operation ('Get') and describes the return value, but with no annotations present it does not explicitly state that no changes are made. It also omits error behavior or any permission context, leaving some behavioral transparency to inference.

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

Conciseness5/5

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

The description is a single, focused sentence that states the action, target, and return type with no unnecessary content. It is easy to parse and front-loads the essential information.

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

Completeness4/5

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

For a simple tool with one optional parameter and no output schema, the description is nearly sufficient: it identifies the purpose and return type, and the schema fills in parameter semantics. It could be slightly more complete with an explicit note about no side effects, but nothing critical is missing for correct invocation.

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

Parameters3/5

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

The input schema fully documents the only parameter, for_channels, including its effect on which rights are returned. The description adds no parameter-level detail, but because schema coverage is 100%, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific action ('Get') and resource ('current default administrator rights of the bot'), and names the return type. It differentiates from the sibling setter by emphasizing 'current,' so an agent can distinguish it from setMyDefaultAdministratorRights without confusion.

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

Usage Guidelines3/5

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

The intended use is implied: call this when you need the bot's current default administrator rights. However, the description does not explicitly state when to use it versus alternatives, nor does it mention the sibling setter or any exclusions.

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

getMyDescriptionB

Get the current bot description for the given user language. Returns a BotDescription object.

ParametersJSON Schema
NameRequiredDescriptionDefault
language_codeNoTwo-letter ISO 639-1 language code or empty string.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It indicates a read operation and the return type, but it does not explain behavior such as what happens when language_code is empty or invalid, or whether a default description is returned. The description adds only minimal behavioral context beyond the method name.

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

Conciseness5/5

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

Two short sentences state the purpose and the return type with no wasted words. The key action is front-loaded and the description is appropriately sized for such a simple getter.

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

Completeness3/5

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

The tool is simple with one optional parameter, and the schema covers that parameter. However, there is no output schema and the description does not clarify the behavior for an empty language_code string, which is explicitly allowed by the schema. This leaves a small but meaningful gap in completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the parameter is already documented. The description adds that the language selects the bot description, which is mildly helpful, but it does not add detail beyond what the schema already implies.

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

Purpose4/5

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

The description clearly states the tool gets the current bot description for a given user language and returns a BotDescription object. It does not explicitly contrast itself with sibling tools like getMyShortDescription or setMyDescription, so it is clear but lacks direct sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as getMyShortDescription or setMyDescription. The language parameter implies localized use, but there are no explicit conditions, exclusions, or alternative recommendations.

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

getMyNameA

Get the current bot name for the given user language. Returns a BotName object.

ParametersJSON Schema
NameRequiredDescriptionDefault
language_codeNoTwo-letter ISO 639-1 language code or empty string.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It communicates a read-style 'get' operation and a return type, but does not mention edge behavior such as what an omitted or empty language_code means or that the name may be unset/empty.

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

Conciseness5/5

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

Two short sentences with no filler. The action is front-loaded and the return type is stated in the second sentence.

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

Completeness3/5

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

The tool is simple and the schema covers the parameter, but with no output schema the description only names 'BotName object' without indicating its fields or the fallback behavior when language_code is absent/empty.

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

Parameters3/5

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

The input schema already documents language_code at 100% coverage, so the baseline applies. The phrase 'given user language' only restates the schema's description, adding no material semantic detail.

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

Purpose5/5

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

The description states a specific verb ('Get'), resource ('current bot name'), and the language scoping that distinguishes it from getMe and the description-related sibling tools. This is immediately actionable and not a tautology.

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

Usage Guidelines4/5

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

It clearly frames the context: use this when you need the bot's name localized to a user's language. It does not explicitly name alternatives or exclusions, but the intended use is unambiguous for a simple getter.

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

getMyShortDescriptionA

Get the current bot short description for the given user language. Returns a BotShortDescription object.

ParametersJSON Schema
NameRequiredDescriptionDefault
language_codeNoTwo-letter ISO 639-1 language code or empty string.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It conveys a read operation and the return type (BotShortDescription object), but it does not mention side effects, permission requirements, or the meaning of an empty language_code. This is adequate for a simple getter but not rich.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. Every phrase earns its place: what is retrieved, under what condition, and what is returned.

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

Completeness4/5

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

For a simple one-parameter, no-output-schema getter, the description covers the essentials: the action, the input condition, and the return type. It could add empty-language default behavior, but the schema already documents the valid empty string, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline applies. The phrase 'for the given user language' mirrors language_code and adds slight context, but it does not explain behavior when the parameter is empty, which the schema already allows.

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

Purpose5/5

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

The description states a specific verb ('Get'), a precise resource ('current bot short description'), and a condition ('for the given user language'). The qualifier 'short' distinguishes it from the sibling getMyDescription, so an agent can select it without ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided about when to choose this tool over alternatives such as getMyDescription or setMyShortDescription. The description only restates the operation itself; there is no explicit or implied exclusion/alternative.

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

getMyStarBalanceA

Returns the bot's current balance in Telegram Stars. On success, returns a StarAmount object.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses the success return type (StarAmount object) and implies a read-only operation via 'Returns,' but it does not describe error conditions, side effects, or authorization requirements. This is adequate for a simple getter but leaves notable gaps.

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

Conciseness5/5

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

The description is two sentences with no filler or redundancy. It front-loads the core action and follows with the return type, making it easy to scan and understand quickly.

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

Completeness4/5

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

For a zero-parameter getter with no output schema, the description is nearly complete: it specifies the resource being queried and the success return shape. A minor gap is the lack of explicit contrast with getBusinessAccountStarBalance, but the wording 'bot's current balance' sufficiently disambiguates from that sibling.

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

Parameters4/5

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

The tool has zero parameters, and the input schema is empty, so schema coverage is vacuously 100%. The baseline for zero-parameter tools is 4, and the description appropriately adds no parameter details because there are none to clarify.

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

Purpose5/5

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

The description uses a specific verb ('Returns') and identifies the exact resource ('bot's current balance in Telegram Stars'), making the tool's purpose unambiguous. It also differentiates from siblings such as getBusinessAccountStarBalance (business account balance) and getStarTransactions (transaction history).

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

Usage Guidelines3/5

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

The intended usage is implied by the phrase 'bot's current balance,' so an agent can infer this is the correct tool for checking the bot's Stars balance. However, it does not explicitly state when to use this over getBusinessAccountStarBalance or mention any exclusions or alternatives.

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

getStarTransactionsB

Returns the bot's Telegram Star transactions in chronological order. On success, returns a StarTransactions object.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoThe maximum number of transactions to be retrieved. Values between 1-100 are accepted. Defaults to 100.
offsetNoNumber of transactions to skip in the response

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does add useful behavioral detail: the call is a read-style operation ('Returns') and results are ordered chronologically, with a named success result type. However, it does not mention error behavior, auth requirements, pagination effects, or whether the result can be empty.

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

Conciseness5/5

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

The description is two short sentences with the main action front-loaded. The second sentence slightly repeats the word 'returns' but earns its place by naming the success result type, which is valuable given there is no output schema.

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

Completeness4/5

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

For a simple read operation with no required parameters and a fully documented parameter schema, the description is nearly complete: it states the resource, ordering, and success return type. It could be improved by clarifying what a StarTransactions object contains, since no output schema exists, but this is not critical for selecting and invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100% and both optional parameters (limit, offset) are individually documented in the input schema, so the baseline is 3. The description adds no parameter-specific semantics, but none are needed because the schema already explains the accepted range and default for limit and the behavior of offset.

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

Purpose4/5

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

The description clearly states the action ('Returns'), the resource ('the bot's Telegram Star transactions'), and an ordering property ('chronological order'). It does not explicitly distinguish it from sibling star-related tools like getMyStarBalance or getBusinessAccountStarBalance, so it falls just short of full differentiation.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus the many sibling tools that also involve Telegram Stars, such as getMyStarBalance, getBusinessAccountStarBalance, or refundStarPayment. The description states only what the tool does, not when it should be preferred or when an alternative would be appropriate.

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

getStickerSetB

Get a sticker set by name. Returns a StickerSet object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the sticker set.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It clearly indicates this is a retrieval operation and says 'Returns a StickerSet object on success', which is useful. However, it does not describe failure behavior, error conditions, or any other behavioral nuances.

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

Conciseness5/5

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

The description is a single concise sentence that immediately states the action, the target resource, and the success return value. Every word earns its place and there is no redundant filler.

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

Completeness4/5

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

For a simple one-parameter getter, the description is mostly complete: it states the required input, the operation, and the success return type despite no output schema. It falls short only in omitting any mention of failure or error behavior.

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

Parameters3/5

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

Schema description coverage is 100% and the sole 'name' parameter is already described as 'Name of the sticker set.' The description's 'by name' adds no meaningful semantic value beyond the schema, so the baseline score of 3 applies.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Get a sticker set by name' and mentions the return type 'StickerSet object', making the tool's purpose immediately clear. However, it does not explicitly differentiate this from sibling sticker-related tools such as getCustomEmojiStickers or getForumTopicIconStickers.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or related sibling methods, leaving the agent to infer usage solely from the tool name and generic wording.

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

getUpdatesB

Receive incoming updates using long polling. Returns an Array of Update objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimits the number of updates to be retrieved (1-100). Defaults to 100.
offsetNoIdentifier of the first update to be returned. Must be greater than the highest update_id received.
timeoutNoTimeout in seconds for long polling (0-50). Defaults to 0 (short polling).
allowed_updatesNoList of update types to receive. E.g., ["message", "edited_message", "callback_query"]

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It reveals the polling mechanism and the array return, but omits the endpoint's critical behavioral traits: that offset/update_id acts as an acknowledgment and confirmed updates are not redelivered, and that getUpdates conflicts with an active webhook. These are the main traps an agent could fall into.

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

Conciseness5/5

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

Two sentences with zero filler: the core purpose is front-loaded in the first sentence and the return-type note earns its place in the second. Nothing extraneous to cut.

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

Completeness3/5

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

Adequate for basic invocation: all parameters are documented in the schema and the return type is stated despite the lack of an output schema. However, for a moderate-complexity endpoint with subtle semantics — update acknowledgment, webhook exclusivity, long-polling timeout behavior — the missing constraints leave the description incomplete for fully correct usage.

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

Parameters3/5

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

Schema description coverage is 100% — all four parameters have descriptive text in the schema, so the baseline is 3 even with no param detail in the description. The 'long polling' mention adds mild context for the timeout parameter's behavior, but the description adds no syntax or format information beyond the schema.

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

Purpose4/5

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

The description states a specific verb ('Receive'), a resource ('incoming updates'), and the delivery mechanism ('long polling'), and it names the return type ('Array of Update objects'). It implicitly differentiates from webhook-based siblings like setWebhook and getWebhookInfo through the polling mention, but it never names the alternative explicitly.

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

Usage Guidelines3/5

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

The phrase 'using long polling' implies a polling-mode context and hints that webhook delivery is an alternative, but it doesn't state when to prefer this tool over setWebhook or warn that the two mechanisms are mutually exclusive. Usage context is implied, not explicit.

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

getUserChatBoostsA

Get the list of boosts added to a chat by a user. Requires administrator rights in the chat. Returns a UserChatBoosts object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the chat or username of the channel (in the format @channelusername).
user_idYesUnique identifier of the target user.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It discloses the admin-rights requirement and the success return type ('Returns a UserChatBoosts object on success'). However, it does not mention failure behavior (e.g., insufficient rights or a user with no boosts) or any limits; acceptable but not rich for a read-only getter.

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

Conciseness5/5

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

Two sentences with no filler. The first names the action, the second adds the prerequisite and return type. Every element earns its place and the key information is front-loaded.

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

Completeness4/5

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

For a 2-parameter read-only tool with no output schema, the description is nearly complete: it names the permission prerequisite and the success return object, and the schema covers both parameters fully. The only gap is edge-case/error behavior, which is minor for this tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100%: chat_id and user_id are both fully documented with formats and semantics. The description adds no parameter-level detail, but none is needed; baseline 3 applies because the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb and resource: 'Get the list of boosts added to a chat by a user.' This precisely scopes the operation and distinguishes it from all siblings; no other tool in the sibling list targets chat boosts (e.g., getChatGifts is about gifts, not boosts).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage prerequisite: 'Requires administrator rights in the chat,' which tells the agent when the call is permissible. It does not name alternatives or exclusions, but the sibling set contains no competing boost-query tool, so explicit routing guidance is unnecessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getUserGiftsC

Returns the gifts received and owned by a given user. Returns an OwnedGifts object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of gifts to be returned; 1-100. Defaults to 100.
offsetNoOffset of the first entry to return as received from the previous request.
user_idYesUnique identifier of the target user.
sort_by_priceNoPass True to sort results by gift price instead of send date. Sorting is applied before pagination.
exclude_uniqueNoPass True to exclude unique gifts.
exclude_unlimitedNoPass True to exclude gifts that can be purchased unlimited number of times.
exclude_from_blockchainNoPass True to exclude gifts transferred from the TON blockchain.
exclude_limited_upgradableNoPass True to exclude limited gifts that can be upgraded.
exclude_limited_non_upgradableNoPass True to exclude limited gifts that cannot be upgraded.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool returns an OwnedGifts object on success; there is no mention of pagination behavior, filtering effects, ownership semantics, or any side effects. For a 9-parameter read operation, this is minimal behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two brief sentences with no filler. It front-loads the core purpose and adds the return type, which is useful since no output schema is present. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 9 parameters, no annotations, and no output schema, the description provides only a surface-level definition. It does not explain how the return object is structured, how pagination works, how the filter flags interact, or how this relates to sibling gift tools. For an agent to use this tool correctly and confidently, substantially more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents every parameter, including limit, offset, user_id, and the various exclusion flags. The description does not add meaningful parameter semantics beyond saying 'given user', but because the schema handles parameter documentation well, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: it returns the gifts received and owned by a given user, and mentions the result type OwnedGifts. However, it does not explicitly distinguish this from closely related sibling tools like getAvailableGifts, getChatGifts, or getBusinessAccountGifts, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus its siblings, or what kind of user/gift context it is intended for. The description implies a user-specific gift lookup, but there is no explicit when-to-use or when-not-to-use guidance, and no mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getUserProfilePhotosB

Get a list of profile pictures for a user. Returns a UserProfilePhotos object.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimits the number of photos to be retrieved. Values between 1-100. Defaults to 100.
offsetNoSequential number of the first photo to be returned. By default, all photos are returned.
user_idYesUnique identifier of the target user.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden, but it only says the operation returns a UserProfilePhotos object. It does not mention read-only behavior, ordering of results, pagination behavior, default limits, or any authorization considerations, leaving several behavioral aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that front-load the action and then state the return type. There is no filler or redundant content, and every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple retrieval tool with three well-documented parameters and no output schema, so the description is minimally sufficient for correct invocation. However, the absence of annotations and the lack of usage or ordering guidance leave some contextual gaps, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all three parameters clearly. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), resource ('list of profile pictures'), and target ('for a user'), and also names the return type (UserProfilePhotos object). This makes the tool's purpose immediately clear and distinct from the many sibling tools, none of which retrieve user profile photos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, no exclusions, and no prerequisites. It simply restates the operation rather than providing context such as 'use this to retrieve a user's profile photos' or clarifying when other photo-related tools would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getWebhookInfoA

Get current webhook status. Returns a WebhookInfo object with URL, pending updates count, and errors.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It states that the tool returns a WebhookInfo object with URL, pending updates count, and errors, and "Get" implies a read-only operation with no side effects. It does not detail failure modes or permission requirements, but for a zero-parameter getter this is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action before giving the return summary. Every word contributes useful information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description explains the most important return values: URL, pending updates count, and errors. It does not enumerate every possible WebhookInfo field, but for a simple zero-parameter getter 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no properties, so parameter documentation is unnecessary. The description correctly implies the tool takes no arguments, and with 100% schema coverage and zero parameters, the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb and resource: "Get current webhook status." It also identifies the return object and key fields, making it easy to distinguish from mutating siblings like setWebhook and deleteWebhook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies this is for inspecting the current webhook configuration, which is distinct from setWebhook and deleteWebhook. However, it does not explicitly state when to use this instead of getUpdates or mention any exclusions, leaving some routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

giftPremiumSubscriptionC

Gifts a Telegram Premium subscription to the given user. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText that will be shown along with the service message about the subscription; 0-128 characters.
user_idYesUnique identifier of the target user that will receive the gift.
star_countYesNumber of Telegram Stars to pay for the subscription; must be 1000 for 3 months, 1500 for 6 months, or 2500 for 12 months.
month_countYesNumber of months the Telegram Premium subscription will be active; must be 3, 6, or 12.
text_entitiesNoList of special entities that appear in the gift text. Can be specified instead of text_parse_mode.
text_parse_modeNoMode for parsing entities in the text.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full behavioral burden. It discloses the return value (True on success) but omits the most consequential trait: this is a paid operation that spends Telegram Stars. It also doesn't mention side effects such as the service message delivered to the recipient or failure conditions like insufficient balance or an ineligible recipient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences totaling roughly 18 words; the action is stated first and the return behavior second. There is zero filler and every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a financial mutation with no annotations and no output schema, the description is too thin. The return value is covered and the schema covers parameters, but an agent is left without the cost implication, any differentiation from sendGift, or operating conditions needed to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters, including cross-field constraints (star_count of 1000/1500/2500 mapping to 3/6/12 months) and the text_entities vs. text_parse_mode alternative. The description itself adds no parameter-level detail, so it stays at the baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Gifts') against a specific resource ('Telegram Premium subscription') with a clear target ('the given user'), and it discloses the return value. The resource specificity implicitly separates it from regular gift tools like sendGift, but no sibling is explicitly named, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The sibling list contains several gift-related tools (sendGift, upgradeGift, transferGift, convertGiftToStars) with no selection criteria, exclusions, or prerequisites given. An agent must guess which gift operation fits its task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hideGeneralForumTopicA

Hide the 'General' topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. The topic will be automatically closed if it was open. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral burden. It discloses permission requirements, the automatic closing side effect if the topic is open, and the return value on success. This is strong behavioral disclosure for a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each earning its place: the action, the prerequisite, and the side effect/return value. The primary verb is front-loaded and there is no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity—one required parameter, no output schema, no nested objects—the description is complete. It covers scope, required permissions, behavioral side effects, and the success return value, so an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, chat_id, is already fully described in the schema with its type and format. The description adds no parameter-specific meaning, so the baseline score of 3 applies since the schema covers 100% of the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Hide') and clearly identifies the resource ('General' topic in a forum supergroup chat). It distinguishes this tool from siblings like closeGeneralForumTopic and unhideGeneralForumTopic by naming the exact hide action in its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear invocation context: it applies to a forum supergroup and requires administrator rights with can_manage_topics. It does not explicitly name alternatives such as unhideGeneralForumTopic, but the conditions for use are clear enough that an agent can decide when to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leaveChatA

Leave a group, supergroup or channel. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does state the success return value ('Returns True on success'), but it does not disclose side effects, failure conditions, permissions, or whether leaving is reversible or has consequences for the bot's membership.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with no filler words. The action is front-loaded and the return-value note is a useful addition that earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter operation with no output schema, the description is largely complete: it states the action and the success return. It could be improved by noting side effects or usage prerequisites, but the schema covers parameter details and the operation is simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents chat_id, including its allowed types and the @channelusername format, so schema coverage is 100%. The description adds no extra parameter-specific meaning, which is acceptable because the schema already carries the necessary detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, 'Leave', and a specific resource, 'group, supergroup or channel', so the agent knows exactly what operation is performed. It also notes the success return value, which distinguishes it from unrelated chat-management siblings like deleteChatPhoto or sendMessage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the verb 'Leave' but no explicit when-to-use or when-not-to-use guidance is provided. No alternative tools are named, and there is no mention of prerequisites such as the bot needing to be a member of the chat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logOutA

Log out from the cloud Bot API server. After logging out, you must wait 10 minutes before logging in again.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It calls out the important side-effect—a required 10-minute wait before re-login—which informs the agent that this action has temporal consequences. It could also mention what happens to existing sessions, but the key behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the action is front-loaded and the critical after-effect immediately follows. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter action without an output schema, the description covers the action, target, and postcondition. A phrase about expected behavior after a successful call would make it fully complete, but the core context is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the input schema leaves nothing to explain and the baseline 4 applies. The description adds no parameter detail, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Log out from the cloud Bot API server'), making the action unambiguous. It does not name or contrast with sibling methods like close, so it misses the full sibling differentiation used in top-tier definitions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'when to use' guidance or discussion of alternatives, but the description does provide the essential operational rule: wait 10 minutes before logging in again. This gives clear context but not the exclusion/alternative guidance expected for a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pinChatMessageA

Add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator with can_pin_messages rights in a supergroup or can_edit_messages rights in a channel. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idYesIdentifier of a message to pin
disable_notificationNoPass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be pinned

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full disclosure burden. It discloses the mutating nature of the operation, chat-type-dependent authorization requirements, and the return contract (True on success). It stops short of describing failure behavior or error conditions, which is the main gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and followed by the essential permission clause. No filler; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the action, authorization prerequisites, and return value, which is the essential set for a mutating tool with no output schema. Minor gaps: no statement about failure modes or message-existence requirements, but the schema fully documents the parameters, making the tool safely callable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the input schema. The description adds no parameter-specific detail beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation — adding a message to the pinned list of a chat — with a clear verb and resource. It distinguishes itself from sibling tools like unpinChatMessage and unpinAllChatMessages without needing to read their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete prerequisite context: non-private chats require administrator rights (can_pin_messages in supergroups, can_edit_messages in channels), and private chats are exempt. It does not explicitly name alternatives or state when-not-to-use, but the permission conditions give an agent the information needed to decide whether the call will succeed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

postStoryA

Posts a story on behalf of a managed business account. Requires the can_manage_stories business bot right. Returns a Story object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
areasNoA list of StoryArea objects to be shown on the story.
captionNoCaption for the story; 0-2048 characters
contentYesContent of the story. Must be an InputStoryContent object (InputStoryContentPhoto or InputStoryContentVideo).
parse_modeNoMode for parsing entities in the caption. See formatting options for more details.
active_periodYesPeriod in seconds during which the story will be visible; must be one of 21600 (6 hours), 43200 (12 hours), 86400 (24 hours), or 172800 (48 hours).
protect_contentNoPass True if the content of the story must be protected from forwarding and screenshotting.
caption_entitiesNoA list of special entities that appear in the caption, which can be specified instead of parse_mode.
post_to_chat_pageNoPass True to keep the story accessible after it expires.
business_connection_idYesUnique identifier of the business connection

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It discloses the required business bot right, the action being performed, and the success return type ('Returns a Story object'). This meaningfully exceeds just restating the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The main verb and resource are front-loaded, followed by the permission requirement and the return type. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter write operation with nested objects and no output schema, the description gives the essential operational context: the action, the target account type, the permission needed, and the return type. It does not enumerate parameters, but the schema fully covers those details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema documents all parameters in detail. The description adds no parameter-level semantics beyond what is already in the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Posts a story') and identifies the resource ('managed business account'). This distinguishes it from siblings like editStory, deleteStory, and repostStory without requiring the agent to inspect their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: this is for posting a new story on a managed business account and requires the can_manage_stories right. It does not explicitly name alternative tools such as editStory or repostStory, but the usage context is unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

promoteChatMemberA

Promote or demote a user in a supergroup or channel. The bot must be an administrator with the appropriate rights. Pass False for all boolean parameters to demote a user. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
user_idYesUnique identifier of the target user
is_anonymousNoPass True if the administrator's presence in the chat is hidden
can_change_infoNoPass True if the administrator can change chat title, photo and other settings
can_manage_chatNoPass True if the administrator can access the chat event log, get boost list, see hidden supergroup and channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege.
can_edit_storiesNoPass True if the administrator can edit stories posted by other users, post stories to the chat page, pin chat stories, and access the chat's story archive
can_invite_usersNoPass True if the administrator can invite new users to the chat
can_pin_messagesNoPass True if the administrator can pin messages (supergroups only)
can_post_storiesNoPass True if the administrator can post stories to the chat
can_edit_messagesNoPass True if the administrator can edit messages of other users and can pin messages (channels only)
can_manage_topicsNoPass True if the user is allowed to create, rename, close, and reopen forum topics (supergroups only)
can_post_messagesNoPass True if the administrator can post messages in the channel, or access channel statistics (channels only)
can_delete_storiesNoPass True if the administrator can delete stories posted by other users
can_delete_messagesNoPass True if the administrator can delete messages of other users
can_promote_membersNoPass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly
can_restrict_membersNoPass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics
can_manage_video_chatsNoPass True if the administrator can manage video chats

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It discloses that the operation is mutative, requires administrative rights, and returns True on success. It also explains the demotion behavior ('Pass False for all boolean parameters to demote a user'), which is essential operational context not available elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four short sentences with no filler. It front-loads the purpose, then states the prerequisite, the key demotion behavior, and the return value — every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count and the absence of an output schema, the description adequately covers the core calling context: purpose, scope, prerequisite, demotion behavior, and return value. It does not exhaustively cover error cases or omitted-parameter defaults, but the schema already handles parameter-level detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents every parameter with 100% coverage, so the baseline is 3. The description adds meaningful collective semantics by explaining that setting all boolean parameters to False demotes the user, which is not derivable from the individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Promote or demote a user') and the target resource ('in a supergroup or channel'). It distinguishes this from sibling tools like restrictChatMember or banChatMember by focusing specifically on admin promotion/demotion, and 'demote' adds meaning beyond the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for promoting or demoting users in supergroups or channels, and it states the prerequisite that the bot must be an administrator with appropriate rights. It does not explicitly name alternative tools or when-not-to-use cases, but the scope and purpose are clear enough to guide selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

readBusinessMessageA

Marks incoming message as read on behalf of a business account. Requires the can_read_messages business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier of the chat with the message
message_idYesUnique identifier of the message to mark as read
business_connection_idYesUnique identifier of the business connection

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It states the side effect (marks as read), a prerequisite (can_read_messages), and the success return value (True). It does not detail failure modes or idempotency, but the disclosed behavior is concrete and useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action, then the permission prerequisite and return behavior. No filler or redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple side-effect tool with fully documented parameters and no output schema, the description covers purpose, required right, and success return. It could add failure semantics or a note on when to call it relative to processing updates, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, so the schema already documents all three parameters adequately. The description adds no parameter-specific details beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific action verb ('Marks ... as read') on a precise resource ('incoming message ... on behalf of a business account'), clearly distinguishing it from siblings like deleteBusinessMessages or getBusinessConnection. It adds the required bot right, so the tool's role is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates clear context: this is for incoming business-account messages and requires the can_read_messages bot right. It does not explicitly enumerate when-not-to-use or name alternatives, but the use case is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refundStarPaymentA

Refunds a successful payment in Telegram Stars. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesIdentifier of the user whose payment will be refunded
telegram_payment_charge_idYesTelegram payment identifier

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It states the precondition (only successful payments can be refunded) and the success result (returns True), which is useful. However, it does not disclose that a refund is irreversible, whether there are time limits or repeat-refund restrictions, or what happens on failure. For a financial mutation, this is thin but still minimally viable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that states the action and the return value with zero filler. It is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple two-parameter tool with no nested objects and no output schema, and the description does indicate the return value. However, with no annotations and no guidance about related tools or financial side effects, the definition is adequate but not fully complete for an agent operating autonomously.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains both parameters. The description itself adds no extra parameter guidance beyond the tool-level context. The parameter descriptions are clear enough for the agent to understand what values are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Refunds') and a precise resource ('a successful payment in Telegram Stars'). It clearly differentiates this from payment-creation tools like sendInvoice and read-only balance tools like getStarTransactions and getMyStarBalance, even with no title present.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: refunding a Telegram Stars payment that was successful. However, it does not explicitly mention alternatives, such as using getStarTransactions to locate the charge ID, nor does it state when not to use this tool. The context is clear but no routing guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

removeBusinessAccountProfilePhotoA

Removes the current profile photo of a managed business account. Requires the can_edit_profile_photo business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
is_publicNoPass True to remove the public photo. The account will revert to using the private photo if available.
business_connection_idYesUnique identifier of the business connection

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the behavioral disclosure burden. It does disclose the required bot right and the success return value. However, it does not describe failure behavior, reversibility, or the broader effect of removing a public vs. private photo, which the parameter schema partially covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core action, target, required permission, and return value are all stated efficiently and in order of relevance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool, the description plus fully documented schema covers the essential invocation details: what to act on, the required right, and the success return. Minor gaps remain around edge cases and failure modes, but they are not critical for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, and both parameters have meaningful descriptions in the schema. The tool description adds no additional parameter-level detail beyond what is already structured, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('removes') with a specific resource ('current profile photo of a managed business account'). This clearly distinguishes it from sibling setBusinessAccountProfilePhoto and other photo-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: whenever the agent needs to remove a business account profile photo. It also states the required permission, which is useful. However, it does not explicitly mention alternatives or exclusions, such as 'for setting a photo, use setBusinessAccountProfilePhoto'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

removeChatVerificationB

Removes verification from a chat that is currently verified on behalf of the organization represented by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (format: @channelusername).

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the action and the success return value ('Returns True on success'), but does not mention potential errors, authorization requirements, reversibility, or side effects beyond removing verification. For a mutation tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence that front-loads the main action, includes the key precondition ('currently verified'), and covers the return value. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with a fully documented schema, the description provides the essential context: what is removed, from whom, on whose behalf, and the success indicator. It lacks explicit failure/error behavior and alternative routing, but is largely complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents chat_id with type and format. The description adds no additional meaning about this parameter, which meets the baseline expectation but does not go further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Removes'), the resource ('verification from a chat'), and the organizational scope ('on behalf of the organization represented by the bot'). It implicitly distinguishes this from sibling tools like removeUserVerification by focusing on 'chat', but it does not explicitly name any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus related sibling tools such as verifyChat or removeUserVerification. The phrase 'currently verified' implies a precondition, but there is no explicit when/when-not advice or mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

removeUserVerificationA

Removes verification from a user who is currently verified on behalf of the organization represented by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUnique identifier of the target user.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It states the precondition ('currently verified'), the action scope, and the success return value ('Returns True on success'), but does not describe failure behavior, permissions, or side effects beyond the removal itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and includes the key scope condition and return value. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description covers the action, scope, precondition, and success return value, which is largely sufficient. The main gap is the absence of error or failure behavior, which is not covered by annotations either.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes user_id as 'Unique identifier of the target user' with 100% coverage, so the parameter is already well documented. The description adds no additional parameter-level detail, but it does not need to given the schema coverage and single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('removes verification from a user') and clearly distinguishes this from sibling tools like removeChatVerification and verifyUser. The scope ('on behalf of the organization represented by the bot') adds useful precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: for a user who is currently verified and in the organization context of the bot. However, it does not explicitly mention alternatives like verifyUser or removeChatVerification, nor does it state when this tool should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reopenForumTopicA

Reopen a closed topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)
message_thread_idYesUnique identifier for the target message thread of the forum topic

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It explicitly covers the required administrator permission and the success return value, which are the key non-obvious behavioral traits. It does not discuss failure modes or side effects beyond reopening, but the core behavior and prerequisites are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, information-dense sentences. The primary action is front-loaded, and the permission requirement and return value are stated without repetition or filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers the essential invocation requirements: what action is performed, required permissions, and the success return value. It omits edge behavior like error handling for already-open topics, but the core information needed to call the tool correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both chat_id and message_thread_id. The description adds no parameter-specific meaning beyond the schema, matching the baseline expectation when the schema handles parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Reopen') on a specific resource ('a closed topic in a forum supergroup chat'), which clearly differentiates it from siblings like closeForumTopic and reopenGeneralForumTopic. The description specifies the object type and condition, so an agent can immediately understand what the tool accomplishes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: use it when a forum topic is closed and the bot has can_manage_topics rights. It does not explicitly name alternatives or edge cases (e.g., use reopenGeneralForumTopic for the general topic), which prevents a rating of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reopenGeneralForumTopicA

Reopen the closed 'General' topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It discloses the mutation, the required permission, and the success return value ('Returns True on success'). It does not discuss error behavior or what happens if the topic is already open, but the core behavioral contract is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each contributing distinct value: the action, the permission prerequisite, and the return behavior. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no nested objects and no output schema, this is complete: an agent knows the target, the required rights, and what to expect on success. The schema covers the chat_id parameter, so nothing needed for a successful call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and chat_id is already fully described in the input schema. The description adds no new parameter-level detail, which matches the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Reopen'), a precise resource (the closed 'General' topic), and the context (forum supergroup chat). This clearly differentiates it from sibling methods like reopenForumTopic, which targets arbitrary forum topics, and closeGeneralForumTopic, which performs the inverse action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the required precondition — the bot must be an administrator with can_manage_topics rights — and implies the tool is for reopening a closed General topic. It does not explicitly name alternatives or state when not to use it, but the 'General' qualifier and sibling names make the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replaceStickerInSetA

Replace an existing sticker in a sticker set with a new one. The method is equivalent to calling deleteStickerFromSet, then addStickerToSet, then setStickerPositionInSet. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker set name.
stickerYesAn InputSticker object with information about the new sticker. Must include sticker, format, emoji_list, and optionally mask_position and keywords.
user_idYesUser identifier of the sticker set owner.
old_stickerYesFile identifier of the replaced sticker.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses the exact side-effect sequence (delete, add, reposition) and the return value (True on success), which is strong transparency. It does not discuss permissions, atomicity, or failure cases, but the disclosed composition is the most important trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary action, followed by the equivalent operation and return value. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the important side effects and return type, while the 100%-covered schema handles parameter details. Without an output schema or annotations, there is still no explicit permissions/prereqs note, but the definition is adequate for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description does not need to redefine params. It lightly maps 'existing sticker' to old_sticker and 'new one' to sticker, but adds no format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific action ('Replace an existing sticker in a sticker set with a new one'), naming both the object and the mutation. It also distinguishes itself from sibling tools by explaining it is equivalent to deleteStickerFromSet + addStickerToSet + setStickerPositionInSet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The equivalence line implies this is a combined replacement operation rather than using the individual sibling calls, but the description never explicitly says when to choose it or when to prefer addStickerToSet/deleteStickerFromSet. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repostStoryA

Reposts a story from one managed business account to another. Both accounts must be managed by the same bot. Requires the can_manage_stories business bot right for both accounts. Returns a Story object on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_chat_idYesUnique identifier of the chat from which the story was originally posted
active_periodYesPeriod in seconds during which the reposted story will be visible; must be one of 21600 (6 hours), 43200 (12 hours), 86400 (24 hours), or 172800 (48 hours).
from_story_idYesUnique identifier of the story to repost
protect_contentNoPass True if the content of the reposted story must be protected from forwarding and screenshotting.
post_to_chat_pageNoPass True to keep the reposted story accessible after it expires.
business_connection_idYesUnique identifier of the business connection on behalf of which to repost the story

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and covers key behavioral constraints: same-bot ownership, the can_manage_stories right for both accounts, and the success return value (Story object). It does not describe failure behavior or side effects in detail, but the essential behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences with no filler: purpose first, then prerequisites, then return type. Every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema tool, the description covers purpose, prerequisites, permission, and return type, and the schema covers parameters. It is slightly incomplete only in not explicitly mapping the destination account to business_connection_id or describing error/failure behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters including active_period constraints. The description adds high-level context about source/destination accounts but no per-parameter meaning beyond the schema, matching the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Reposts'), a specific resource ('story'), and the source/destination relationship between two managed business accounts. This clearly differentiates it from siblings like postStory, editStory, and deleteStory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: the operation applies when moving a story between business accounts managed by the same bot, and explicitly states the permission prerequisite. It does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restrictChatMemberA

Restrict a user in a supergroup. The bot must be an administrator with can_restrict_members rights. Pass True for all permissions to lift restrictions from a user. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
user_idYesUnique identifier of the target user
until_dateNoDate when restrictions will be lifted for the user (Unix timestamp). If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered restricted forever.
permissionsYesA JSON-serialized object for new user permissions
use_independent_chat_permissionsNoPass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the admin permission requirement, the non-obvious 'pass True for all permissions to lift restrictions' behavior, and the success return value. It does not describe what happens to existing restrictions when only some permissions are passed, but the schema mitigates much of that ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences each earn their place: what the tool does, the authorization prerequisite, the special unrestricted behavior, and the return value. There is no filler, repetition, or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating admin tool with no annotations and no output schema, the description covers everything essential to call it correctly: operation scope, admin rights requirement, return value, and the non-obvious lift-restriction behavior. The parameter details are fully handled by the schema, so no critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds meaningful parameter semantics beyond the schema by explaining that passing True for all permissions lifts restrictions—a key behavior not evident from the permissions object alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action and target: 'Restrict a user in a supergroup.' This is specific and understandable, though it does not explicitly contrast with sibling tools like banChatMember or setChatPermissions, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational context: the bot must be an administrator with can_restrict_members rights, and lifting restrictions is achieved by passing True for all permissions. It does not explicitly say when to prefer restrictChatMember over banChatMember or unbanChatMember, but the context is sufficient for most routing decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

savePreparedInlineMessageA

Store a message that can be sent by a user of a Mini App. Returns a PreparedInlineMessage object with a unique identifier and expiration date.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultYesA JSON-serialized InlineQueryResult object describing the message to be sent.
user_idYesUnique identifier of the target user that can use the prepared message.
allow_bot_chatsNoPass True if the message can be sent to private chats with bots.
allow_user_chatsNoPass True if the message can be sent to private chats with users.
allow_group_chatsNoPass True if the message can be sent to group and supergroup chats.
allow_channel_chatsNoPass True if the message can be sent to channel chats.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the behavioral disclosure burden. It does add meaningful behavior: the message is stored for a user and the returned object has an expiration date. However, it does not disclose whether saving is idempotent, whether previous saved messages are overwritten, or what authentication/state conditions apply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The action and context are front-loaded, and the return-value detail is kept brief but informative. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, a nested object, no output schema, and no annotations, the description is adequate but thin. It mentions the return object and expiration, but omits the broader workflow, ordering constraints, and how this differs from directly answering an inline query, leaving some contextual gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented by the schema. The description only reinforces that the message relates to a Mini App user and adds no additional detail about the parameters themselves, which stays exactly at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Store') and a specific resource ('a message that can be sent by a user of a Mini App'). It also states the return type (PreparedInlineMessage with a unique identifier and expiration date), which clearly differentiates it from siblings like answerInlineQuery and answerWebAppQuery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The Mini App context implies when this should be used, but the description gives no explicit when-to-use guidance, no exclusions, and no mention of alternatives. An agent must infer that this is for saving a message for later user-initiated sending rather than for answering an inline query directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendAnimationA

Send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoAnimation width.
heightNoAnimation height.
captionNoAnimation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
durationNoDuration of sent animation in seconds.
animationYesAnimation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data.
thumbnailNoThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320.
parse_modeNoMode for parsing entities in the animation caption. See formatting options for more details.
has_spoilerNoPass True if the animation needs to be covered with a spoiler animation.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
show_caption_above_mediaNoPass True, if the caption must be shown above the message media.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It states that on success the sent Message is returned and that bots can currently send files up to 50 MB, which are useful behavioral facts beyond the bare 'send' action. It does not mention failure behavior or permission requirements, but the disclosed information is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The core purpose is front-loaded, followed by the return value and the size limit. Every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 21 parameters and no output schema, the description is lean but sufficient: it defines the media type, states the return value, and gives the size cap. The full parameter surface is covered by the schema, so the description does not need to repeat it, though it could add a note about preferring file_id over URL for reliability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 21 parameters are already documented in the schema. The description adds the 50 MB size constraint, which relates to the animation parameter, but otherwise provides no additional parameter-level meaning beyond what the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Send animation files' and defines exactly what counts as an animation ('GIF or H.264/MPEG-4 AVC video without sound'). This clearly differentiates it from sibling tools like sendVideo and sendDocument, so an agent can tell them apart immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use the tool: for GIF or silent H.264/MPEG-4 AVC videos, with a 50 MB limit. It does not explicitly name alternatives or state when not to use sendVideo, but the 'without sound' criterion implies the boundary strongly enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendAudioA

Send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size. For sending voice messages, use the sendVoice method instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesAudio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data.
titleNoTrack name.
captionNoAudio caption, 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
durationNoDuration of the audio in seconds.
performerNoPerformer of the audio.
thumbnailNoThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320.
parse_modeNoMode for parsing entities in the audio caption. See formatting options for more details.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful operational constraints: audio must be .MP3 or .M4A, files are limited to 50 MB, and a Message is returned on success. It does not discuss side effects, authorization, or rate limits, but the provided constraints and outcome are substantial and relevant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences with no wasted words. It front-loads the primary purpose, then adds format constraints, the success return value, the size limit, and the sibling alternative in a logical order. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex with 19 parameters, but the schema covers all of them, so the description only needs to add selection guidance and behavioral context. It covers the key decision point (sendAudio vs. sendVoice), return behavior, format requirements, and size limit. It does not mention all optional parameters, but that is already handled by the schema, making the description complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter description coverage, so the baseline is 3. The description adds extra semantic value beyond the schema by specifying the accepted audio formats (.MP3 or .M4A) and the 50 MB size limit, which are not explicitly present in the audio parameter description. This helps the agent validate inputs before calling the tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Send audio files'. It further clarifies the purpose by explaining when it is appropriate ('if you want Telegram clients to display them in the music player'), which distinguishes it from voice-message sending. It also clearly names the sibling alternative, sendVoice, so an agent can choose correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the intended use case ('if you want Telegram clients to display them in the music player') and provides an exclusion: 'For sending voice messages, use the sendVoice method instead.' This gives clear when-to-use and when-not-to-use guidance, plus the exact alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendChatActionA

Tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesType of action to broadcast. Choose one: 'typing' for text messages, 'upload_photo' for photos, 'record_video' or 'upload_video' for videos, 'record_voice' or 'upload_voice' for voice notes, 'upload_document' for general files, 'choose_sticker' for stickers, 'find_location' for location data, 'record_video_note' or 'upload_video_note' for video notes.
chat_idYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername).
message_thread_idNoUnique identifier for the target message thread; for supergroups only.
business_connection_idNoUnique identifier of the business connection on behalf of which the action will be sent.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully discloses the 5-second timeout, the clearing behavior upon message arrival, and the success return value. It does not describe failure behavior, but this is a minor gap for a simple fire-and-forget action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each contributing useful information: the core purpose, the timeout/clearing behavior, and the return value. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for a simple tool with fully documented parameters and no output schema. It covers the key behavioral constraints and return value. An explicit note about pairing this call with a subsequent message send would make it fully complete, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds no additional parameter-level meaning beyond the schema, which matches the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a way to signal bot-side activity to the user, which is distinct from content-sending siblings. However, it relies on the vague phrase 'something is happening' and does not explicitly name or contrast itself with any sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The timing details—status set for 5 seconds or less and cleared when a message arrives—provide clear practical context for when the tool should be invoked. It stops short of explicitly stating 'call this right before sending a message' or naming exclusions, but the intended usage is strongly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendChecklistA

Send a checklist on behalf of a business account. On success, the sent Message is returned. Available for business accounts only.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
checklistYesAn InputChecklist object describing the checklist to send. Contains title and tasks array.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idYesUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It reveals the action (send), the account restriction, and the success return value ('the sent Message is returned'), but it does not mention permissions required beyond the business account, failure behavior, or side effects such as message notifications. This is acceptable but not deeply transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences carry the essential information with no filler. The main action and scope are front-loaded, and the return behavior is a useful second sentence rather than an afterthought.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a sending operation with no output schema, the description supplies the crucial business-only constraint and the return type, while the schema covers all parameter semantics. It doesn't elaborate on checklist formatting or error cases, but nothing an agent needs to invoke the tool correctly appears critically missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all ten parameters, so the schema already explains chat_id, checklist, business_connection_id, and the optional fields. The description adds no parameter-level meaning beyond the 'business account' context, so it meets the baseline without elevating above it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a direct action verb and object: 'Send a checklist on behalf of a business account.' It names a distinct message resource (checklist) and adds a scope qualifier, which differentiates it from sibling send* tools without needing to open the schema. The sentence about returning the sent Message clarifies the tool's output at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a clear operating context: sending must be done 'on behalf of a business account' and is 'Available for business accounts only.' This exclusion tells an agent not to use the tool for non-business sending, and the unique checklist resource implies when it applies, though no sibling alternative is named explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendContactA

Send phone contacts. On success, the sent Message is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
vcardNoAdditional data about the contact in the form of a vCard, 0-2048 bytes.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
last_nameNoContact's last name.
first_nameYesContact's first name.
phone_numberYesContact's phone number.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It states the key action and the success return, but it does not mention preconditions, failure modes, permissions, or chat restrictions. This is acceptable for a straightforward send operation but leaves some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The core action is front-loaded and the return behavior is stated efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite rich input schema coverage, the description is minimal for a tool with 15 parameters, nested objects, no annotations, and no output schema. It lacks guidance on when to choose this over sibling send tools and provides no behavioral context beyond the basic action and success return. An agent would need to infer most usage context from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 15 parameters, including phone_number, first_name, and vcard. The description adds no parameter-level semantics, which matches the baseline expectation given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Send') and a specific resource ('phone contacts'), which clearly distinguishes it from sibling send tools like sendMessage, sendPhoto, or sendVenue. It also adds the return behavior ('the sent Message is returned'), reinforcing what the tool accomplishes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates the tool is for sending phone contacts, which gives an agent enough context to select it over alternatives such as sendMessage or sendAudio. It does not explicitly list when-not-to-use or mention alternative tools, but the resource specificity provides solid implicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendDiceA

Send an animated emoji that will display a random value. On success, the sent Message is returned. Supported emoji: dice, darts, basketball, football, bowling, slot machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiNoEmoji on which the dice throw animation is based. Currently, must be one of: dice, darts, basketball, football, bowling, or slot_machine. Dice can have values 1-6, darts and bowling 1-6, basketball and football 1-5, slot_machine 1-64. Defaults to dice.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses the core behavior (animated emoji, random value) and the success return value (sent Message). It does not go further to mention failure conditions, permission requirements, or that the random outcome is server-determined, so it is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences convey the action, the behavioral highlight, the return value, and the supported emoji set. The most important facts are front-loaded and no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema documents all 12 parameters, and the description provides the missing behavioral context (random value, returned Message, allowed emoji). It is slightly incomplete in that it does not distinguish itself from sibling send tools or mention prerequisites, but those are covered enough for a calling agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter coverage, so the description does not need to restate parameter meanings. The description adds no real parameter semantics beyond noting the supported emoji, and the schema already covers that for the emoji parameter, so a baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific action and object: 'Send an animated emoji that will display a random value,' which clearly distinguishes it from ordinary sendSticker/sendAnimation operations. It also lists the supported emoji, leaving no ambiguity about what resource the tool acts on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The supported-emoji list and the notion of a random result imply the intended use case (casino/sports game emoji), but the description does not explicitly say when to prefer sendDice over sendAnimation, sendSticker, or sendGame. There is no exclusion or alternative routing, so the guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendDocumentB

Send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
captionNoDocument caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
documentYesFile to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data.
thumbnailNoThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320.
parse_modeNoMode for parsing entities in the document caption. See formatting options for more details.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.
disable_content_type_detectionNoDisables automatic server-side content type detection for files uploaded using multipart/form-data.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral transparency burden. It usefully discloses that a Message is returned on success and that file size is limited to 50 MB. However, it does not mention side effects, error conditions, authentication requirements, or multipart upload behavior, which are significant gaps for a tool with no annotation safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence front-loads the action and resource, and the second sentence adds the success return value and a key size constraint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the success return value, which is important because there is no output schema, and it mentions the file size limit. However, for a 17-parameter tool with no annotations, it lacks routing guidance and does not explain when sendDocument should be chosen over specialized media senders. The schema fills parameter gaps, but the description leaves some invocation context unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even without parameter details in the description. The description does not add any parameter semantics beyond the schema; 'general files' loosely reflects the document parameter, but it adds no meaningful detail about chat_id, document formats, or optional fields. This is acceptable only because the schema is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Send general files.' It is clear that this tool sends documents, and the phrase 'general files' loosely differentiates it from specialized media senders like sendPhoto and sendAudio. However, it does not explicitly name or contrast against sibling tools, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use sendDocument versus related alternatives such as sendPhoto, sendVideo, or sendAudio. The phrase 'general files' implies a category, but the description does not state exclusions, preferred cases, or conditions that would route an agent to a different send method. The 50 MB limit is a constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendGameB

Send a game. On success, the sent Message is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat
reply_markupNoA JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game.
game_short_nameYesShort name of the game, serves as the unique identifier for the game. Set up your games via @BotFather.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It does add one useful behavioral fact: 'On success, the sent Message is returned,' which informs the agent about the return value. However, it discloses nothing else—no side effects beyond what 'Send' implies, no permission requirements, no failure behavior. The single return-value note is genuine but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences totaling 11 words, with the core operation front-loaded. There is zero wasted text. It earns a 4 rather than 5 because the extreme brevity leaves room for high-value additions (e.g., one usage-direction clause) that would not compromise conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no output schema and no annotations, the description is thin but workable: the schema fully documents parameters, and the description names the returned entity (a Message). The notable gap is usage context—an agent cannot determine when sendGame is the right choice among the many sibling send tools, nor what conditions must hold before calling it. Adequate for invocation, incomplete for correct selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies; every parameter (chat_id, game_short_name, reply_markup, protect_content, etc.) already has a description in the schema. The tool description adds no parameter-level meaning beyond what the schema provides, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Send a game') that clearly identifies the operation. The name and description align well, and the resource 'game' distinguishes it from most send_* siblings at a surface level. However, it does not explicitly differentiate itself from conceptually close siblings like sendMessage, sendInvoice, or sendDice, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. With a sibling list containing many send_* tools (sendMessage, sendInvoice, sendGift, sendDice, etc.), an agent receives no signal about what conditions select sendGame, what prerequisites exist (e.g., a game set up via @BotFather), or when a different tool would be appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendGiftA

Sends a gift to the given user or channel chat. The gift cannot be converted to Telegram Stars by the receiver. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText that will be shown along with the gift; 0-128 characters.
chat_idNoUnique identifier for the target chat or username of the channel (format: @channelusername). Required if user_id is not specified.
gift_idYesIdentifier of the gift to send. Limited gifts cannot be sent to channel chats.
user_idNoUnique identifier of the target user who will receive the gift. Required if chat_id is not specified.
text_entitiesNoList of special entities that appear in the gift text. Can be specified instead of text_parse_mode.
pay_for_upgradeNoPass True to pay for the gift upgrade from the bot's balance.
text_parse_modeNoMode for parsing entities in the text. See formatting options for more details.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that the gift cannot be converted to Stars and that True is returned on success, but it does not mention potential costs, balance requirements, or other side effects of sending a gift.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences are used to convey the action, target, key restriction, and return value. There is no filler, and the most important information appears first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a seven-parameter tool with no output schema, the description is largely complete: it states the purpose, target, a behavioral restriction, and the success return, while the schema covers all parameters. It could note the cost/balance implication, but nothing essential to invoking the API correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already documented in the schema. The description does not add meaningful parameter-level detail, which aligns with the baseline expectation for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Sends a gift'), the target ('user or channel chat'), and a distinctive consequence (the recipient cannot convert it to Telegram Stars). This separates it from related gift tools like convertGiftToStars or upgradeGift.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The recipient scope is clear, but there is no explicit guidance about when to use sendGift versus related gift actions such as transferGift, upgradeGift, or giftPremiumSubscription. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendInvoiceC

Send an invoice to a user. On success, the sent Message is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesProduct name, 1-32 characters
pricesYesPrice breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, etc.)
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
payloadYesBot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use it for your internal processes.
currencyYesThree-letter ISO 4217 currency code, or "XTR" for payments in Telegram Stars
need_nameNoPass True if you require the user's full name to complete the order. Ignored for payments in Telegram Stars.
photo_urlNoURL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service.
need_emailNoPass True if you require the user's email address to complete the order. Ignored for payments in Telegram Stars.
photo_sizeNoPhoto size in bytes
descriptionYesProduct description, 1-255 characters
is_flexibleNoPass True if the final price depends on the shipping method. Ignored for payments in Telegram Stars.
photo_widthNoPhoto width
photo_heightNoPhoto height
reply_markupNoA JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown.
provider_dataNoJSON-serialized data about the invoice, which will be shared with the payment provider.
max_tip_amountNoThe maximum accepted amount for tips in the smallest units of the currency. Defaults to 0.
provider_tokenNoPayment provider token, obtained via @BotFather. Pass an empty string for payments in Telegram Stars.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
start_parameterNoUnique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
need_phone_numberNoPass True if you require the user's phone number to complete the order. Ignored for payments in Telegram Stars.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
need_shipping_addressNoPass True if you require the user's shipping address to complete the order. Ignored for payments in Telegram Stars.
suggested_tip_amountsNoA JSON-serialized array of suggested amounts of tips in the smallest units of the currency. At most 4 suggested tip amounts can be specified.
send_email_to_providerNoPass True if the user's email address should be sent to the provider. Ignored for payments in Telegram Stars.
send_phone_number_to_providerNoPass True if the user's phone number should be sent to the provider. Ignored for payments in Telegram Stars.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does add one useful fact — the sent Message is returned on success — which matters because no output schema exists. However, it omits critical behavioral context for a payment operation: sending an invoice kicks off a payment flow, generates a pre-checkout/checkout query to the bot, and presents the user with a Pay button. This is a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The core action is front-loaded, and the second sentence about the return value earns its place given that no output schema is available to communicate the result type.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 29-parameter payment operation with no output schema and no annotations, a two-sentence description is insufficient. The schema covers parameter semantics, but the tool's role in the payment lifecycle, its relationship to createInvoiceLink, and its side effects on both user and bot are entirely undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents every one of the 29 parameters in detail. The description adds no parameter-level information beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Send an invoice to a user' — which clearly separates it from the many sibling send-* tools (sendMessage, sendPhoto, sendPoll, etc.). It does not explicitly name its closest sibling createInvoiceLink, so the distinction between direct-send and link-based invoicing is left to inference. The scope is otherwise unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided. The description never mentions that this is the direct-send alternative to createInvoiceLink, nor the conditions that would select one over the other. No prerequisites (e.g., requiring a payment provider token) or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendLocationB

Send point on the map. On success, the sent Message is returned. Supports live locations that can be edited.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
headingNoFor live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified.
latitudeYesLatitude of the location.
longitudeYesLongitude of the location.
live_periodNoPeriod in seconds during which the location will be updated (see Live Locations), should be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
horizontal_accuracyNoThe radius of uncertainty for the location, measured in meters; 0-1500.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
proximity_alert_radiusNoFor live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does disclose the return behavior ('On success, the sent Message is returned') and the special live-location capability. However, it does not disclose the live-location lifecycle — that a live location requires live_period, can only be updated via editMessageLiveLocation, and must be stopped via stopMessageLiveLocation — nor any failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no filler; the core action is front-loaded and each sentence adds distinct information (action, return value, live-location support). No wasted words, though the phrasing could be polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter mutation tool with nested objects, no annotations, and no output schema, this description is thin. It does state the return type, partially compensating for the missing output schema, but it omits the operational model of live locations (duration bounds, one live location per chat, need for subsequent edit/stop calls) and offers no help choosing among the many send* siblings. An agent would need external knowledge to use it correctly in live-location scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already documents all 17 parameters thoroughly. The description adds only marginal parameter context: the live-location sentence gestures at live_period, heading, and proximity_alert_radius semantics but provides no concrete detail. This is acceptable because the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource — 'Send point on the map' — which clearly identifies this as a location-sending operation, distinct from siblings like sendVenue (venue with address details) or sendMessage (text). The mention of live locations adds scope definition. Minor grammatical awkwardness ('point' rather than 'a point') but the meaning is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as sendVenue, sendMessage, or editMessageLiveLocation. The live-location sentence implies a relationship to editMessageLiveLocation and stopMessageLiveLocation, but the workflow is never stated explicitly, leaving the agent to infer selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendMediaGroupA

Send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaYesA JSON-serialized array describing messages to be sent, must include 2-10 items. Each item is an InputMediaAudio, InputMediaDocument, InputMediaPhoto and InputMediaVideo.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
protect_contentNoProtects the contents of the sent messages from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends messages silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It discloses the album grouping constraint (documents/audio must be grouped with same type) and notes the return value is an array of Messages. However, it omits other behavioral details such as permission requirements, error behavior, or rate-limit implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The core action is front-loaded, and the second sentence adds essential grouping constraints and return information that directly informs invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a fully documented 10-parameter schema and a clear description, the definition is reasonably complete. It covers the key grouping rule and the return type, which compensates for the lack of an output schema. Minor gaps remain around usage context and error cases, but the core invocation needs are met.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description does not add parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a group of photos, videos, documents, or audios as an album, which is a specific verb-resource action. It distinguishes this from sibling single-media send tools (sendPhoto, sendVideo, etc.) by emphasizing the album/group aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for sending an album rather than a single media message, but it does not explicitly state when to prefer this tool over alternatives or when not to use it. No exclusions or explicit alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendMessageC

Send text messages to a chat. Supports formatting, reply markup, and various message options. Returns the sent Message on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText of the message to be sent, 1-4096 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
entitiesNoA JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode.
parse_modeNoMode for parsing entities in the message text. See formatting options for more details. Supported: 'Markdown', 'MarkdownV2', 'HTML'.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to. Object with fields: message_id (required), chat_id, allow_sending_without_reply, quote, quote_parse_mode, quote_entities, quote_position.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
link_preview_optionsNoLink preview generation options for the message. Object with fields: is_disabled, url, prefer_small_media, prefer_large_media, show_above_text.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does disclose the return value ('Returns the sent Message on success'), which is useful given the absent output schema, but it omits side effects (the message is delivered to real users and cannot be retracted), permission prerequisites (bot must be a chat member), and error/failure behavior. For a state-changing send operation, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences in roughly 20 words: core action first, then capabilities, then return value. Every sentence earns its place, there is no filler, and it avoids repeating the 15 parameters already documented in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with no annotations and no output schema, the description covers purpose and return value but leaves sibling differentiation, failure behavior, and prerequisites unaddressed. The rich schema covers parameter semantics, but the operational context an agent needs to choose and invoke this reliably among roughly 250 siblings is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed per-parameter descriptions, so the baseline is 3. The description adds only a light grouping ('Supports formatting, reply markup, and various message options'), which maps loosely to parse_mode/entities, reply_markup, and the option flags, but does not add meaning beyond what the input schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Send text messages to a chat,' which differentiates it from the many media-sending siblings (sendPhoto, sendAudio, sendDocument) by the word 'text.' The mention of formatting, reply markup, and the returned Message adds specificity, though it doesn't explicitly delineate from near-neighbors like sendMessageDraft or editMessageText.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided. With over a dozen send* siblings plus editMessageText, copyMessage, and forwardMessage in the tool list, an agent gets no explicit signal about which alternative fits other content types or the message-editing case, and must infer everything from the word 'text.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendMessageDraftA

Stream partial messages to a user while being generated. This is useful for AI-powered bots that want to show responses as they're being created. Allows progressive message delivery during content generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
draft_messageYesThe draft message content to stream to the user. Contains text and optional formatting.
reply_parametersNoDescription of the message to reply to.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose the core progressive-streaming behavior, but it omits lifecycle details: whether repeated calls update a single draft, how the draft is finalized or replaced, and what side effects occur after generation ends.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the key action. There is minor redundancy between 'stream partial messages while being generated' and 'progressive message delivery during content generation,' but every sentence still contributes either behavior or use-case context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, nested objects, no output schema, and no annotations, the description provides enough to understand the tool's purpose and select it, but it is not fully complete for end-to-end invocation. It does not describe the return value, draft replacement semantics, or how this tool relates to finally sending a completed message.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for all 6 parameters, including the nested draft_message object, so schema coverage is 100%. The description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('stream partial messages') and target ('a user'), and frames it around progressive delivery during generation. It distinguishes itself from the normal sendMessage sibling through the 'partial' and 'stream' language, though it does not explicitly name or contrast any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a concrete when-to-use context: AI-powered bots that want to show responses as they are generated. It does not, however, state when not to use it, mention final-message handling, or point to sendMessage as the alternative for complete messages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendPaidMediaB

Send paid media. On success, the sent Message is returned. Maximum price is 25000 Telegram Stars.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaYesA JSON-serialized array describing the media to be sent; up to 10 items.
captionNoMedia caption, 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername). If the chat is a channel, all Telegram Star proceeds from this media will be credited to the chat's balance. Otherwise, they will be credited to the bot's balance.
payloadNoBot-defined paid media payload, 0-128 bytes. This will not be displayed to the user, use it for your internal processes.
parse_modeNoMode for parsing entities in the media caption. See formatting options for more details.
star_countYesThe number of Telegram Stars that must be paid to buy access to the media; 1-25000.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
show_caption_above_mediaNoPass True, if the caption must be shown above the message media.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose two real behavioral facts: the success return value (sent Message) and the maximum price. However, it omits the defining mechanics of the operation — that users must pay Telegram Stars to unlock the media, that proceeds credit to the bot or channel balance, and what happens on payment failure. More than a tautology, but thin for a financial mutation with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sixteen words across two sentences with the purpose front-loaded in the first three. Every clause earns its place: the verb+resource, the success return behavior, and the pricing cap. No filler, no boilerplate, no repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is richly self-documenting (credit routing in chat_id, broadcast fee in allow_paid_broadcast, payload semantics), and the description supplies the return type absent from an output schema. But with no annotations and no output schema, the description still leaves the paid-media value proposition, prerequisites, and the sendInvoice/sendMediaGroup boundary unexplained — high complexity for a financial tool demands more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even with no parameter elaboration in the description. The only parameter-adjacent content ('Maximum price is 25000 Telegram Stars') merely restates the schema's star_count range (1-25000) without adding new meaning. The description adds no clarification beyond what the schema already provides for any of the 17 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Send paid media') with the 'paid' qualifier distinguishing it from non-paid media siblings like sendPhoto, sendVideo, and sendMediaGroup. The return-on-success clause and 25000-Star cap add useful specificity. It falls short of a 5 because it never contrasts with sendInvoice, the closest financial sibling, and the Telegram-specific meaning of 'paid media' (Stars paywall) is left assumed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With over 100 siblings including sendMediaGroup (unpaid bulk media) and sendInvoice (monetized content via a different mechanism), an agent gets zero routing help and no selection condition. A sentence such as 'For non-paid media use sendMediaGroup' would have resolved the ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendPhotoA

Send photos. On success, the sent Message is returned. Photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20.

ParametersJSON Schema
NameRequiredDescriptionDefault
photoYesPhoto to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data.
captionNoPhoto caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
parse_modeNoMode for parsing entities in the photo caption. See formatting options for more details.
has_spoilerNoPass True if the photo needs to be covered with a spoiler animation.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
show_caption_above_mediaNoPass True, if the caption must be shown above the message media.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden, and it does so usefully by disclosing the 10 MB size limit, total dimension limit, aspect ratio limit, and the success return type. It does not mention failure behavior or nuances about URL/file_id uploads, but the key constraints are clearly surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: the main action comes first, followed by the success return and then the key constraints. Every sentence adds information without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 17 parameters and no output schema, the schema fully documents every parameter, so the description only needs to add invocation-critical context. It adds the necessary size/dimension constraints and the return type, making the tool callable without leaving major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful constraints on the photo parameter that are not present in the schema, such as maximum size and dimension limits. This goes beyond simply restating the schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Send photos') and includes the success return value, so an agent immediately knows what the tool does. It does not differentiate itself from sibling send tools such as sendMediaGroup or sendDocument, but the name and description are unambiguous enough for basic selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like sendMediaGroup, sendDocument, or sendPhoto variants. The description only restates the action and adds constraints, which does not help an agent choose between this and closely related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendPollA

Send a native poll. On success, the sent Message is returned. Supports regular polls and quizzes.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoPoll type, 'quiz' or 'regular', defaults to 'regular'.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
optionsYesA JSON-serialized list of 2-12 answer options. Each option is an InputPollOption object with fields: text (required, 1-100 characters), text_parse_mode, text_entities.
questionYesPoll question, 1-300 characters.
is_closedNoPass True if the poll needs to be immediately closed. This can be useful for poll preview.
close_dateNoPoint in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period.
explanationNoText that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing.
open_periodNoAmount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date.
is_anonymousNoTrue, if the poll needs to be anonymous, defaults to True.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
correct_option_idNo0-based identifier of the correct answer option, required for polls in quiz mode.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
question_entitiesNoA JSON-serialized list of special entities that appear in the poll question. It can be specified instead of question_parse_mode.
question_parse_modeNoMode for parsing entities in the question. See formatting options for more details. Currently, only custom emoji entities are allowed.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
explanation_entitiesNoA JSON-serialized list of special entities that appear in the poll explanation. It can be specified instead of explanation_parse_mode.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
explanation_parse_modeNoMode for parsing entities in the explanation. See formatting options for more details.
allows_multiple_answersNoTrue, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does state the success return value (the sent Message) and the native poll/quiz/regular distinction. However, it does not mention side effects, constraints, or mode-specific requirements such as quiz mode requiring correct_option_id, though some of that detail is available in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded: the action comes first, followed by the success return value, then supported poll modes. Every sentence adds distinct value, and there is no filler or redundant repetition of schema information. It is well-structured for a tool with a heavily documented input schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the large 23-parameter schema and no output schema, the description mentions the return value, which is important, and the tool's poll modes. However, it lacks usage guidance, alternative tool comparisons, and behavioral caveats. The rich schema fills in most invocation details, making the description adequate but not fully complete for selection support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage across all 23 parameters, so the schema already provides thorough parameter semantics. The description adds no parameter-specific meaning, so the baseline score of 3 is appropriate. There is no coverage gap for the description to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: "Send a native poll". It also clarifies that it supports regular polls and quizzes, which distinguishes it from generic send methods like sendMessage and from stopPoll. An agent can quickly identify this as the poll-sending tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use sendPoll versus alternative tools, and it does not mention any exclusions or sibling comparisons. The phrase "Supports regular polls and quizzes" implies scope but does not state usage context. An agent must infer that this is the tool to use for native polls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendStickerB

Send static .WEBP, animated .TGS, or video .WEBM stickers. Returns the sent Message on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiNoEmoji associated with the sticker; only for just uploaded stickers.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
stickerYesSticker to send. Pass a file_id as String to send a file that exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP, .TGS, or .WEBM sticker.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to. Object with message_id and optionally chat_id, allow_sending_without_reply, quote, quote_parse_mode, quote_entities, quote_position.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target Direct Messages topic; for bots only.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It usefully discloses the success return value (the sent Message) and the accepted formats, but does not mention that this is a side-effecting action visible in a chat, any failure modes, or auth/business-connection expectations implied by parameters like business_connection_id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler: the first states the action and valid formats, the second covers the return value. Essential information is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, disclosing 'Returns the sent Message on success' is valuable and covers the return contract. Given 12 parameters but 100% schema coverage, the description addresses what structured data lacks; the main remaining gap is usage differentiation among the large sibling set, which is already penalized in usage_guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters. The description adds modest value by clarifying the accepted file formats for the sticker parameter, but otherwise does not go beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Send') and resource (stickers) with concrete format specifics (.WEBP, .TGS, .WEBM) that clarify what content types are accepted. It does not explicitly contrast with sibling content-sending tools like sendDocument or sendPhoto, which could also carry sticker files, so differentiation is partially left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to choose sendSticker over the many sibling send* and sticker-management tools. No exclusions, prerequisites, or alternative tool names are mentioned; the appropriate use case is only implied by the tool name and the format list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendVenueB

Send information about a venue. On success, the sent Message is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesName of the venue.
addressYesAddress of the venue.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
latitudeYesLatitude of the venue.
longitudeYesLongitude of the venue.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
foursquare_idNoFoursquare identifier of the venue.
foursquare_typeNoFoursquare type of the venue, if known. (For example, 'arts_entertainment/default', 'arts_entertainment/aquarium' or 'food/icecream'.)
google_place_idNoGoogle Places identifier of the venue.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
google_place_typeNoGoogle Places type of the venue. (See supported types.)
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose the success behavior: 'On success, the sent Message is returned,' which tells the agent what to expect. However, it does not mention permissions, rate limits, error conditions, or that sending is a side-effecting operation beyond the obvious 'Send' verb. This is a modest but not comprehensive behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. 'Send information about a venue' immediately states the purpose, and 'On success, the sent Message is returned' adds the key outcome. Every word earns its place and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 19 parameters, nested objects, and no output schema, yet the description provides only a minimal purpose statement and a return note. It lacks usage context, behavioral depth, and differentiation from similar sending tools. For a tool of this complexity, the description is too sparse to fully prepare an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with every parameter already having a meaningful description in the input schema. The description adds no parameter-specific details beyond the general notion of 'information about a venue.' Since the schema handles parameter semantics, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Send information about a venue.' This is clear and distinct from generic messaging, but it does not explicitly differentiate the tool from siblings like sendLocation or sendContact, which also send location-like content. The resource 'venue' is inherently distinctive but the description leaves the differentiation to the agent's inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as sendLocation, sendMessage, or sendContact. There is no explicit context, exclusions, or mention of sibling tools. The only implied usage is derived from the tool name and the phrase 'information about a venue,' which is insufficient for choosing among the many send-* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendVideoA

Send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
coverNoCover for the video in the message. Pass a file_id to send a file that exists on the Telegram servers (recommended), or pass an HTTP URL for Telegram to get the file from the Internet.
videoYesVideo to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data.
widthNoVideo width.
heightNoVideo height.
captionNoVideo caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
durationNoDuration of sent video in seconds.
thumbnailNoThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320.
parse_modeNoMode for parsing entities in the video caption. See formatting options for more details.
has_spoilerNoPass True if the video needs to be covered with a spoiler animation.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
start_timestampNoStart timestamp for the video in the message, in seconds.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
supports_streamingNoPass True if the uploaded video is suitable for streaming.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
show_caption_above_mediaNoPass True, if the caption must be shown above the message media.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and meets it: it discloses the format fallback behavior, the 50 MB size cap, and the success return value (sent Message). This goes meaningfully beyond the bare operation. Minor gaps remain (error conditions, permission requirements) but the key operational facts are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste: purpose, format caveat, return value and size limit. Every clause earns its place and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

High complexity (24 params, nested objects) is offset by 100% schema coverage, and the description fills the remaining gaps: the return type (compensating for the missing output schema) and the 50 MB operational limit. A complete enough picture for an agent to select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 24 parameters are already documented in the schema. The description's format note adds slight context for the video parameter but nothing the schema doesn't largely convey. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource pair ('Send video files') and adds a distinguishing format note (MPEG4 supported, other formats sent as Document) that separates it from sendDocument among a large sibling set. It doesn't explicitly differentiate from adjacent siblings like sendVideoNote, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The format caveat ('other formats may be sent as Document') implies a boundary with sendDocument but never explicitly says 'use sendDocument for non-MPEG4 files' or names alternative tools. No when-to-use or prerequisites guidance is provided beyond this implied distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendVideoNoteB

As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Send video messages. On success, the sent Message is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoVideo width and height, i.e. diameter of the video message.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
durationNoDuration of sent video in seconds.
thumbnailNoThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320.
video_noteYesVideo note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. Sending video notes by a URL is currently unsupported.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the format support (rounded square MPEG4, up to 1 minute) and the success return value (the sent Message). It does not explain failure behavior, permission requirements, upload mechanics, or other operational details, but it does provide some useful behavioral context beyond the name and schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences and front-loads the key format constraint before the action. It is concise and readable, though the phrase 'Send video messages' is somewhat redundant with the tool name and could be replaced with more differentiating information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 15 parameters, nested objects, and no output schema, the description is thin. It does mention the return value, and the schema covers parameters, but there is no guidance on upload strategies, error cases, or relationship to sibling send tools. It is adequate but not complete for an agent selecting among many similar methods.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the structured data already documents all parameters. The description adds no parameter-level semantics beyond the format constraints, which are context for the video_note parameter. This meets the baseline for high schema coverage, with no bonus for additional insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action and resource: 'Send video messages' for video notes. It also provides the distinguishing format constraints (rounded square MPEG4, up to 1 minute), which helps separate it from sendVideo. However, it never explicitly names a sibling or highlights the difference with sendVideo, so a small gap remains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like sendVideo, sendAnimation, or sendVoice. The format description implies it is for video notes, but it does not state this explicitly or mention when not to use it. With 15+ sibling send tools, this leaves the agent to infer the intended usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendVoiceA

Send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS, or in .MP3 format, or in .M4A format. On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
voiceYesAudio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data.
captionNoVoice message caption, 0-1024 characters after entities parsing.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
durationNoDuration of the voice message in seconds.
parse_modeNoMode for parsing entities in the voice message caption. See formatting options for more details.
reply_markupNoAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove a reply keyboard or to force a reply from the user.
protect_contentNoProtects the contents of the sent message from forwarding and saving.
caption_entitiesNoA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode.
reply_parametersNoDescription of the message to reply to.
message_effect_idNoUnique identifier of the message effect to be added to the message; for private chats only.
message_thread_idNoUnique identifier for the target message thread (topic) of the forum; for forum supergroups only.
allow_paid_broadcastNoPass True to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
disable_notificationNoSends the message silently. Users will receive a notification with no sound.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be sent.
direct_messages_topic_idNoUnique identifier for the target direct messages topic; for bots only.
suggested_post_parametersNoInformation about suggested post parameters; for channel chats only.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and does well: it discloses display semantics, format enforcement, the 50MB size cap, and the return contract ('On success, the sent Message is returned'). The return-value note is especially valuable given there is no output schema. It omits permission requirements and failure behavior, but for a send operation the format and size constraints are the critical behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: distinguishing purpose, format eligibility, return value, and size limit. The purpose is front-loaded in the first clause, and the whole description is compact relative to the tool's 16-parameter complexity. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero annotations and no output schema, the description covers the essential contract: what it does, which formats qualify, the size ceiling, and what is returned. It misses only peripheral context — permission requirements, explicit mutation notice, and failure behavior — which are conventional for send-type Telegram API tools and unlikely to mislead an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, setting the baseline at 3. The format and size constraints in the description relate to the voice parameter but do not add meaning beyond the schema's already-detailed per-parameter descriptions (file_id, URL, or multipart upload for voice). No parameter is left undocumented and the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Send audio files') and immediately defines the distinguishing display mode: 'if you want Telegram clients to display the file as a playable voice message.' This behaviorally separates it from sibling sendAudio (audio played as a music file) and sendVideoNote without ambiguity, so an agent can select it correctly without inspecting either tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The conditional 'if you want Telegram clients to display the file as a playable voice message' gives clear selection context. The format requirements (.OGG/OPUS, .MP3, .M4A) and the 50MB cap provide actionable constraints on when a call will succeed. However, no alternative tool is named explicitly (e.g., 'for music files use sendAudio instead'), so exclusion guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setBusinessAccountBioA

Changes the bio of a managed business account. Requires the can_change_bio business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoThe new bio for the business account; 0-140 characters. Pass an empty string to remove the bio.
business_connection_idYesUnique identifier of the business connection

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It adds the required 'can_change_bio' business bot right and states the success return value (True), which are not available in the schema. It does not describe error behavior or side effects, but those are minor for a simple setter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The action is front-loaded, and the second sentence contributes a permission requirement and success return, both of which an agent needs to know. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter setter with full schema coverage and no output schema, the description covers the core behavioral contract: what it does, the required right, and the success return. It stops short of describing failure scenarios, but the information needed for basic invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters, including the bio's 0-140 character limit and the empty-string removal behavior. The description does not add meaningful parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Changes the bio of a managed business account.' It is easily distinguished from sibling tools like setBusinessAccountName or setBusinessAccountProfilePhoto because the target is explicitly the bio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for changing the bio of a managed business account, but it does not explicitly state when to use it over alternatives or when not to use it. There is no reference to sibling tools or exclusion conditions; usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setBusinessAccountGiftSettingsA

Changes the privacy settings for gifts in a managed business account. Requires the can_change_gift_settings business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
show_gift_buttonYesPass True to show the gift button on the business account's profile; False to hide it.
accepted_gift_typesYesAn AcceptedGiftTypes object describing the types of gifts that can be sent to the business account.
business_connection_idYesUnique identifier of the business connection

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and handles it well: 'Changes' signals mutation, 'Requires the can_change_gift_settings business bot right' discloses the authorization prerequisite, and 'Returns True on success' specifies the return contract. It does not cover failure behavior or side effects on existing settings, but the key behavioral traits are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste: the purpose is front-loaded first, followed by the permission requirement and return value. Each sentence earns its place by conveying a distinct piece of information an agent needs before invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with 100% schema coverage, the description covers the essentials: what it does, who can call it, and what it returns. The remaining gaps—failure behavior and whether accepted_gift_types replaces or merges existing settings—are minor and do not block correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (show_gift_button, accepted_gift_types, business_connection_id). The description adds no parameter-specific meaning beyond the general 'privacy settings' framing, so it correctly rests at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Changes'), a precise resource ('privacy settings for gifts'), and a scope qualifier ('managed business account'). This clearly distinguishes it from siblings like getBusinessAccountGifts (retrieval), sendGift (sending gifts), and setBusinessAccountName (a different settings resource) without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives some context through the 'managed business account' scope and the permission prerequisite, but it never explicitly states when to use this tool versus alternatives or when not to use it. No sibling alternatives are mentioned, so an agent must infer usage purely from the tool's name and purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setBusinessAccountNameA

Changes the first and last name of a managed business account. Requires the can_change_name business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
last_nameNoThe new last name for the business account; 0-64 characters
first_nameYesThe new first name for the business account; 1-64 characters
business_connection_idYesUnique identifier of the business connection

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does a solid job: it discloses the required 'can_change_name' business bot right and states that it returns True on success. It does not describe error behavior or reversibility, but for a simple setter this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: the first states the action and scope, the second states the authorization requirement and return value. Every sentence earns its place and the key semantics are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with only three parameters and no output schema, the description is complete: it states what changes, what scope it applies to, the required permission, and the return value. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no additional parameter-level meaning beyond naming 'first and last name', which matches the schema. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Changes') with a clear resource ('first and last name of a managed business account'), which precisely distinguishes it from related setters like setBusinessAccountBio, setBusinessAccountProfilePhoto, and setBusinessAccountUsername. The intent is immediately clear without needing to inspect the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when changing a managed business account's name and states the required permission, but it does not explicitly contrast it with alternatives such as setBusinessAccountUsername or setChatTitle. Usage context is clear enough from the wording, but no explicit when-to-use or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setBusinessAccountProfilePhotoA

Changes the profile photo of a managed business account. Requires the can_edit_profile_photo business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
photoYesThe new profile photo to set. Must be an InputProfilePhoto object.
is_publicNoPass True to set the public photo, which will be visible even if the main photo is hidden by the business account's privacy settings.
business_connection_idYesUnique identifier of the business connection

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the required permission, the effect of the operation, and the success return value. It does not describe failure behavior or side effects, but for this tool scope the key behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The core action and resource are stated first, followed by the prerequisite and return value. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three well-documented parameters and no output schema, the description provides the essential context: the action, the permission required, and what a successful call returns. Additional failure-mode detail would help slightly, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all three parameters. The description adds no parameter-specific details beyond the schema, which is acceptable given the high coverage. It does not need to compensate for undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Changes') and a specific resource ('profile photo of a managed business account'). It clearly differentiates this tool from siblings like removeBusinessAccountProfilePhoto and setChatPhoto by indicating the resource type and the change operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the required business bot right as a precondition for using the tool. It does not explicitly name alternatives or when-not-to-use conditions, but the context of 'managed business account' and the action 'Changes' makes the intended usage clear without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setBusinessAccountUsernameA

Changes the username of a managed business account. Requires the can_change_username business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoThe new username for the business account; 0-32 characters. Pass an empty string to remove the username.
business_connection_idYesUnique identifier of the business connection

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that the operation mutates the username, that a specific bot right is required, and that it returns True on success. It does not describe failure modes or downstream side effects, but for a simple setter this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences: action and scope, prerequisite, and return value. There is no repetition of schema content or filler, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter setter with no output schema, the description plus schema covers the target, the required permission, the return value, and parameter constraints. It could add explicit failure behavior, but nothing essential is missing for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents username length and the empty-string removal behavior. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and object ('Changes the username'), clearly identifying the target resource as a managed business account. This distinguishes it from nearby siblings like setBusinessAccountName, setBusinessAccountBio, and setBusinessAccountProfilePhoto.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a concrete precondition: the can_change_username business bot right is required, which helps an agent decide whether it is permitted to call the tool. It does not explicitly name alternatives or exclusion conditions, but the resource and action are unambiguous enough for the agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatAdministratorCustomTitleA

Set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
user_idYesUnique identifier of the target user
custom_titleYesNew custom title for the administrator; 0-16 characters, emoji are not allowed

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It clearly states the effect (sets a custom title), the precondition (admin promoted by the bot), and the success return value (True). However, it does not disclose other important behavior such as the bot needing to currently be an administrator with appropriate rights, or what happens on failure. This is adequate but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The main action and scope are front-loaded, and the return value is included as a useful closing clause. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is mostly complete for a simple three-parameter mutation: it states the action, scope, precondition, and return value. It does not mention that the bot must currently be an administrator with the required rights, which is a meaningful omission for an API call that will fail without it. Given no annotations and no output schema, this is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (chat_id, user_id, custom_title) are already fully documented in the schema. The description adds no additional parameter-level detail beyond the generic notion of a 'custom title', so it correctly rests at the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Set') and resource ('custom title for an administrator in a supergroup'), and adds the important constraint that the administrator must have been promoted by the bot. This makes the tool's purpose unambiguous and distinguishes it from related sibling tools like promoteChatMember, which performs the promotion itself rather than setting a title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool applies: only for administrators promoted by the bot in a supergroup. While it does not explicitly name alternative tools or say 'use X instead', there is no direct sibling that competes for the same operation, so the implied usage guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatDescriptionA

Change the description of a group, a supergroup or a channel. The bot must be an administrator with can_change_info rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
descriptionNoNew chat description, 0-255 characters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the key traits: it is a mutating operation, it requires specific admin permissions, and it returns True on success — all useful beyond the schema. It does not disclose failure/error behavior, partial effects, or that an empty description clears the field, which are moderate gaps for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first front-loads the action and target resource, the second packs the permission prerequisite and return value. Every sentence earns its place, and the whole description is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with a fully documented schema, this description covers what the tool does, the permission condition under which it works, and its return value — important since there is no output schema. The main omission is error-behavior detail (e.g., what happens when the bot lacks rights), which is relatively minor given the low complexity and complete parameter documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both chat_id and description are already fully documented with types, formats, and constraints (e.g., '0-255 characters'). The tool description adds no parameter-level detail, but at this coverage level the schema carries the load and the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Change') and resource ('description of a group, a supergroup or a channel'), making the operation unambiguous. The explicit chat-type scope distinguishes it from sibling tools like setMyDescription (bot's own description) and setChatTitle (title rather than description), so an agent can select it correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear prerequisite — the bot must be an administrator with can_change_info rights — which tells an agent when the call will succeed. However, it gives no explicit guidance on when to prefer this tool over alternatives such as setChatTitle or setChatPhoto, nor does it mention when not to use it. The usage context is implied rather than fully routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatMenuButtonA

Change the bot's menu button in a private chat, or the default menu button. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoUnique identifier for the target private chat. If not specified, changes the default bot menu button.
menu_buttonNoObject for the bot's new menu button. Defaults to MenuButtonDefault.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully states the return value ('Returns True on success'), but it does not mention failure behavior, authorization requirements, side effects, or the fact that this applies only to private-chat menu buttons.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the core behavior, then states the return value. There is no filler or redundancy; every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter with two optional parameters, a fully covered schema, and a stated return value, the description is nearly complete. It lacks only explicit notes about error conditions or permission scenarios, but these are not required for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no new meaning beyond what the schema provides, which fits the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') and clearly identifies the resource: the bot's menu button, with two distinct scopes (a specific private chat or the default). This distinguishes it well from sibling getChatMenuButton and other set* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two contexts in which the tool applies (per-chat and default), giving the agent a clear idea of when to invoke it. However, it does not explicitly mention alternatives or when not to use this method, so usage guidance is implied rather than fully stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatPermissionsA

Set default chat permissions for all members. The bot must be an administrator and must have the can_restrict_members administrator rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
permissionsYesA JSON-serialized object for new default chat permissions
use_independent_chat_permissionsNoPass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses that the operation modifies default chat permissions for all members, requires administrator rights, and returns True on success. It does not cover failure modes or potential side effects, but the key behavioral traits are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The primary action and scope are front-loaded, followed by prerequisites and return value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich nested schema and simple boolean return, the description covers the essential operational context: what the method does, what rights are needed, and what success returns. It could mention failure behavior or warn about replacing all default permissions, but it is largely complete for an API method.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already documented in the schema. The description adds no additional param-level meaning beyond restating that permissions are default chat permissions, which is also evident from the tool name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action, resource, and scope: setting default chat permissions for all members. This clearly distinguishes it from sibling tools like restrictChatMember, which target individual members rather than defaults.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for use: setting default permissions for all members. It also states a necessary precondition (administrator with can_restrict_members rights). It does not explicitly name alternatives or state when not to use the tool, but the scope is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatPhotoA

Set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator with can_change_info rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
photoYesNew chat photo, uploaded using multipart/form-data (InputFile)
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It reveals the permission requirement, the private-chat exclusion, and the successful return value. It does not detail side effects like overwriting the existing photo, but 'set a new photo' reasonably implies replacement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, purposeful sentences with no filler. The core action is front-loaded, followed by constraints and return behavior, and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with no output schema, the description covers applicability, permission requirements, and the success result. Nothing an agent needs to decide whether and how to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters fully, including chat_id format and the multipart InputFile nature of photo. The description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource: 'Set a new profile photo for the chat.' This clearly differentiates it from related chat-mutation siblings like setChatTitle, setChatDescription, and deleteChatPhoto.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete usage constraints: private chats cannot have the photo changed, and the bot must be an administrator with can_change_info rights. This tells an agent when the call is valid and what conditions are required, though it does not explicitly mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatStickerSetA

Set a new group sticker set for a supergroup. The bot must be an administrator with can_change_info rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
sticker_set_nameYesName of the sticker set to be set as the group sticker set

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It states the required permission, provides a way to verify eligibility, and reports 'Returns True on success.' This is strong behavioral context for a mutating tool, though it could mention what happens to any existing sticker set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences: the action, the permission requirement, and the return value. Every sentence adds useful information and the core action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, this description is complete: it explains what the tool does, who can use it, how to preflight permission, and what a successful call returns. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both chat_id and sticker_set_name are already well documented. The description does not add parameter-level detail beyond what the schema provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Set a new group sticker set for a supergroup.' This clearly distinguishes the tool from siblings like deleteChatStickerSet and setStickerSetThumbnail, and the target context (supergroup) removes ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit preconditions: the bot must be an administrator with can_change_info rights, and the agent is told to check can_set_sticker_set from getChat before using the method. It does not explicitly name alternatives, but the usage context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setChatTitleA

Change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator with can_change_info rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesNew chat title, 1-128 characters
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden and handles it well: it reveals the mutation (change), the restriction on private chats, the authorization requirement, and the success return value ('Returns True on success'). It does not describe failure behavior, but the covered context is substantial for a simple operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no wasted words: purpose first, then constraints, then return value. Every sentence contributes meaning and the structure is front-loaded for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, no-output-schema tool, the description plus full schema coverage fully equips an agent. It covers the action, key exclusions, required permissions, and success return, making the definition complete without being verbose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both chat_id and title. The description adds no extra meaning beyond restating that the title is being changed, which is the baseline expectation. No additional parameter-level nuance is offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Change the title of a chat', a specific verb and resource that plainly states the tool's core function. It is distinct from sibling tools like setChatDescription or setChatPhoto, and the additional constraints (private chats, admin rights) further clarify what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when not to use the tool ('Titles can't be changed for private chats') and the required permission ('bot must be an administrator with can_change_info rights'). It provides solid conditional guidance, but it does not explicitly mention alternative tools or compare to them, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setCustomEmojiStickerSetThumbnailA

Set the thumbnail of a custom emoji sticker set. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker set name.
custom_emoji_idNoCustom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Returns True on success' and does not mention side effects, permission requirements, or behavior beyond the schema's note about emptying custom_emoji_id. The mutation implied by 'Set' is not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler. It leads with the action and resource, then gives the return behavior. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation, the schema and the one-line return statement provide a minimum viable profile. But with no annotations and no mention of sibling setStickerSetThumbnail or operational side effects, the description leaves gaps an agent would have to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Set the thumbnail of a custom emoji sticker set.' The explicit 'custom emoji' qualifier distinguishes it from the sibling setStickerSetThumbnail, which targets regular sticker sets. The return value is also specified ('Returns True on success').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by the description: use this when setting a custom emoji sticker set thumbnail. However, it gives no explicit guidance about when not to use it or how it compares to the very similar sibling setStickerSetThumbnail. There are no prerequisites or exclusions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setGameScoreA

Set the score of the specified user in a game message. On success, if the message is not an inline message, the Message is returned, otherwise True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoPass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters.
scoreYesNew score, must be non-negative
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat.
user_idYesUser identifier
message_idNoRequired if inline_message_id is not specified. Identifier of the sent message.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
disable_edit_messageNoPass True if the game message should not be automatically edited to include the current scoreboard.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses conditional return types (Message vs True depending on inline/non-inline message) and the specific error condition tied to force. This is genuinely useful operational detail beyond a bare 'set score' statement, though it omits prerequisites like bot ownership of the game.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler. The core purpose is front-loaded in the first sentence, followed by return behavior and error condition. Every sentence earns its place and no information is repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema and no annotations, the description is nearly complete: it explains what the return value will be (covering the missing output schema gap), when an error occurs, and the schema covers all parameter semantics including the conditional chat_id/message_id vs inline_message_id requirement. Minor gap: no mention of prerequisites (bot must be the game creator) or that this mutates persistent score state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — every parameter (force, score, chat_id, user_id, message_id, inline_message_id, disable_edit_message) has a meaningful description. Per the baseline rule, the description need not repeat parameter info. The description's mention of the force/error interplay modestly complements the schema but doesn't add new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: 'Set the score of the specified user in a game message.' This clearly distinguishes it from siblings like getGameHighScores (which retrieves scores) and sendGame (which creates a game message). No ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context — this operates on an existing game message and explains when force matters (error if score is not greater unless force=True). However, it never explicitly names alternatives or states when-not-to-use, such as pointing to getGameHighScores for reading scores. Usage guidance is adequate but left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setMessageReactionA

Change the chosen reactions on a message. Service messages cannot be reacted to. Bots cannot use paid reactions. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
is_bigNoPass True to set the reaction with a big animation.
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
reactionNoA JSON-serialized list of ReactionType objects to set on the message. Currently, bots can set up to one reaction per message. Custom emoji reactions can be used if already present on the message or allowed by chat administrators.
message_idYesIdentifier of the target message. If the message belongs to a media group, the reaction is set to the first non-deleted message in the group instead.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It discloses the mutation, two important fail conditions, and the boolean return. It does not cover every edge case, such as all message-type exclusions, but the core behavioral profile is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, high-value sentences with the action front-loaded. Each sentence earns its place: the core operation, key restrictions, and the return value. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the fully described schema and the return value stated in the description, an agent has enough information to invoke the tool correctly. A few edge-case exclusions are not spelled out, which keeps it just short of perfect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the description does not need to repeat parameter-level details. It reinforces that the operation targets reactions on a message but adds no meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise action ('change') and a specific resource ('chosen reactions on a message'), which clearly distinguishes it from message-mutation siblings like editMessageText or deleteMessage. It also communicates the success return, helping an agent predict the outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete when-not conditions: service messages cannot be reacted to and bots cannot use paid reactions. It does not explicitly name alternative endpoints, but the method is unique enough among siblings that these exclusions are sufficient to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setMyCommandsA

Change the list of bot commands. Returns True on success. At most 100 commands can be specified.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoScope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.
commandsYesA list of bot commands to set. Each command object must have 'command' (1-32 chars) and 'description' (1-256 chars).
language_codeNoTwo-letter ISO 639-1 language code. If empty, commands apply to all users from the given scope.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the behavioral burden. It discloses that the operation returns True on success and enforces a maximum of 100 commands, which is useful. It does not, however, clarify that this replaces the existing command list for the given scope, nor explain consequences for previously set commands.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no redundant wording. It states the core action first, then immediately provides the return value and the key limit. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the detailed input schema and the simple return value, the description is mostly complete: it covers return behavior and an important constraint. The main missing context is the replacement semantics—whether setMyCommands overwrites the existing command list for the target scope. That omission is notable but not fatal given the tool name and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well documented with detailed descriptions. The description adds extra value by stating the critical constraint that at most 100 commands can be specified, which is not present as maxItems in the schema. This strengthens the agent's understanding of the commands array parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Change the list of bot commands.' It also specifies the resource (bot commands) and adds a return-value detail ('Returns True on success'). This is specific enough to distinguish it from siblings like getMyCommands and deleteMyCommands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool—when the bot command list needs to be changed—and the sibling context includes getMyCommands/deleteMyCommands. However, it does not explicitly mention alternatives or say when to prefer deleteMyCommands over setMyCommands, such as when removing all commands. The usage context is clear but not explicitly contrasted with related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setMyDefaultAdministratorRightsA

Change the default administrator rights requested when adding the bot as administrator to groups or channels. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
rightsNoObject describing new default administrator rights. If not specified, clears default rights.
for_channelsNoPass True to change the default administrator rights for channels. Otherwise, changes rights for groups and supergroups.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the disclosure burden. It does disclose the mutating effect, the timing (applies at admin-add time), and the return value ('Returns True on success'), which is valuable given there is no output schema. Notable gaps: it does not state that omitting 'rights' clears defaults (left to the schema) or that existing admin memberships are unaffected by the change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler: the core action leads the description and the return value is stated separately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a rich 100%-covered nested schema and no output schema, the description covers the high-level behavior plus the return value, which is mostly sufficient for correct invocation. Minor gap: it never routes the agent to getMyDefaultAdministratorRights or notes that this is a global bot-level setting distinct from per-chat promotion calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both 'rights' (including the clear-when-omitted behavior) and 'for_channels' are fully documented in the schema. The tool description adds no parameter-level information beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') and a precise resource ('default administrator rights requested when adding the bot as administrator to groups or channels'). This scope self-evidently distinguishes it from the sibling getter getMyDefaultAdministratorRights (set vs get) and from per-member admin tools like promoteChatMember or setChatAdministratorCustomTitle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'requested when adding the bot as administrator to groups or channels' implies the scenario in which the setting applies (future admin additions, not per-chat moderation), giving the agent usable context. However, there is no explicit when-to-use/when-not-to-use guidance and no reference to the sibling getMyDefaultAdministratorRights for verifying current defaults.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setMyDescriptionA

Change the bot's description, shown in empty chats and shared via bot links. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew bot description; 0-512 characters. Pass empty string to remove the dedicated description for the given language.
language_codeNoTwo-letter ISO 639-1 language code. If empty, the description applies to all users without a dedicated description.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the behavioral disclosure burden. It clearly indicates this is a mutating operation ('Change') and provides the success return value ('Returns True on success'). It does not mention edge behaviors like clearing the description via an empty string, but the schema already documents that parameter-level behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence that front-loads the core action and purpose, then adds the return value. Every word earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter with no output schema and only two well-documented parameters, the description is largely complete. It explains what is being changed, where the value is shown, and what the caller can expect on success. A minor gap is the lack of explicit guidance on when to use localized vs default descriptions, but the schema already covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters and their semantics. The tool description adds no additional parameter-level meaning beyond a generic reference to 'description', so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') and names the exact resource ('the bot's description'). It also clarifies where this description appears ('shown in empty chats and shared via bot links'), which distinguishes it from related siblings like setMyName and setMyShortDescription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case by explaining where the description is displayed, but it does not explicitly state when to use this tool vs alternatives like setMyShortDescription or when a dedicated language description is appropriate. The context is inferable from sibling names and schema, but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setMyNameA

Change the bot's name. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew bot name; 0-64 characters. Pass empty string to remove the dedicated name for the given language.
language_codeNoTwo-letter ISO 639-1 language code. If empty, the name applies to all users without a dedicated name.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the mutation effect ('Change') and the return value ('Returns True on success'), but does not mention side effects such as overwriting an existing name, removal behavior when passing an empty string, or any permission requirements. This is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The primary action is front-loaded, and the return value is included as a useful second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter with fully documented optional parameters, the description plus schema provides enough information to call the tool correctly. The return behavior is stated since there is no output schema. It could be more complete by explicitly routing away from sibling setters, but nothing essential is missing for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents the name and language_code parameters. The description adds no additional parameter-level meaning beyond 'bot's name,' which matches the baseline expectation when the schema already handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource, "Change the bot's name," which clearly identifies what the tool does and distinguishes it from siblings like setMyDescription, setMyShortDescription, and getMyName. The action is unambiguous and directly tied to the tool's name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: call this to change the bot's name. However, it does not explicitly state when to prefer this over related tools such as setMyDescription or setMyShortDescription, nor does it mention the localization behavior that the parameters support. Usage context is present but only by inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setMyShortDescriptionA

Change the bot's short description, shown on the bot's profile page and shared alongside bot links. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
language_codeNoTwo-letter ISO 639-1 language code. If empty, the short description applies to all users without a dedicated one.
short_descriptionNoNew short description; 0-120 characters. Pass empty string to remove the dedicated short description for the given language.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It clearly identifies the operation as a mutation ('Change') and states the success return value, which is useful. However, it does not mention side effects such as overwriting an existing short description or the removal behavior associated with an empty string, though some of that is captured in the parameter schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The core action and target are front-loaded, and the added details about where the text appears and the success return value are both relevant and economically expressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with full schema coverage, the description is nearly complete: it names the resource, states the effect, and describes the return value despite there being no output schema. It lacks an explicit pointer to the closely related setMyDescription, but that omission is more of a routing nicety than a critical completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents language_code and short_description, including the empty-string removal behavior. The description adds only the display context of the short description and does not need to repeat parameter details. This matches the baseline score for fully documented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') and a specific resource ('the bot's short description'), and adds useful context about where it appears (profile page, alongside links). This makes the tool's purpose immediately clear and distinguishes it in effect from the similarly named setMyDescription, though it does not explicitly name that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the operation does but gives no explicit when-to-use guidance or comparison to alternatives like setMyDescription or getMyShortDescription. An agent must infer from the purpose that this is the right call when the bot's short description should be changed, so usage direction is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setPassportDataErrorsA

Informs a user that some of the Telegram Passport elements they provided contain errors. The user will not be able to re-submit their Passport to you until the errors are fixed. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorsYesA JSON-serialized array describing the errors. Use the appropriate PassportElementError type based on the error source.
user_idYesUnique identifier of the target user.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the main behavior, the blocking side effect on re-submission, and the success return value ('Returns True on success'). It does not detail failure behavior, but the disclosed traits are substantially informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the purpose, and adds only the essential behavioral consequence and return value. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with a very detailed schema and no output schema, the description covers purpose, behavioral consequence, and return value. It could mention failure behavior or when to trigger it relative to the user's Passport submission flow, but the core context is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents both 'user_id' and the detailed nested 'errors' structure. The description adds no extra parameter-specific meaning, which is acceptable at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Informs'), the resource ('Telegram Passport elements'), and the specific purpose (reporting errors). It is immediately distinguishable from all sibling tools, none of which handle Passport error reporting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context: when a user has provided Passport elements that contain errors, and notes the consequence that the user cannot re-submit until fixed. It does not name explicit alternatives, but no sibling tool competes for this task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setStickerEmojiListA

Change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
stickerYesFile identifier of the sticker.
emoji_listYesA list of 1-20 emoji associated with the sticker.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It states that this is a mutation ('Change'), identifies the ownership precondition, and discloses the return value ('Returns True on success'). This is solid behavior disclosure for a simple setter, though it does not mention potential failure conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The core action is front-loaded, followed by the key constraint and return behavior. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity mutation with full schema coverage and no output schema, the description is complete: it states the operation, the target object, the ownership prerequisite, and the success return value. An agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the schema already explains both parameters well. The description adds no additional parameter-level semantics beyond what the schema provides, so it does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('Change the list of emoji'), a clear resource ('regular or custom emoji sticker'), and the domain constraint ('sticker set created by the bot'). This clearly distinguishes it from sibling tools like setStickerKeywords or setStickerMaskPosition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is stated directly: changing which emoji are assigned to a sticker. It also gives a key prerequisite (the sticker must belong to a bot-created set). It does not explicitly name alternatives or say when not to use it, but the context is clear enough for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setStickerKeywordsA

Change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
stickerYesFile identifier of the sticker.
keywordsNoA list of 0-20 search keywords for the sticker with total length of up to 64 characters.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral transparency burden. It discloses that the operation mutates an existing sticker, requires bot ownership of the sticker set, and returns True on success. However, it omits failure behavior and the important default behavior when 'keywords' is omitted (e.g., whether existing keywords are cleared).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: action first, then ownership prerequisite, then return value. Each sentence contributes useful information without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose, a key prerequisite, and the success return value, but with no output schema and no annotations, it leaves notable gaps such as what happens on failure and the effect of omitting the optional 'keywords' parameter. It is adequate for a simple tool but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters, including the 0-20 keyword limit and 64-character total length. The description does not add meaning beyond naming 'search keywords', 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Change search keywords') and the resource ('a regular or custom emoji sticker'), which is specific enough to distinguish it from sibling sticker-editing tools by attribute. However, it does not explicitly name or contrast any sibling tools, so it stops short of the strongest differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it applies to stickers belonging to a sticker set created by the bot, which is an important precondition. It does not explicitly mention alternatives or when not to use this tool, but the action and target resource make the primary use case evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setStickerMaskPositionA

Change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
stickerYesFile identifier of the sticker.
mask_positionNoA MaskPosition object with the position where the mask should be placed on faces. Contains: point ("forehead", "eyes", "mouth", or "chin"), x_shift, y_shift, scale. Omit the parameter to remove the mask position.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses the ownership requirement and states that success returns True, which are useful. However, it does not describe side effects such as replacing an existing mask position or the fact that omitting mask_position removes it, though the schema does cover the latter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence with no wasted words. It covers the operation, the key constraint, and the success return value in a compact way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with 100% schema coverage and no output schema, the description plus schema is largely sufficient. It adds the critical ownership prerequisite and success signal. It is slightly light on failure conditions and explicit removal behavior, but those are either implied or covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no extra parameter-level meaning beyond restating that the tool changes mask position, which matches the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') with a precise resource ('mask position of a mask sticker'). This clearly distinguishes it from the sibling tool setStickerPositionInSet, which changes a sticker's order within a set, not its mask position.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear prerequisite: the sticker must belong to a sticker set created by the bot. It also implies the tool is only for mask stickers, which helps an agent decide whether this tool applies. It does not explicitly mention alternatives or exclusions, but the context is strong enough for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setStickerPositionInSetA

Move a sticker in a set created by the bot to a specific position. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
stickerYesFile identifier of the sticker.
positionYesNew sticker position in the set, zero-based.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the mutation ('Move'), the operational scope constraint ('created by the bot'), and the success return value ('Returns True on success'), which is useful since no output schema exists. However, it does not mention failure behavior, error conditions, or the side effect that reordering shifts the positions of other stickers in the set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: the verb and core action are front-loaded, followed by the scoping constraint and the return value. Every word earns its place, and the description is appropriately sized for a simple two-parameter operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool, the description is largely complete: the schema documents both parameters fully, the description states the precondition (bot-created set), and the return value is disclosed despite the absence of an output schema. Minor gaps—failure semantics and positional side effects on other stickers—are the only missing context, and they don't significantly hamper correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (sticker file identifier and zero-based position with minimum 0) are already fully documented in the schema. The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Move), resource (a sticker in a sticker set), and objective (to a specific position), which unambiguously describes a reordering operation. This clearly distinguishes it from sibling tools like addStickerToSet, deleteStickerFromSet, replaceStickerInSet, and setStickerEmojiList, which all perform different actions on stickers. The added scope constraint 'created by the bot' further narrows the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an important precondition—the set must be created by the bot—which gives the agent a condition for when this tool applies. However, it offers no explicit when-not-to-use guidance or routing to alternatives, which matters given the many sibling sticker tools with overlapping resources. Usage context is implied rather than stated as explicit selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setStickerSetThumbnailA

Set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker set name.
formatYesFormat of the thumbnail: "static" for .WEBP or .PNG, "animated" for .TGS, "video" for .WEBM.
user_idYesUser identifier of the sticker set owner.
thumbnailNoA .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size, or a .WEBM video with the thumbnail up to 32 kilobytes in size. Pass a file_id, HTTP URL, or upload a new file. Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It adds a useful constraint ('format of the thumbnail file must match the format of the stickers') and the return contract ('Returns True on success'), which matters given there is no output schema. But it doesn't disclose the mutation's prerequisites (bot must own the sticker set) or side effects of dropping the thumbnail, which the schema only partially covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler; the core purpose and scope are front-loaded, and the format constraint plus return value each earn their place given the lack of an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter mutation with a rich schema, the description covers the essentials: what it does, its scope, the format constraint, and the return value. The notable gaps are the missing ownership/permission prerequisite and the absence of an explicit pointer to setCustomEmojiStickerSetThumbnail as the alternative for custom emoji sets.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema's thumbnail and format descriptions already list size limits, dimensions, allowed extensions, and upload restrictions. The description contributes only the cross-parameter rule that thumbnail format must match the sticker format, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource construction ('Set the thumbnail of a regular or mask sticker set') that names the exact object being modified. The qualifier 'regular or mask' also distinguishes it from the sibling setCustomEmojiStickerSetThumbnail, which covers custom emoji sets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'regular or mask' scoping provides clear context that rules out custom emoji sticker sets, for which the sibling setCustomEmojiStickerSetThumbnail exists. However, it never names that alternative explicitly nor states any when-not-to-use conditions, so routing is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setStickerSetTitleA

Set the title of a created sticker set. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker set name.
titleYesSticker set title, 1-64 characters.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the operation succeeds with a True return and implies mutation, but it does not mention ownership requirements, error cases, or that the existing title is replaced. This is honest but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise, front-loaded sentence with no filler. The additional sentence about returning True on success is useful and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter setter with a straightforward boolean return, the description covers the purpose and success behavior. It lacks an explicit note that the sticker set must be owned by the bot, though 'created sticker set' partially implies this. Overall, it is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters and the title length constraint. The description adds little parameter-level meaning beyond suggesting the sticker set must already be created, which is a minor enhancement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and an explicit resource: 'Set the title of a created sticker set.' This immediately distinguishes it from sibling sticker-set mutators like setStickerSetThumbnail, setStickerEmojiList, and setStickerKeywords, as well as from setChatTitle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'created sticker set' conveys that the set must already exist before calling this method, which is the key usage condition. It does not explicitly name alternatives or state exclusions, but the context makes the post-creation, title-specific use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setUserEmojiStatusA

Change the emoji status for a user who authorized the bot via Mini App method requestEmojiStatusAccess. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUnique identifier of the target user.
emoji_status_custom_emoji_idNoCustom emoji identifier of the emoji status to set. Pass empty string to remove the status.
emoji_status_expiration_dateNoExpiration date of the emoji status, if any (Unix timestamp).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It declares that this is a mutating operation, names the authorization requirement, and states the success return value (True). It does not cover failure behavior, but the key behavioral context is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and the critical authorization precondition, then adds the useful success return value. There is no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a low-complexity tool: the schema documents all parameters, the non-obvious authorization requirement is called out, and the return value is stated since no output schema exists. It could mention explicit failure behavior, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% parameter coverage, each parameter already has a meaningful description, and the tool description does not add semantic details beyond what the schema states. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Change') and a clear resource ('emoji status for a user'), and it uniquely identifies the target population via the Mini App requestEmojiStatusAccess authorization. This makes it distinguishable from all sibling tools even without naming an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the required precondition: the target user must have authorized the bot through requestEmojiStatusAccess. This tells the agent when this tool is applicable, though it does not explicitly mention alternatives or exclusion cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setWebhookA

Specify a URL to receive incoming updates via webhook. Use deleteWebhook to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS URL to send updates to. Use empty string to remove webhook.
ip_addressNoFixed IP address to send webhook requests instead of resolving URL.
certificateNoUpload your public key certificate (for self-signed certificates).
secret_tokenNoSecret token (1-256 chars) sent in X-Telegram-Bot-Api-Secret-Token header.
allowed_updatesNoList of update types to receive. E.g., ["message", "callback_query"]
max_connectionsNoMaximum allowed simultaneous HTTPS connections (1-100). Defaults to 40.
drop_pending_updatesNoPass True to drop all pending updates.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the basic purpose. It does not mention that calling this overwrites any existing webhook, that an empty URL also removes the webhook, or that webhook mode conflicts with getUpdates polling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The main purpose is front-loaded, and the sibling alternative is stated economically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a webhook configuration tool with no annotations and no output schema, the description is too thin. It omits important lifecycle context such as replacing an existing webhook, verification via getWebhookInfo, and the interaction with getUpdates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all seven parameters. The description adds no extra parameter semantics, which is acceptable under the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Specify a URL') and resource ('receive incoming updates via webhook'), making the tool's purpose immediately clear. It also distinguishes itself from deleteWebhook by explicitly noting that removal is handled there.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool when you want to receive updates via webhook rather than polling. It names deleteWebhook as the alternative for removal, though it does not explicitly contrast with getUpdates or other update-delivery options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stopMessageLiveLocationA

Stop updating a live location message before live_period expires. Returns the edited Message on success, or True if the message is an inline message.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idNoRequired if inline_message_id is not specified. Identifier of the message with live location to stop.
reply_markupNoA JSON-serialized object for an inline keyboard.
inline_message_idNoRequired if chat_id and message_id are not specified. Identifier of the inline message.
business_connection_idNoUnique identifier of the business connection on behalf of which the message was sent.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It explains the action and the return value ('edited Message on success, or True if the message is an inline message'), which is useful. It does not discuss permissions or failure cases, but for this API method the provided behavior is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The core action is front-loaded, and the return behavior is stated efficiently in the second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the purpose, the timing condition, and the return behavior. Since the schema fully documents the parameters and their conditional requirements, nothing critical is missing for an agent to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter coverage, so the schema already documents all five parameters. The description adds no parameter-specific meaning beyond the schema, matching the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Stop updating') and a clear resource ('a live location message'), and it adds the timing condition 'before live_period expires.' This clearly distinguishes it from sibling tools like editMessageLiveLocation and stopPoll.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before live_period expires' gives clear context for when the tool is appropriate: when you need to stop the live location early. It does not explicitly name alternatives or state when not to use it, so it falls just short of full explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stopPollA

Stop a poll which was sent by the bot. Returns the stopped Poll on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername).
message_idYesIdentifier of the original message with the poll.
reply_markupNoA JSON-serialized object for a new message inline keyboard.
business_connection_idNoUnique identifier of the business connection on behalf of which the message to be edited was sent.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the behavioral disclosure burden. It does state the mutating action and the success return value ('Returns the stopped Poll'), but it does not disclose side effects like irreversibility or that voting ends permanently.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The action is front-loaded, and the return-value sentence is useful because no output schema is provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with the 100%-covered input schema, is adequate for a basic invocation. However, without annotations it is missing behavioral context such as whether stopping is irreversible and what happens to the poll's results, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The tool description adds no parameter-specific meaning, which is acceptable because the structured parameter descriptions are sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Stop'), a specific resource ('a poll'), and a constraint ('which was sent by the bot'). This cleanly distinguishes it from siblings like sendPoll and other message-editing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: call this when you want to end a poll the bot previously sent. However, it does not explicitly mention alternatives, such as sendPoll for creating polls, or state when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transferBusinessAccountStarsA

Transfers Telegram Stars from a managed business account to the bot's balance. The Stars can then be withdrawn by the bot. Requires the can_transfer_stars business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
star_countYesNumber of Telegram Stars to transfer; 1-10000
business_connection_idYesUnique identifier of the business connection

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the required permission ('Requires the can_transfer_stars business bot right'), the consequence ('can then be withdrawn by the bot'), and the success return ('Returns True on success'). It does not address failure modes, reversibility, or edge-case behavior, but covers the key operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each adding distinct value: the action, the post-transfer consequence, and the required permission. There is no redundant wording and the primary action is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema tool, the description covers purpose, permission, and success return. It does not explain error conditions or provide comparison to related balance tools, but the essential information needed to invoke it correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: star_count is described as '1-10000' and business_connection_id as 'unique identifier of the business connection'. The description adds no additional parameter meaning or usage detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Transfers Telegram Stars from a managed business account to the bot's balance.' This clearly distinguishes it from sibling tools like transferGift or getBusinessAccountStarBalance, since the action, source, and destination are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by the description: transfer Stars out of a business account to make them withdrawable. However, there is no explicit 'when to use' or 'when not to use' statement, and no alternatives are named or compared, so usage guidance is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transferGiftA

Transfers an owned unique gift to another user. Requires the can_transfer_and_upgrade_gifts business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
star_countNoAmount of Telegram Stars that will be paid for the transfer from the business account balance. If positive, the gift transfer is a paid operation and the gift cannot be sold. If the gift was paid for, then same amount must be paid for the transfer, otherwise the request will fail with a BAD_REQUEST error.
owned_gift_idYesUnique identifier of the gift that should be transferred.
new_owner_chat_idYesUnique identifier of the chat which will own the gift.
business_connection_idYesUnique identifier of the business connection on behalf of which the gift will be transferred.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It adds the permission requirement and return value, which is meaningful context. However, it does not disclose the consequential nature of the operation (the original owner loses the gift) or the star_count constraint behavior (paid transfers cannot be sold and must match the original amount) — though part of that lives in the schema, the irreversible ownership change is left unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler: the core action is front-loaded first, the permission prerequisite second, and the return contract third. Every sentence earns its place, and the most decision-relevant information appears immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential elements an agent needs: what the tool does, its permission requirement, and its return contract ('Returns True on success'), which matters since no output schema exists. The star_count constraints are already fully documented in the schema, so the description need not repeat them. A slightly fuller warning about side effects would push this to a 5, but for a 4-parameter scalar tool this is largely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. All four parameters are already documented in the schema, including the nuanced star_count behavior. The description adds no param-specific meaning beyond the schema — it does not, for example, clarify how new_owner_chat_id relates to the transfer semantics beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Transfers an owned unique gift to another user.' The phrase 'owned unique gift' clearly distinguishes this from sendGift (gifting a new/unowned item) and transferBusinessAccountStars (transferring stars, not gifts). However, it never explicitly names or contrasts any sibling, so differentiation is left to inference rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides one concrete usage condition: 'Requires the can_transfer_and_upgrade_gifts business bot right,' which communicates a prerequisite and implies this is a business-account operation. But it offers no guidance on when to choose transferGift over related siblings like sendGift or convertGiftToStars, and no when-not-to-use or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unbanChatMemberA

Unban a previously banned user in a supergroup or channel. The user will NOT return to the group automatically but will be able to join via link, etc. The bot must be an administrator. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup/channel (in the format @channelusername)
user_idYesUnique identifier of the target user
only_if_bannedNoDo nothing if the user is not banned

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the non-obvious post-condition (user will not automatically return), the admin prerequisite, and the success return value. It does not cover failure cases, but the key behavioral details are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences deliver purpose, scope, behavioral consequence, prerequisite, and return value with no redundancy. The most important information is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter tool with no output schema and no annotations, the description covers action, scope, prerequisite, key behavior, and return value. It is slightly incomplete in that it does not address error scenarios or differentiate from unbanChatSenderChat, but the core calling context is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with 100% coverage, including the optional only_if_banned flag. The description adds no parameter-specific nuance beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Unban'), a precise object ('previously banned user'), and the applicable scope ('supergroup or channel'). It is easy to distinguish from sibling tools like banChatMember or unbanChatSenderChat based on this wording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides relevant context: the bot must be an administrator and the user will not return automatically. However, it does not explicitly mention alternatives or state when to use this tool instead of related tools like unbanChatSenderChat, so usage guidance is mostly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unbanChatSenderChatA

Unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator and must have the appropriate administrator rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target supergroup/channel (in the format @channelusername)
sender_chat_idYesUnique identifier of the target sender chat

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It communicates the administrative permission requirement and the success return value ('Returns True on success'), which is useful. However, it does not mention failure behavior, idempotency, or side effects beyond unbanning, leaving some ambiguity for a tool with no annotation safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The core action is front-loaded, and the necessary prerequisite and return value are stated efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter action, the description covers the essential context: target scope, admin requirement, and success return. It could optionally clarify that this is specifically for sender chats as opposed to regular members, but the wording already implies this. Overall, adequate for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already well-documented in the schema. The description adds no additional parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate because the schema fully handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Unban') and a clear resource ('previously banned channel chat in a supergroup or channel'), which precisely identifies what the tool does. It also naturally distinguishes it from sibling tools like unbanChatMember by explicitly scoping it to channel chats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: the action applies to banned channel chats in supergroups or channels, and it states the prerequisite that the bot must be an administrator with appropriate rights. It does not explicitly name alternatives or exclusions, but the context is sufficient for an agent to understand when 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.

unhideGeneralForumTopicA

Unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator with can_manage_topics rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It discloses the permission requirement and the return contract ('Returns True on success'), which are the behavioral facts most likely to affect successful invocation. It does not describe error behavior when the topic is already visible, but for a single-parameter boolean-returning method this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler. The action is front-loaded first, followed by the permission gate, then the return value — each sentence earns its place and the structure reads naturally top-to-bottom.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one fully-documented parameter and no output schema, the description covers the action, the authorization precondition, and the success return. The sibling list provides sufficient naming context to distinguish unhide from reopen/close/hide, so nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — chat_id is fully documented in the schema ('Unique identifier for the target supergroup or username in the format @supergroupusername'). The description adds no parameter-level detail beyond the action scope, so the baseline of 3 applies since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Unhide the General topic in a forum supergroup chat.' It clearly distinguishes itself from its direct sibling hideGeneralForumTopic (the inverse operation) and from closeGeneralForumTopic/reopenGeneralForumTopic, which target a different topic state. An agent can identify what this tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names the key precondition — 'The bot must be an administrator with can_manage_topics rights' — which tells the agent when the call is valid. It does not explicitly contrast this tool with alternatives like hideGeneralForumTopic or closeGeneralForumTopic, so the when-not guidance is implied by the verb rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpinAllChatMessagesA

Clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator with can_pin_messages rights in a supergroup or can_edit_messages rights in a channel. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it states the prerequisite permissions and the success return value. It does not mention all side-effect semantics, such as messages remaining in the chat, but the core behavior and auth requirements are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. It front-loads the primary behavior, then adds the necessary permission context and success return, making every sentence valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is complete: it explains the action, permission prerequisites, and return value. Nothing essential is missing for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents chat_id. The description adds no parameter-level detail, which matches the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('Clear the list of pinned messages in a chat') with a specific verb and resource. It is naturally distinguished from sibling tools like unpinChatMessage or unpinAllForumTopicMessages by referring to the entire chat-level pinned-message list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context by specifying the required administrator rights for non-private chats. It does not explicitly name alternatives or state when not to use the tool, but the conditions provided are sufficient for an agent to determine applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpinAllForumTopicMessagesB

Clear the list of pinned messages in a forum topic. The bot must be an administrator with can_pin_messages rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username (in the format @supergroupusername)
message_thread_idYesUnique identifier for the target message thread of the forum topic

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It discloses the mutating nature of the operation ('Clear'), the required permission level, and the success return value ('Returns True on success'). However, it does not describe failure behavior (e.g., what happens when the bot lacks rights) or any side effects, leaving the behavioral picture incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: the action is front-loaded, followed by the permission prerequisite and the return value. No fluff or repetition of schema content. The standalone fragment 'Returns True on success' is slightly terse in structure but still informative, keeping this just shy of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with no output schema and no annotations, the description covers the essentials: action, scope, permission requirement, and return value. The notable gaps are the lack of differentiation from the similarly named sibling unpinAllGeneralForumTopicMessages and the absence of failure-mode details, which an agent would need to handle errors correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both chat_id and message_thread_id fully documented in the input schema. The description adds no parameter-specific detail beyond what the schema already provides, so the baseline 3 for high schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Clear') and a specific resource ('the list of pinned messages in a forum topic'), making the operation unambiguous. It distinguishes from broader tools like unpinAllChatMessages via the 'forum topic' scoping, though it does not explicitly differentiate from the near-identical sibling unpinAllGeneralForumTopicMessages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear prerequisite ('bot must be an administrator with can_pin_messages rights'), which frames when the tool may be invoked. However, it offers no guidance on when to choose this tool over the closely related unpinAllGeneralForumTopicMessages, unpinAllChatMessages, or unpinChatMessage, nor any exclusion criteria. Usage conditions are otherwise implied by the name and scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpinAllGeneralForumTopicMessagesA

Clear the list of pinned messages in a General forum topic. The bot must be an administrator with can_pin_messages rights. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target supergroup or username (in the format @supergroupusername)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the destructive action, the required permission, and the return value. It could additionally mention error behavior, but the essential behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, followed by the permission requirement and the return value. Every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple tool with one parameter and no output schema. The description covers the action, target scope, required rights, and return value. Nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents chat_id. The description does not add parameter-specific detail, but it does not need to because the schema is sufficient. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Clear the list of pinned messages') and the specific target resource ('in a General forum topic'). This distinguishes it from the sibling unpinAllForumTopicMessages, which applies to regular forum topics, and from unpinAllChatMessages, which applies to entire chats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: it targets only a General forum topic and requires the bot to be an administrator with can_pin_messages rights. It does not explicitly name the alternative for non-General forum topics, but the context is unambiguous enough for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpinChatMessageA

Remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator with can_pin_messages rights in a supergroup or can_edit_messages rights in a channel. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idNoIdentifier of the message to unpin. Required if business_connection_id is specified. If not specified, the most recent pinned message (by sending date) will be unpinned.
business_connection_idNoUnique identifier of the business connection on behalf of which the message will be unpinned

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It does well by mentioning the removal side effect, the permission requirements, and the 'Returns True on success' outcome. It could additionally note behavior when message_id is omitted, but that is already covered in the input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action in the first sentence and essential permission/return details in the second. No filler or redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three parameters, full schema coverage, and no output schema, the description is largely sufficient. It covers the action, permissions, and return value. Naming unpinAllChatMessages as the bulk alternative would make it fully complete, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds useful permission context for chat_id but does not meaningfully expand on message_id or business_connection_id beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise action: 'Remove a message from the list of pinned messages in a chat.' It clearly identifies the resource being acted on and distinguishes this tool from related siblings like unpinAllChatMessages and pinChatMessage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context about when the tool can be used, including the administrator rights required for non-private chats. However, it does not explicitly mention alternatives such as unpinAllChatMessages for removing all pins at once, so the when-not-to-use guidance is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upgradeGiftA

Upgrades a given regular gift to a unique gift. Requires the can_transfer_and_upgrade_gifts business bot right. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
star_countNoAmount of Telegram Stars that will be paid for the upgrade from the business account balance. If the gift cannot be upgraded directly, the upgrade will be performed as a transfer to the current user with an optional payment for the transfer.
owned_gift_idYesUnique identifier of the regular gift that should be upgraded to a unique one.
keep_original_detailsNoPass True to keep the original gift text, sender, and receiver in the upgraded gift.
business_connection_idYesUnique identifier of the business connection on behalf of which the gift will be upgraded.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description itself discloses the auth requirement and the True-on-success result. However, it does not mention important side effects such as the consumption of the regular gift, the payment from the business balance, or whether the upgrade is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, each earning its place: purpose, required permission, and return behavior. There is no filler or redundant repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose, permission requirement, and success return, and the schema covers parameter details. However, with no annotations and no output schema, it leaves side effects and alternative-selection guidance unaddressed, making it minimally sufficient rather than fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all four parameters with individual descriptions, so schema coverage is 100%. The description adds no extra parameter-level meaning beyond identifying the gift as regular, keeping it at the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the exact transformation ('Upgrades a given regular gift to a unique gift') with a specific verb and resource. This clearly distinguishes it from sibling gift operations like transferGift or convertGiftToStars.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a useful precondition: the can_transfer_and_upgrade_gifts business bot right. However, it does not explicitly name alternatives or say when not to use this tool, so usage context is mostly implied by the tool name and purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uploadStickerFileA

Upload a file with a sticker for later use in the createNewStickerSet, addStickerToSet, or replaceStickerInSet methods. Returns the uploaded File on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
stickerYesA file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements.
user_idYesUser identifier of sticker file owner.
sticker_formatYesFormat of the sticker: "static" for .WEBP or .PNG, "animated" for .TGS, "video" for .WEBM.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It conveys that this is a state-changing upload ('Upload... for later use' implying server-side persistence) and discloses the success return value. However, it does not cover failure modes, side effects (the file is stored and tied to the owning user), or prerequisites, which an agent would need to anticipate errors when invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler. The first sentence front-loads the verb, object, and purpose; the second covers the return value. Nothing repeats schema content or the tool's name, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter upload helper with no output schema, the description is largely complete: it states purpose, names the consuming methods so the agent understands the file_id handoff workflow, covers the return value, and is backed by a fully-described schema. The main gap is failure-mode context and explicit instructions that the returned file_id is the 'sticker' input for the named methods, but these are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: all three parameters (sticker, user_id, sticker_format) carry thorough descriptions including format mapping and a technical-requirements link. The description adds workflow context but no parameter-level semantics beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Upload a file with a sticker') and clarifies the purpose ('for later use in the createNewStickerSet, addStickerToSet, or replaceStickerInSet methods'). Naming the three consuming methods distinguishes this preparatory upload from siblings like sendSticker, getFile, and the set-manipulation tools. The return value ('Returns the uploaded File on success') is also disclosed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the workflow context explicit: this tool is a preparatory step before exactly three named methods. It does not explicitly state when-not-to-use or name alternatives (e.g., 'use sendSticker to deliver a sticker to a chat'), so it falls just short of full exclusion guidance, but the named consumers give an agent strong routing signals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verifyChatB

Verifies a chat on behalf of the organization which is represented by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idYesUnique identifier for the target chat or username of the target channel (format: @channelusername). The chat must be a supergroup or channel. Channel direct messages chats cannot be verified.
custom_descriptionNoCustom description for the verification; 0-70 characters. Must be empty if the organization isn't allowed to provide a custom verification description.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state the success return ('Returns True on success'), but it omits failure semantics, the persistent state-changing nature of verification, reversibility, and permission requirements. For a write/stateful operation, this is a thin disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, roughly 20 words, with the core action front-loaded and the return value stated in the second sentence. Every word earns its place; there is no fluff and no redundancy with the input schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool (2 params, fully covered by schema, no output schema), the description covers the basic what and the success return. But with no annotations and no output schema, it leaves notable gaps: what happens on failure, and the fact that verification persists and can be undone via removeChatVerification. Adequate for basic invocation, but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are richly documented in the schema itself (chat_id includes format and chat-type constraints; custom_description includes length limits and the org-permission condition). The description adds no parameter-level information, so the baseline 3 applies because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Verifies') and a clear resource ('a chat'), and clarifies the actor context ('on behalf of the organization which is represented by the bot'). This is distinct enough for an agent to tell it apart from the sibling verifyUser. However, it never explicitly names or contrasts with siblings like verifyUser/removeChatVerification, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'on behalf of the organization' implies the precondition that the bot must represent an organization, which is useful usage context. But the description offers no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as verifyUser (for users) or removeChatVerification (for undoing this action). Usage guidance is only implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verifyUserA

Verifies a user on behalf of the organization which is represented by the bot. Returns True on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUnique identifier of the target user.
custom_descriptionNoCustom description for the verification; 0-70 characters. Must be empty if the organization isn't allowed to provide a custom verification description.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the action and the return value ('Returns True on success') but does not disclose side effects, failure conditions, permissions, or reversibility (e.g., that verification can later be removed via removeUserVerification). For a mutation tool, this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler or repetition. The primary action is front-loaded, and the return value is stated efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description plus schema is nearly complete. It states the return value and the organizational context. It could be improved by noting the relationship to removeUserVerification or required permissions, but those are not essential for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both user_id and custom_description already documented in the input schema. The description adds no parameter-level detail, but the baseline of 3 applies because the schema does the necessary work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Verifies'), a clear resource ('a user'), and the acting entity ('the organization which is represented by the bot'). This distinguishes it from sibling tools like verifyChat and removeUserVerification, so an agent can identify the correct operation without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: verification is performed on behalf of the organization represented by the bot, which tells the agent when this tool applies. It does not explicitly name alternatives or exclusion criteria, but the 'user' versus 'chat' distinction is evident enough for selecting the right tool.

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. Dates show when Glama detected each change.

  1. 161 tool updatesv1.0.0
    • First observedaddStickerToSet
    • First observedanswerCallbackQuery
    • First observedanswerInlineQuery
    • First observedanswerPreCheckoutQuery
    • First observedanswerShippingQuery
    • First observedanswerWebAppQuery
    • First observedapproveChatJoinRequest
    • First observedapproveSuggestedPost
    • First observedbanChatMember
    • First observedbanChatSenderChat
    • First observedclose
    • First observedcloseForumTopic
    • First observedcloseGeneralForumTopic
    • First observedconvertGiftToStars
    • First observedcopyMessage
    • First observedcopyMessages
    • First observedcreateChatInviteLink
    • First observedcreateChatSubscriptionInviteLink
    • First observedcreateForumTopic
    • First observedcreateInvoiceLink
    • First observedcreateNewStickerSet
    • First observeddeclineChatJoinRequest
    • First observeddeclineSuggestedPost
    • First observeddeleteBusinessMessages
    • First observeddeleteChatPhoto
    • First observeddeleteChatStickerSet
    • First observeddeleteForumTopic
    • First observeddeleteMessage
    • First observeddeleteMessages
    • First observeddeleteMyCommands
    • First observeddeleteStickerFromSet
    • First observeddeleteStickerSet
    • First observeddeleteStory
    • First observeddeleteWebhook
    • First observededitChatInviteLink
    • First observededitChatSubscriptionInviteLink
    • First observededitForumTopic
    • First observededitGeneralForumTopic
    • First observededitMessageCaption
    • First observededitMessageLiveLocation
    • First observededitMessageMedia
    • First observededitMessageReplyMarkup
    • First observededitMessageText
    • First observededitStory
    • First observededitUserStarSubscription
    • First observedexportChatInviteLink
    • First observedforwardMessage
    • First observedforwardMessages
    • First observedgetAvailableGifts
    • First observedgetBusinessAccountGifts
    • First observedgetBusinessAccountStarBalance
    • First observedgetBusinessConnection
    • First observedgetChat
    • First observedgetChatAdministrators
    • First observedgetChatGifts
    • First observedgetChatMember
    • First observedgetChatMemberCount
    • First observedgetChatMenuButton
    • First observedgetCustomEmojiStickers
    • First observedgetFile
    • First observedgetForumTopicIconStickers
    • First observedgetGameHighScores
    • First observedgetMe
    • First observedgetMyCommands
    • First observedgetMyDefaultAdministratorRights
    • First observedgetMyDescription
    • First observedgetMyName
    • First observedgetMyShortDescription
    • First observedgetMyStarBalance
    • First observedgetStarTransactions
    • First observedgetStickerSet
    • First observedgetUpdates
    • First observedgetUserChatBoosts
    • First observedgetUserGifts
    • First observedgetUserProfilePhotos
    • First observedgetWebhookInfo
    • First observedgiftPremiumSubscription
    • First observedhideGeneralForumTopic
    • First observedleaveChat
    • First observedlogOut
    • First observedpinChatMessage
    • First observedpostStory
    • First observedpromoteChatMember
    • First observedreadBusinessMessage
    • First observedrefundStarPayment
    • First observedremoveBusinessAccountProfilePhoto
    • First observedremoveChatVerification
    • First observedremoveUserVerification
    • First observedreopenForumTopic
    • First observedreopenGeneralForumTopic
    • First observedreplaceStickerInSet
    • First observedrepostStory
    • First observedrestrictChatMember
    • First observedrevokeChatInviteLink
    • First observedsavePreparedInlineMessage
    • First observedsendAnimation
    • First observedsendAudio
    • First observedsendChatAction
    • First observedsendChecklist
    • First observedsendContact
    • First observedsendDice
    • First observedsendDocument
    • First observedsendGame
    • First observedsendGift
    • First observedsendInvoice
    • First observedsendLocation
    • First observedsendMediaGroup
    • First observedsendMessage
    • First observedsendMessageDraft
    • First observedsendPaidMedia
    • First observedsendPhoto
    • First observedsendPoll
    • First observedsendSticker
    • First observedsendVenue
    • First observedsendVideo
    • First observedsendVideoNote
    • First observedsendVoice
    • First observedsetBusinessAccountBio
    • First observedsetBusinessAccountGiftSettings
    • First observedsetBusinessAccountName
    • First observedsetBusinessAccountProfilePhoto
    • First observedsetBusinessAccountUsername
    • First observedsetChatAdministratorCustomTitle
    • First observedsetChatDescription
    • First observedsetChatMenuButton
    • First observedsetChatPermissions
    • First observedsetChatPhoto
    • First observedsetChatStickerSet
    • First observedsetChatTitle
    • First observedsetCustomEmojiStickerSetThumbnail
    • First observedsetGameScore
    • First observedsetMessageReaction
    • First observedsetMyCommands
    • First observedsetMyDefaultAdministratorRights
    • First observedsetMyDescription
    • First observedsetMyName
    • First observedsetMyShortDescription
    • First observedsetPassportDataErrors
    • First observedsetStickerEmojiList
    • First observedsetStickerKeywords
    • First observedsetStickerMaskPosition
    • First observedsetStickerPositionInSet
    • First observedsetStickerSetThumbnail
    • First observedsetStickerSetTitle
    • First observedsetUserEmojiStatus
    • First observedsetWebhook
    • First observedstopMessageLiveLocation
    • First observedstopPoll
    • First observedtransferBusinessAccountStars
    • First observedtransferGift
    • First observedunbanChatMember
    • First observedunbanChatSenderChat
    • First observedunhideGeneralForumTopic
    • First observedunpinAllChatMessages
    • First observedunpinAllForumTopicMessages
    • First observedunpinAllGeneralForumTopicMessages
    • First observedunpinChatMessage
    • First observedupgradeGift
    • First observeduploadStickerFile
    • First observedverifyChat
    • First observedverifyUser

TDQS

A3.6/5.0
Disambiguation4/5

Most tools are clearly scoped to a distinct resource and action, and the descriptions resolve close pairs such as sendAudio/sendVoice and copyMessage/copyMessages. With 161 tools, a few lifecycle or profile-related pairs like close/logOut and setMyDescription/setMyShortDescription still require careful reading, but they are not genuinely overlapping.

Naming Consistency5/5

All tool names use the same camelCase convention and consistently follow a verb-first pattern (get, set, send, create, edit, delete, answer). Singular/plural variants such as forwardMessage/forwardMessages and deleteMessage/deleteMessages are predictable.

Tool Count1/5

161 tools dramatically exceeds the 50+ threshold and creates an extreme mismatch for an MCP tool surface. Even if the set mirrors the Telegram Bot API, an agent must navigate an unwieldy list to find simple operations.

Completeness5/5

The surface covers nearly every Telegram Bot API domain: messages, media, stickers, chats, payments, games, inline queries, forum topics, business accounts, stories, and gifts. CRUD/lifecycle operations are present without obvious dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Full-featured Telegram Bot API server for MCP (Model Context Protocol). 174 tools covering the entire Bot API — messages, chats, stickers, payments, forums, stories, and more.
    100
    24
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with Telegram Bot API for sending messages, photos, editing messages, answering callbacks, and fetching updates.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TONresistor/telegram-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server