mcp-telegram-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SAFETY_STRICT | No | When set to 1, true, yes, or on, enables strict inbound classification of updates for untrusted groups. Disabled by default. | |
| ALLOWED_CHAT_IDS | No | Comma-separated list of chat IDs the bot is allowed to send messages to. If empty, the bot can send to any chat it can see. Recommended for production use. | |
| TELEGRAM_BOT_TOKEN | Yes | Your Telegram bot token from @BotFather. Required to authenticate with the Telegram Bot API. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| telegram_get_meA | Return the bot identity (getMe). Useful as a connectivity check. |
| telegram_get_chatC | Fetch chat metadata (getChat) for a chat_id. |
| telegram_send_messageA | Send a text message. Outbound text is scrubbed for token-shaped secrets. Optional buttons=[{id,label}] become an inline keyboard. |
| telegram_edit_reply_markupA | Edit or clear inline buttons on an existing message. Pass buttons=null/omit to strip markup; or a new [{id,label}] list. |
| telegram_answer_callbackC | Acknowledge a callback_query (optional toast text / alert). |
| telegram_get_updatesA | Long-poll getUpdates. The agent owns the offset loop. limit is clamped to 1..100 and timeout to 0..50. Every returned batch is labeled untrusted. Messages from bots and from this bot are omitted. Duplicate update ids are returned without text. When SAFETY_STRICT is enabled (the default), each delivered update includes safety.{kind,blocked,warning}. The classifier is a heuristic and does not stop prompt injection. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct resource and action: fetching chat metadata, bot identity, polling updates, acknowledging callbacks, editing inline markup, and sending messages. There is no overlap in purpose, and an agent can select the right tool unambiguously from the descriptions.
All tools follow a consistent telegram_verb_noun pattern (get_chat, get_me, get_updates, answer_callback, edit_reply_markup, send_message). Verb choices are predictable and readable.
Six tools is well-scoped for a Telegram bridge, covering the core send/receive/callback loop without bloat. Every tool earns its place in the minimal agent workflow.
The surface covers the essential bridge lifecycle: polling updates, sending messages, acknowledging callbacks, editing markup, and fetching chat/bot metadata. Minor gaps exist for non-text message sending or message editing/deletion, but agents can work around these for the core bridge purpose.