mcp-server-telegram-bot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ALLOWED_DIRS | No | Comma-separated directories from which files may be sent. Empty means file sending is disabled. | |
| ALLOWED_CHAT_IDS | Yes | Comma-separated allowed chats, each specified as `id` or `name=id` (for example `me=111,ali=222`). The first chat is the default. Other chat ids are rejected. | |
| TELEGRAM_BOT_TOKEN | Yes | Telegram bot token created with @BotFather. Required to send messages and files through your own bot. | |
| TELEGRAM_MCP_STATE | No | Override path for the persisted access state. By default, additions are saved in `~/.config/mcp-server-telegram-bot/state.json`. |
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 |
|---|---|
| send_messageA | Send a text message. chat_id is an allowed id or name (see list_access); omitted = default chat. |
| send_documentC | Send a file from an allowed directory as a document. |
| send_photoC | Send an image from an allowed directory as a photo. |
| get_updatesB | List recent messages sent to the bot (shows chat ids; helps first-time setup). |
| list_accessA | Show allowed chats (id and name) and directories. Use names as chat_id when sending. |
| add_chatC | Allow another chat id, optionally with a name (e.g. "ali") usable as chat_id later. Asks the user to confirm. |
| add_dirC | Allow files from another directory (asks the user to confirm). |
| remove_chatA | Remove a chat (id or name) that was added at runtime. |
| remove_dirC | Remove a directory that was added at runtime. |
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 9 tools
Each send_* tool is distinguished by payload type (text, document, photo), and the add/remove pairs are clearly scoped to chats vs directories. The only mild overlap is between list_access and get_updates, both of which surface chat ids, but the descriptions clarify their distinct purposes (config listing vs. reading incoming messages).
All nine tools follow a clean verb_noun pattern (send_message, get_updates, list_access, add_chat, remove_dir, etc.) with consistent snake_case throughout. No mixed conventions or vague one-word verbs.
Nine tools is well within the ideal range and each one earns its place: three send variants, one read tool, and a complete add/remove/list triad for both chats and directories. Nothing feels redundant or padding.
Core lifecycle is covered: send text/files, read incoming messages, and manage allowed chats/directories at runtime. Minor gaps exist (no message edit/delete, no reply/threading, no audio/video send), but agents can accomplish the primary workflows without dead ends.