telegram-mcp-cli
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TELEGRAM_API_ID | Yes | From my.telegram.org, API development tools | |
| TELEGRAM_SESSION | Yes | From `telegram-mcp login`. Full account access and does not expire. | |
| TELEGRAM_API_HASH | Yes | Issued with the api_id, same page |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | The Telegram account this session is signed in as. Call it first when it matters whose messages you are about to read or send. |
| resolveA | Turn a @username, phone number or numeric id into a chat you can act on. Use it before sending to someone you only know by handle. |
| list_chatsA | Recent conversations, newest first. Returns a compact row per chat: id, name, kind, unread count and a short preview of the last message. Use |
| get_chatA | Details of a single chat: name, kind, username, member count and description where the chat has them. |
| historyA | Messages from one chat, newest first. Bodies are truncated to a preview unless |
| searchA | Search message text, either inside one chat or across the whole account when no peer is given. |
| sendA | Send a message to a chat. This is visible to the recipient immediately and posts as you, so only send what was actually asked for. |
| editA | Change the text of a message you sent. Telegram marks it edited. |
| deleteA | Delete one or more messages. This cannot be undone, and with revoke it removes them for everyone in the chat, not only for you. |
| mark_readA | Clear the unread count on a chat. |
| forwardA | Forward messages from one chat into another. |
| download_mediaA | Save the photo, video, document or voice note attached to a message, and return the local path. The file is written to disk rather than returned inline, because a base64 image in a tool result is enormous and unreadable. |
| send_fileB | Send a local file to a chat, with an optional caption. |
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 13 tools
Each tool has a clear, distinct purpose: send, send_file, and forward are differentiated by payload type and behavior; list_chats, get_chat, history, and search cover different levels of querying. No obvious overlaps or ambiguities.
Most tools follow a verb_noun pattern (send_file, list_chats, mark_read, download_media), but 'whoami' and 'history' deviate as standalone nouns. Overall the naming is consistent and predictable, with minor exceptions.
13 tools is within the typical 3-15 range and feels well-scoped for a messaging client. Each tool addresses a distinct part of the workflow without unnecessary bloat.
The core messaging lifecycle is covered: retrieving (list, get, history, search), sending (send, send_file, forward), mutating (edit, delete, mark_read), and identity (whoami). Some advanced features like pinning or archiving are absent, but the essential operations are complete.