telegram-mcp-kit
Allows interaction with the Telegram Bot API, enabling sending messages, editing/deleting messages, managing chats (ban, unban, pin), sending photos and documents, and retrieving bot info.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@telegram-mcp-kitsend a message saying 'Hello everyone'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🚀 telegram-mcp-kit
MCP server that exposes the Telegram Bot API as tools for Claude Code (or any MCP client).
Table of Contents
Related MCP server: Telegram MCP Server
🚀 Quick Start
Get your bot token from @BotFather on Telegram. Once the server is configured, you can run /mcp inside Claude Code to verify it is connected.
🛠️ Installation
Get your bot token from @BotFather on Telegram first.
Option 1: From PyPI (recommended)
claude mcp add telegram-mcp-kit \
-e TELEGRAM_BOT_TOKEN=your-bot-token-here \
-e TELEGRAM_CHAT_ID=your-chat-id \
-- uvx telegram-mcp-kit{
"mcpServers": {
"telegram-mcp-kit": {
"command": "uvx",
"args": ["telegram-mcp-kit"],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token-here",
"TELEGRAM_CHAT_ID": "your-chat-id"
}
}
}
}Option 2: From GitHub
claude mcp add telegram-mcp-kit \
-e TELEGRAM_BOT_TOKEN=your-bot-token-here \
-e TELEGRAM_CHAT_ID=your-chat-id \
-- uvx --from "git+https://github.com/QuocTang/telegram-mcp-kit.git" telegram-mcp-kit{
"mcpServers": {
"telegram-mcp-kit": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/QuocTang/telegram-mcp-kit.git",
"telegram-mcp-kit"
],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token-here",
"TELEGRAM_CHAT_ID": "your-chat-id"
}
}
}
}Option 3: From source
git clone https://github.com/QuocTang/telegram-mcp-kit.git
cd telegram-mcp-kit
cp .env.example .env # add your TELEGRAM_BOT_TOKEN
uv syncclaude mcp add telegram-mcp-kit \
-- uv run --directory /absolute/path/to/telegram-mcp-kit telegram-mcp-kit{
"mcpServers": {
"telegram-mcp-kit": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/telegram-mcp-kit",
"telegram-mcp-kit"
]
}
}
}With this option,
TELEGRAM_BOT_TOKENis read from the.envfile inside the project directory.
Environment variables
Variable | Required | Description |
| Yes | Token from BotFather |
| No | Default chat ID (if set, |
| No |
|
| No | Bind host (default |
| No | Bind port (default |
| No | Telegram API timeout in seconds (default |
📦 Features
🚀 Feature | 📝 Description |
🛠️ 20+ Tools | Comprehensive coverage for messages, chat management, files/photos, and bot info. |
🔍 Auto-discovery | Simply add a Python file to the |
📡 Flexible Transport | Works seamlessly over stdio (for local clients) or SSE (remote/Docker). |
Tools List
Messages
Tool | Description |
| Send a text message (Markdown/HTML) |
| Edit an existing message |
| Delete a message |
| Forward a message between chats |
Updates
Tool | Description |
| Fetch recent messages/updates the bot received |
Chat management
Tool | Description |
| Get chat metadata (name, type, description) |
| Count members |
| List administrators |
| Ban a user |
| Unban a user |
| Change group/channel title |
| Change group/channel description |
| Pin a message |
| Unpin a message |
Files & photos
Tool | Description |
| Send a photo by URL or file_id |
| Send a local photo file |
| Send a document by URL or file_id |
| Send a local file as document |
| Get file metadata + download link |
Bot
Tool | Description |
| Get bot name, username, etc. |
🤝 How to Contribute
We welcome contributions! Please follow these steps:
Fork the repository.
Create a new branch for your feature.
Submit a Pull Request.
See CONTRIBUTING.md for how to add new tools.
Development
uv sync # install all deps (including dev)
uv run pytest -v # run tests
uv run ruff check src/ tests/ # lint💬 Community & Support
If this repository saves you time, please star the repository!
👥 Repo Contributors
Made with contrib.rocks.
⚖️ License
MIT License. See LICENSE for details.
🌟 Star History
Available Tools
20 toolsban_memberA
Ban a user from a chat.
Args: user_id: User ID to ban chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only states the action without detailing behavioral traits like side effects, permissions, or post-ban behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences plus an args list, no wasted words, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple 2-param tool with output schema; lacks details on permissions or post-ban state but covers core functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond schema by explaining chat_id default behavior ('uses TELEGRAM_CHAT_ID if omitted') and clarifying user_id purpose, with 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Ban a user from a chat' with specific verb and resource, distinguishing it from siblings like 'unban_member'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage from name and siblings, but no explicit when-to-use or when-not-to-use guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_messageB
Delete a message from a chat.
Args: message_id: ID of the message to delete chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Delete', indicating a destructive action, but does not disclose irreversibility, required permissions, or side effects. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, with a one-sentence purpose and structured args list. No wasted words; each element serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter delete operation, the description covers the basics but omits output or error handling. Although an output schema exists, the description should at least hint at what to expect (e.g., success status). It is functionally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by noting that chat_id defaults to TELEGRAM_CHAT_ID and that message_id is required. This adds value beyond the schema, but still lacks deeper semantics like format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'message from a chat', effectively distinguishing it from siblings like edit_message or pin_message. However, it does not specify any constraints (e.g., only own messages), which would add clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or when not to use it (e.g., cannot delete others' messages if bot lacks admin rights). The usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_messageA
Edit an existing message.
Args: message_id: ID of the message to edit text: New text for the message chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) parse_mode: "Markdown", "MarkdownV2", or "HTML" (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| text | Yes | ||
| chat_id | No | ||
| parse_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not mention any behavioral traits like permissions, error conditions, or side effects beyond the core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with a clear one-line purpose, then a structured Args list. The list is slightly verbose but well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters thoroughly, no missing critical information. Lacks behavioral notes like error handling, but overall sufficient for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains all four parameters, including default behavior for chat_id and allowed values for parse_mode. Schema has 0% coverage, so description compensates completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit an existing message', a specific verb+resource. It naturally distinguishes from siblings like delete_message, send_message, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or context for when editing might be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forward_messageB
Forward a message from one chat to another.
Args: from_chat_id: Source chat ID message_id: ID of the message to forward chat_id: Target chat ID (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| from_chat_id | Yes | ||
| message_id | Yes | ||
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden of disclosing behavioral traits. It reveals that the target chat ID defaults to TELEGRAM_CHAT_ID if omitted, but it does not mention side effects (e.g., does it copy the entire message including media?), error conditions (e.g., message not found), or require any permissions. The description is too sparse 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences plus a short parameter list) and front-loaded with the primary purpose. Every sentence is relevant; no wasted words. The structure is clear and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, output schema exists), the description covers the basic usage and parameter semantics. However, it lacks details on return values (though output schema exists), error scenarios, and constraints (e.g., character limits or chat permission requirements). The description 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description adds meaningful context for all three parameters: 'Source chat ID', 'ID of the message to forward', and 'Target chat ID (uses TELEGRAM_CHAT_ID if omitted)'. The default behavior note for chat_id is particularly helpful. This provides semantic value beyond the raw schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Forward a message from one chat to another', which is a specific verb and resource. It distinguishes from siblings like send_message (which creates a new message) and delete_message (which removes a message). However, it could be more precise about what 'forward' entails (e.g., preserving formatting or media), but it is sufficient for distinguishing usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like send_message. It does not mention prerequisites, limitations, or exclusions (e.g., cannot forward to the same chat). The agent must infer usage from the name and purpose, which is minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bot_infoA
Get information about the bot (name, username, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation, but no annotations are present. It does not elaborate on any behavioral traits beyond 'get', such as whether it requires authentication or if it is always available. For a simple tool, this is adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, effectively conveying the purpose. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and an output schema exists, the description is mostly complete. It provides a brief overview of the returned information (name, username, etc.), which is sufficient for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so per the baseline rule, the score starts at 4. The description adds no parameter-specific information, which is acceptable since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'information about the bot', with examples like name and username, which distinguishes it from sibling tools that deal with chats, messages, or files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it, which is a significant gap for an otherwise simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chat_adminsB
Get list of administrators in a chat.
Args: chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It explains the default behavior for the chat_id parameter (uses TELEGRAM_CHAT_ID if omitted), but does not discuss any additional constraints, authentication needs, or error conditions. This is adequate for a simple read operation but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main action. The 'Args' section provides clear parameter documentation. It is efficient with no wasted words, though it could be slightly more structured with explicit sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one optional parameter and an output schema exists, the description covers the essential usage. It explains the parameter format and default, which is sufficient for basic invocation. It does not mention error handling or required permissions, but for a read operation this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It adds meaningful information: the parameter accepts a Chat ID or @channel_username and has a default value of TELEGRAM_CHAT_ID. This goes beyond the schema's type definition and helps the agent construct correct calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get list of administrators in a chat' which specifies the verb and resource. However, it does not distinguish this tool from siblings like get_chat_member_count or get_chat_info, which could cause confusion about when to use this tool versus others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any context or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chat_infoA
Get information about a chat (group, channel, or private chat).
Args: chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It mentions it gets information, but does not disclose safety (read-only), error conditions, or any side effects. For a simple getter, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus Args. Front-loads the purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one optional parameter, output schema present), the description provides the essential purpose and parameter behavior. It does not describe the return format, but the output schema covers that. Adequately complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description's Args section adds crucial meaning: 'Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)'. This compensates well for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get information about a chat (group, channel, or private chat)' which is a specific verb+resource. The sibling tools are all different actions (ban, delete, send, etc.), so this tool is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the chat_id parameter and its default, but does not provide explicit guidance on when to use this tool versus siblings like get_chat_admins or get_chat_member_count. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chat_member_countA
Get the number of members in a chat.
Args: chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly identifies a read operation ('get'), but does not disclose potential error cases (e.g., invalid chat_id) or any side effects. Since the tool is simple and an output schema exists, the lack of deeper behavioral disclosure is acceptable but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose followed by a brief parameter breakdown. Every word contributes meaning, and the critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description is almost complete. It could mention that the count is only available in certain chat types (group, supergroup, channel), but this omission is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value by explaining the chat_id parameter format ('Chat ID or @channel_username') and default behavior ('uses TELEGRAM_CHAT_ID if omitted'), which the input schema does not provide. Schema coverage is 0%, so the description compensates effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('number of members in a chat'), making the tool's purpose immediately clear. It distinguishes itself from sibling tools like get_chat_admins and get_chat_info by focusing solely on the member count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives. There is no mention of prerequisites, chat type restrictions, or comparison with get_chat_info (which likely includes member count). The agent receives no context for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoA
Get file info and download link from Telegram.
Args: file_id: Telegram file ID (from received messages)
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the operation and parameter, omitting behavioral traits like whether authentication is required, if the action is destructive, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence and a bullet for the parameter. It is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being simple, the description covers the essential input and output. Since an output schema exists, further detail on return values is unnecessary. However, it lacks any mention of authentication or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds an 'Args' section explaining that file_id comes from received messages, providing context beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get file info and download link from Telegram.' This distinguishes it from sibling tools like get_bot_info and get_chat_info, which retrieve different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a file_id from received messages is available, but does not provide explicit guidance on when to use this tool versus alternatives, or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_updatesA
Get recent messages/updates received by the bot.
Args: offset: Update ID offset (to get updates after a specific ID) limit: Maximum number of updates to return (1-100, default 100)
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It lacks details on polling mechanism, idempotency, or side effects. Only basic parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise: one-line purpose followed by two-line parameter descriptions. No redundant words. Front-loaded with core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, return values are covered. However, missing behavioral details and usage guidance leave gaps for a polling tool. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% but description adds meaningful explanations for both parameters: offset for skipping updates, limit with range and default. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get recent messages/updates received by the bot', specifying verb and resource. Distinguishes from sibling tools like send_message and delete_message which are write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for polling updates but no explicit guidance on when to use this vs alternatives. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pin_messageA
Pin a message in a chat.
Args: message_id: ID of the message to pin chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) silent: Pin without notification (default False)
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| chat_id | No | ||
| silent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks details on side effects (e.g., whether it replaces existing pins), permissions needed, or error conditions. Silent parameter is mentioned, but minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise: one-line purpose plus inline parameter explanations. No superfluous text, structure is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values not needed. For a simple tool, description covers the main action, but lacks behavioral context like idempotency or permissions. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaning: explains chat_id default and silent default. However, message_id is only described as 'ID of the message to pin', missing details like how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (pin) and resource (a message in a chat), and distinguishes from siblings like unpin_message and delete_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Implied by purpose, but no mention of prerequisites or alternative tools like unpin_message for unpinning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_documentA
Send a document/file to a chat.
Args: document: Document URL or file_id chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) caption: Document caption (optional) parse_mode: "Markdown", "MarkdownV2", or "HTML" for caption (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| document | Yes | ||
| chat_id | No | ||
| caption | No | ||
| parse_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral details such as permissions needed, file size limits, error conditions, or side effects. For a tool with zero annotations, more transparency is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and well-structured. A one-liner followed by a clean Args list. Every sentence adds value, no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers essential parameter usage and defaults. Could mention that sending a document is a non-destructive action, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaningful semantics: document as URL or file_id, chat_id default behavior, caption optional, parse_mode values. This significantly aids parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a document or file to a chat. It distinguishes from text or photo sending tools but does not differentiate from send_document_file, a sibling with similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some usage guidance (e.g., chat_id default, optional caption, parse_mode options) but lacks explicit when-to-use or when-not-to-use instructions relative to alternatives like send_document_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_document_fileA
Send a local file as a document to a chat.
Args: file_path: Absolute path to the file on disk chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) caption: Document caption (optional) parse_mode: "Markdown", "MarkdownV2", or "HTML" for caption (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| chat_id | No | ||
| caption | No | ||
| parse_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It describes the action but does not disclose error handling, required permissions, rate limits, or side effects. Given the simple nature, minimal transparency is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with a clear header followed by parameter list in args format. No unnecessary text. Could be slightly more structured with bullet points, but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All 4 parameters explained, including default behavior for chat_id. Output schema exists but not visible; description covers input well. Lacks mention of return format or error behavior, but given simplicity, it's largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must explain parameters. It does so effectively, specifying file_path as absolute path, chat_id defaulting to env var, caption as optional, and parse_mode values. Adds critical meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Send a local file as a document to a chat.' This is a specific verb-resource combination, and it distinguishes from sibling tools like send_document (likely remote) and send_photo_file (photo-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for sending local files as documents, but does not explicitly state when to use this tool vs. alternatives like send_document or send_photo_file. No exclusions or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageA
Send a text message to a Telegram chat.
Args: text: Message text (supports Markdown/HTML based on parse_mode) chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) parse_mode: "Markdown", "MarkdownV2", or "HTML" (optional) reply_to_message_id: ID of message to reply to (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| chat_id | No | ||
| parse_mode | No | ||
| reply_to_message_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It mentions formatting support (Markdown/HTML) but omits other traits like rate limits, authentication requirements, or what happens on error. It 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a brief introductory sentence followed by a clear bullet-like explanation of each parameter. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers input parameters. However, it does not mention the return behavior (e.g., message object), which is partially mitigated by the output schema. Still, it could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds substantial meaning to each parameter: text supports Markdown/HTML, chat_id defaults to TELEGRAM_CHAT_ID, parse_mode and reply_to_message_id are optional. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Send a text message to a Telegram chat.' This clearly defines the verb 'send' and the resource 'text message', distinguishing it from sibling tools like send_document or send_photo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains key usage details: support for Markdown/HTML via parse_mode, default chat_id behavior, and optional reply_to_message_id. It does not explicitly contrast with alternatives, but the purpose is clear enough for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_photoA
Send a photo to a chat.
Args: photo: Photo URL or file_id chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) caption: Photo caption (optional) parse_mode: "Markdown", "MarkdownV2", or "HTML" for caption (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| photo | Yes | ||
| chat_id | No | ||
| caption | No | ||
| parse_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. It only repeats schema info and mentions default chat_id, but lacks details on success/failure, errors, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is structured with bullet list and is reasonably concise. Could be slightly more streamlined, but no unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are not needed. Parameters are well-covered, but missing usage example or error scenario. Acceptable for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet description fully explains each parameter: photo (URL or file_id), chat_id (with default behavior), caption (optional), parse_mode (allowed values). Adds significant meaning beyond raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Send a photo to a chat.' This is a specific verb+resource that distinguishes it from siblings like send_document, send_message, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description indicates default for chat_id and optional parameters, but no explicit when-to-use or alternatives. Context is clear enough for a photo sending tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_photo_fileA
Send a local photo file to a chat.
Args: file_path: Absolute path to the photo file on disk chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) caption: Photo caption (optional) parse_mode: "Markdown", "MarkdownV2", or "HTML" for caption (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| chat_id | No | ||
| caption | No | ||
| parse_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It fails to disclose behavioral traits such as file existence checks, authorization requirements, or whether sending a photo is a destructive action. The default for chat_id is mentioned but that's minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a structured Args list. Every sentence provides value: the first states the action, the second lists parameters with clear labels. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and an output schema exists (so return values are covered), the description covers the main action and parameter roles. However, it lacks information on error conditions, file size limits, or supported formats, which would improve completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description's Args section adds meaningful semantics for all four parameters: file_path is an absolute path, chat_id can be a username or uses an environment variable, caption is optional, and parse_mode lists allowed values. This exceeds the baseline of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Send a local photo file to a chat', which clearly states the verb (send) and resource (local photo file). This distinguishes it from siblings like send_photo (likely for URLs) and send_document_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., send_photo). It only states the action without contextual exclusions or when/why to choose it over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_chat_descriptionA
Change the description of a chat (group/channel).
Args: description: New description (0-255 characters) chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as overwriting behavior, permissions required, or reversibility; only states the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Minimal and efficient: two short sentences plus parameter list with clear formatting; no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While it covers purpose and parameters adequately, it lacks usage context and guidance; completeness is acceptable given output schema exists and tool is simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds meaningful details beyond schema: character limit for description, default behavior and format for chat_id; effectively compensates for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Change' and the resource 'description of a chat (group/channel)', clearly distinguishing it from sibling tool 'set_chat_title'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., set_chat_title); purely functional description with no contextual recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_chat_titleA
Change the title of a chat (group/channel).
Args: title: New chat title (1-128 characters) chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It explains the basic effect (changing title) but does not disclose side effects, permissions, or rate limits. The output schema is present but not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two lines of description and an Args section. No wasted words, front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool with two parameters and an output schema, the description covers the essentials. Could mention admin requirements or impact on members, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds critical meaning: title length constraint (1-128) and chat_id default to TELEGRAM_CHAT_ID. This significantly enhances the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Change the title of a chat (group/channel)', which is a specific verb and resource. It distinguishes from other chat-related tools like set_chat_description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions for both parameters, including the default behavior for chat_id. However, it does not mention when not to use the tool or alternative methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unban_memberA
Unban a user from a chat.
Args: user_id: User ID to unban chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted)
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| chat_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the action and parameter details, omitting any side effects, permission requirements, or what happens if the user is not banned (e.g., error handling).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: a single sentence followed by a parameter list. Every element serves a purpose and is front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the presence of an output schema, the description covers the essential purpose and parameter semantics. It lacks usage guidance but is largely sufficient for a straightforward unban operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add value. It explains that chat_id defaults to a placeholder (TELEGRAM_CHAT_ID) if omitted, which is not clear from the schema alone. However, for user_id, it merely restates the schema property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Unban a user from a chat.' using a specific verb and resource. It distinguishes itself from the sibling tool 'ban_member' by indicating the reverse action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to reverse a ban, but it does not explicitly state when to use it versus alternatives like 'ban_member' or other moderation tools. No usage context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpin_messageB
Unpin a message in a chat.
Args: chat_id: Chat ID or @channel_username (uses TELEGRAM_CHAT_ID if omitted) message_id: ID of message to unpin (optional, unpins most recent if not specified)
| Name | Required | Description | Default |
|---|---|---|---|
| chat_id | No | ||
| message_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that the message_id parameter is optional and will unpin the most recent pinned message if omitted, which is helpful. However, it does not mention permissions required, what happens if the message is not pinned, or any error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single-purpose sentence followed by terse parameter explanations. Every piece of text earns its place without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown but present), so return value documentation is not needed. The description covers the core behavior and parameter defaults, but is incomplete regarding error handling, idempotency, and what happens if the specified message is not currently pinned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must add meaning. It explains that chat_id can be a chat ID or @channel_username, and defaults to the TELEGRAM_CHAT_ID environment variable. It also clarifies that message_id is optional, unpinning the most recent pinned message if not specified. This adds significant value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Unpin a message in a chat', which is a specific verb+resource pair. It effectively distinguishes from sibling tools like 'pin_message' (opposite action) and 'delete_message' (different operation), though it does not explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when a message is already unpinned or when using 'delete_message' instead). There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All tools have distinct purposes with clear separation; similar pairs like send_document/send_document_file and send_photo/send_photo_file are differentiated by source type (URL/file_id vs local path).
All tool names follow a consistent verb_noun snake_case pattern (e.g., ban_member, get_chat_info, send_photo_file).
20 tools is on the higher end but covers core Telegram bot functionalities without being excessive. Each tool is justified.
Covers common messaging, moderation, and info retrieval but lacks support for sending stickers, audio, video, location, polls, and other media types, which are notable gaps for a full-featured Telegram toolset.
Maintenance
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
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Run your website's AI support agent from Claude, Cursor or any MCP client. Manage the knowledge base, edit agent instructions, read conversations and leads, reply live to visitors, and check plan usage. 54 tools, OAuth sign-in, no API key. Free with every Asyntai account: https://asyntai.com/documentation/mcp/
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with the Telegram Bot API via the Model Context Protocol to send, edit, and delete messages, photos, and videos. It allows Claude to manage Telegram communications and fetch bot updates through natural language commands.36
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Telegram Bot API, allowing them to send messages, forward messages, get bot information, and receive updates.293MIT
- AlicenseNot gradedqualityCmaintenanceA Telegram integration for Claude, Cursor, and other MCP-compatible clients. It exposes over 80 tools for account, chat, message, contact, media, folder, and admin operations through the Model Context Protocol.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables Claude to send messages, media, and manage Telegram chat messages through a Telegram bot, including sending photos, documents, and editing or deleting messages.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/QuocTang/telegram-mcp-kit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server