Telegram MCP — Next Generation
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| list_contactsA | List all registered Telegram contacts in your account address book with IDs and phone numbers. Use when finding contacts to message. To search contacts by query, use |
| search_contactsA | Search your Telegram contacts directory by name, phone number, or username. Use when looking up a specific person. To view the entire directory, use |
| list_chatsA | List all accessible chats, groups, channels, and direct dialogs with pagination support. Use when locating specific conversations by title or type. |
| get_chatA | Retrieve core metadata, title, member count, and type for a specific chat or channel. Use when inspecting a known chat ID or @username. |
| search_public_chatsA | Search Telegram globally for public channels, supergroups, and bots matching query terms. Use when discovering new public communities. To search within your existing chats, use |
| resolve_usernameA | Resolve a public @username to its underlying Telegram entity ID and object type (User, Channel, Group). Use before calling ID-based tools when only a username handle is known. |
| get_messagesA | Retrieve paginated messages from a specific chat starting from an offset or limit. Use for sequential message retrieval. To search text across messages, use |
| send_messageA | Send a text message to a specified Telegram chat, group, channel, or user. Mutation operation requiring TELEGRAM_SEND_ENABLED=true. For replying to an existing message, prefer |
| edit_messageA | Edit the text content of an existing message previously sent by this account. Mutation operation requiring TELEGRAM_SEND_ENABLED=true. Cannot edit messages sent by other users. |
| delete_messageA | Delete a single message from a chat by message ID. Destructive operation requiring TELEGRAM_SEND_ENABLED=true and TELEGRAM_DESTRUCTIVE_ENABLED=true. |
| pin_messageA | Pin a message to the top of a chat or supergroup for high visibility. Mutation operation requiring TELEGRAM_SEND_ENABLED=true and admin permissions in supergroups/channels. To unpin, use |
| unpin_messageA | Unpin a specific message from a chat or supergroup. Mutation operation requiring TELEGRAM_SEND_ENABLED=true. To pin a message, use |
| mark_as_readA | Mark all messages or messages up to a specific ID in a chat as read. Mutation operation requiring TELEGRAM_SEND_ENABLED=true. Clears unread badge counter. |
| reply_to_messageA | Send a message in direct reply to a specific message ID in a chat. Mutation operation requiring TELEGRAM_SEND_ENABLED=true. To send a standalone message, use |
| search_messagesA | Search for text keywords within a specific Telegram chat or supergroup. Use when finding past conversations in a single chat. To search the offline cache without live Telegram API calls, use |
| send_fileA | Upload and send a local document or file to a chat. File path must resolve within configured MCP allowed roots. Requires TELEGRAM_SEND_ENABLED=true. |
| download_mediaA | Download an attachment or media file from a message to the local filesystem. Destination path must resolve within configured MCP allowed roots. To check metadata before downloading, use |
| get_media_infoA | Inspect media metadata (file size, dimensions, mime type, duration) attached to a specific message. Use before downloading or viewing to verify file attributes and dimensions. |
| get_meA | Retrieve detailed profile identity of the current Telegram user account (ID, name, username, phone). Use when verifying account identity, session details, or caller permissions. |
| check_cache_healthA | Inspect local SQLite/FTS5 archive integrity, database size, and active tool tier diagnostics. Use to verify cache readiness before running local searches. Operates entirely offline without Telegram API calls. |
| search_cached_messagesA | Search the local FTS5 SQLite archive for messages without making live Telegram API requests. Use for instantaneous, rate-limit-free search over synchronized messages. To sync messages into cache first, use |
| sync_chat_cacheA | Synchronize remote Telegram chat messages into the local SQLite/FTS5 offline cache database. Use before performing offline text searches or when populating local message archives. To search already synced messages without Telegram API calls, use |
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 22 tools
Every tool targets a distinct combination of resource and action, and descriptions explicitly cross-reference alternatives (e.g., get_messages vs search_messages, send_message vs reply_to_message, list_contacts vs search_contacts). Even the cached-search and live-search tools are clearly separated by offline/online behavior.
All tool names consistently follow a snake_case verb_noun pattern, such as list_chats, get_messages, send_message, pin_message, and search_contacts. Minor multi-word phrases like check_cache_health or mark_as_read still fit the same readable convention without stylistic mixing.
At 22 tools, the surface is noticeably heavy and borders on too many for the core purpose of interacting with Telegram. Each tool does add some distinct capability, but the cache-management cluster and multiple search variants contribute to a feeling of over-expansion.
The toolset covers the primary Telegram workflows well: reading chats and messages, sending/editing/deleting messages, replying, pinning, marking as read, file/media handling, contact lookup, public chat discovery, and offline cache search. Minor gaps such as forward_message, chat member management, and leaving chats mean it is not fully comprehensive for every possible account-level action.