Skip to main content
Glama
overpod

MCP Telegram

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TELEGRAM_API_IDYesYour Telegram API ID from my.telegram.org
TELEGRAM_USE_WSSNoSet to 'true' to use port 443 instead of 80 (default: false)
TELEGRAM_API_HASHYesYour Telegram API hash from my.telegram.org
TELEGRAM_PROXY_IPNoProxy server address (optional)
MCP_TELEGRAM_DAEMONNoSet to '1' to run in daemon mode (optional)
TELEGRAM_PROXY_PORTNoProxy server port (optional)
TELEGRAM_PROXY_SECRETNoMTProxy secret (enables MTProxy mode)
TELEGRAM_SESSION_PATHNoPath to store the session file (default: ~/.mcp-telegram/session)
TELEGRAM_PROXY_PASSWORDNoOptional proxy auth password
TELEGRAM_PROXY_USERNAMENoOptional proxy auth username
MCP_TELEGRAM_ENABLE_STARSNoSet to '1' to enable stars tools
TELEGRAM_PROXY_SOCKS_TYPENoSOCKS type: 4 or 5 (default: 5)
MCP_TELEGRAM_ENABLE_GROUP_CALLSNoSet to '1' to enable group call tools
MCP_TELEGRAM_ENABLE_QUICK_REPLIESNoSet to '1' to enable quick replies tools

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
telegram-statusB

Check Telegram connection status

telegram-loginA

Login to Telegram via QR code. Returns QR image. IMPORTANT: pass the entire result to user without modifications.

telegram-logoutA

Log out from Telegram completely. Revokes the session on Telegram servers (removes it from Settings → Devices), deletes the local session file, and disconnects. After this you must run telegram-login to re-authenticate.

telegram-send-messageA

Send a message to a Telegram chat

telegram-read-messagesA

Read recent messages from a Telegram chat with sender names, dates, media info, and reactions

telegram-search-messagesA

Search messages in a specific Telegram chat by text

telegram-search-globalA

Search messages globally across all public Telegram chats and channels

telegram-edit-messageB

Edit a previously sent message in Telegram

telegram-delete-messageB

Delete messages in a Telegram chat

telegram-forward-messageB

Forward messages between Telegram chats

telegram-get-unreadA

Get chats with unread messages. Forums show per-topic unread breakdown

telegram-get-scheduledB

List scheduled messages in a Telegram chat

telegram-delete-scheduledB

Delete scheduled messages in a Telegram chat

telegram-get-repliesB

Get replies/comments under a Telegram channel post or discussion message

telegram-get-message-linkA

Get a t.me link to a specific message in a Telegram channel or supergroup

telegram-get-unread-mentionsA

Get unread @mentions addressed to you in a Telegram chat. Marks all mentions as read on the server when all unread mentions fit within the requested limit.

telegram-get-unread-reactionsA

Get messages with unread reactions on your posts in a Telegram chat. Marks all reactions as read on the server when all unread reactions fit within the requested limit.

telegram-translate-messageA

Translate one or more Telegram messages to a target language (requires Telegram Premium). Consumes account translation quota.

telegram-send-typingA

Send a typing/upload indicator to a Telegram chat (or cancel it)

telegram-mark-as-readB

Mark a Telegram chat as read

telegram-inline-queryA

Query an inline bot (like @gif, @bing) in a chat context and return the compact result list. Returns queryId, cacheTime, and results[{id,type,title?,description?,url?}]. The queryId is typically valid for ~60s and can be passed to telegram-inline-query-send to deliver a chosen result. Bot must be a real bot account

telegram-inline-query-sendA

Send an inline bot result to a chat by queryId + resultId (as returned by telegram-inline-query). The queryId is valid for ~60s after the original query, so call this soon after telegram-inline-query. Returns the sent messageId (0 if not extractable from the update).

telegram-get-message-buttonsA

List the inline/reply keyboard buttons on a Telegram message with their (row, col) indices, type (e.g. KeyboardButtonCallback, KeyboardButtonUrl), label and type-specific fields (callback data as base64, url, switchQuery, userId, copyText, etc). Helper for telegram-press-button — call this first to discover indices and filter by type before pressing. Returns markupType='none' and empty buttons when the message has no keyboard

telegram-press-buttonA

Press an inline keyboard callback button on a message. Identify the button by (row, column) from its replyMarkup, or pass raw callback_data as base64. URL, switch-inline, game and 2FA-password buttons are rejected with a clear error. Returns the bot's callback answer: {alert?, hasUrl?, nativeUi?, message?, url?, cacheTime}

telegram-get-stateA

Initialize the polling cursor by fetching the current Telegram updates state {pts, qts, date, seq, unreadCount}. Call once before telegram-get-updates; then persist {pts, qts, date} in your agent state and feed them into telegram-get-updates. The MCP server does NOT store the cursor — you do.

telegram-get-updatesA

Fetch new messages, deleted messages, and other updates since a previously-known {pts, qts, date} cursor (from telegram-get-state or a prior call). Returns compact newMessages[], deletedMessageIds[], otherUpdates[] (className only), and the new cursor state. isFinal=false means more updates are queued — call again with the returned state. If Telegram reports the gap is too long, a fallback hint is returned suggesting to resync via telegram-read-messages per chat. Cursor is stateless — the agent must persist {pts, qts, date} between calls.

telegram-get-channel-updatesA

Fetch new messages and updates for a single channel/supergroup since a known per-channel pts cursor. Separate from the global cursor used by telegram-get-updates. Returns compact newMessages[], otherUpdates[], and new {pts, isFinal, timeout?}. If the channel gap is too long, Telegram returns a dialog snapshot — this tool forwards it and hints to resync via telegram-read-messages. Cursor is stateless — the agent stores pts.

telegram-get-discussion-messageA

For a channel post with comments enabled, returns the linked discussion-group info: discussionGroupId, discussionMsgId, unreadCount, readInboxMaxId, readOutboxMaxId, topMessage. Use discussionGroupId + discussionMsgId with telegram-send-message (replyTo=discussionMsgId) to post a comment.

telegram-get-groups-for-discussionA

List groups that can be linked as a discussion group to a channel you admin. Helper for channel admins setting up comment threads.

telegram-get-message-read-participantsA

List who has read a message in a small group (≤100 members, ≤7 days old). Returns readers with userId, readAt timestamp. Does NOT work for channels or groups over 100 members (CHAT_TOO_BIG).

telegram-vote-pollB

Vote in a poll by option index (single or multi-choice). Empty array retracts vote.

telegram-get-poll-resultsA

Get aggregated poll results: vote counts, percentages, quiz answer status

telegram-get-poll-votersA

List users who voted for specific poll options (public polls only, paginated)

telegram-close-pollA

Close a poll permanently. This is a one-way operation — closed polls cannot be reopened.

telegram-get-outbox-read-dateA

Get when your recipient read your outgoing message in a private chat. Returns null/Not read yet if unread. Errors if the other side disabled read receipts (YOUR_PRIVACY_RESTRICTED / USER_PRIVACY_RESTRICTED).

telegram-list-chatsA

List Telegram chats with unread counts, type indicators, and contact status

telegram-search-chatsA

Search for Telegram chats, users, or channels by name or username. Returns description and member count

telegram-get-chat-infoA

Get detailed info about a Telegram chat including name, type, members, description, and forum status

telegram-get-chat-membersC

Get members of a Telegram group or channel

telegram-get-my-roleA

Get the current user's role in a chat (creator, admin, or member)

telegram-create-groupB

Create a new Telegram group or supergroup

telegram-join-chatA

Join a Telegram group or channel by username or invite link

telegram-leave-groupB

Leave a Telegram group or channel

telegram-invite-to-groupB

Invite users to a Telegram group or channel

telegram-kick-userA

Kick a user from a Telegram group (removes without permanent ban)

telegram-ban-userA

Ban a user from a supergroup or channel (permanent until unbanned)

telegram-unban-userA

Unban a previously banned user from a supergroup or channel

telegram-edit-groupA

Edit a group's title, description, or photo

telegram-set-adminA

Promote a user to admin in a supergroup or channel with full permissions

telegram-archive-chatA

Archive or unarchive a Telegram dialog (moves to/from the Archive folder)

telegram-pin-chatA

Pin or unpin a Telegram dialog in the dialog list

telegram-mark-dialog-unreadA

Mark a Telegram dialog as unread (or clear the unread mark)

telegram-get-admin-logA

Get the admin action log (recent event history) of a supergroup or channel. Includes bans, edits, pins, and role changes

telegram-remove-adminB

Remove admin rights from a user in a supergroup or channel

telegram-set-chat-permissionsA

Set the default permissions for all non-admin members of a group, supergroup, or channel. Omitted flags keep their current state; true = allowed, false = denied

telegram-set-slow-modeA

Set slow mode for a supergroup (minimum interval between messages per user). Allowed values: 0, 10, 30, 60, 300, 900, 3600 seconds (0 disables slow mode)

telegram-toggle-channel-signaturesA

Enable or disable author signatures on broadcast channel posts. Channel admin required; not supported for supergroups

telegram-toggle-anti-spamA

Enable or disable aggressive anti-spam filtering in a supergroup. Supergroup only (not broadcast channels); requires admin with ban_users permission

telegram-toggle-forum-modeA

Enable or disable forum/topics mode in a supergroup. Supergroup only; requires creator or admin. WARNING: disabling removes ALL existing topics — pass confirm=true to proceed with disable

telegram-toggle-prehistory-hiddenA

Toggle pre-history visibility for new members in a supergroup. When hidden=true, new joiners cannot see messages posted before they joined. Supergroup only; requires admin

telegram-approve-join-requestA

Approve or deny a pending join request for a supergroup or channel (basic groups are not supported). Admin with invite_users permission required

telegram-create-topicA

Create a new forum topic in a forum-enabled supergroup

telegram-edit-topicB

Edit a forum topic — rename, change icon emoji, open/close, or show/hide

telegram-get-broadcast-statsA

Get broadcast channel statistics: followers, views/shares/reactions per post & story, notification percent, recent post interactions. Broadcast channels only (use telegram-get-megagroup-stats for supergroups). Admin rights required; some channels may require Telegram Premium to expose stats

telegram-get-megagroup-statsA

Get supergroup statistics: members, messages, viewers, posters (current vs previous period), top posters/admins/inviters. Supergroups only (use telegram-get-broadcast-stats for broadcast channels). Admin rights required. Telegram rate-limits this endpoint to roughly 1 request per 30 minutes per channel — expect FLOOD_WAIT on rapid repeat calls

telegram-delete-topicA

Delete a forum topic and all its message history

telegram-send-fileA

Send a file (photo, document, video, etc.) to a Telegram chat

telegram-download-mediaA

Download media from a Telegram message to a local file

telegram-get-profile-photoA

Download profile photo of a Telegram user, group, or channel. Returns inline image or saves to file

telegram-get-web-previewA

Fetch Telegram's web-page preview metadata (type, title, description, site name) for a URL

telegram-send-voiceA

Send a voice note (audio recording) to a Telegram chat. Shows as a voice message with waveform UI.

telegram-send-video-noteB

Send a video note (round-shaped short video) to a Telegram chat. Shows as a circular video in the UI.

telegram-send-contactB

Send a contact card (phone number + name) to a Telegram chat.

telegram-send-diceA

Send an animated dice/game emoji to a Telegram chat. Returns the server-rolled value — useful for games, coin-flips, random picks. Values: 🎲🎯🎳 = 1-6, 🏀⚽ = 1-5, 🎰 = slot combo 1-64.

telegram-send-locationA

Send a geographic location to a Telegram chat. Static pin by default; set livePeriod to share a live-updating location for N seconds.

telegram-send-venueB

Send a venue card (point-of-interest with title and address) to a Telegram chat.

telegram-send-albumA

Send an album (group) of 2-10 photos as a single grouped message. Media type is auto-detected by file extension — videos are supported by the underlying TL call but are not covered by v1.29.0 mock tests, so uniform-photo albums are the safer choice until a live checkpoint. Uploads are serial per item: expect ≈4-10s for 10 mid-size photos, 15-40s for 10 large videos. Prefer ≤5 items or photos when low latency matters.

telegram-get-contactsA

Get your Telegram contacts list with phone numbers

telegram-get-profileA

Get detailed profile info of a Telegram user including bio, birthday, premium status, business info and more

telegram-get-contact-requestsA

Get incoming messages from non-contacts (contact requests). Shows who messaged you without being in your contacts, with message preview

telegram-add-contactA

Add a user to your Telegram contacts. Use this to accept contact requests from non-contacts

telegram-block-userB

Block a Telegram user. Blocked users cannot send you messages

telegram-unblock-userB

Unblock a previously blocked Telegram user

telegram-report-spamA

Report a chat as spam to Telegram

telegram-send-reactionA

Send emoji reaction(s) to a message. Supports multiple reactions and adding to existing ones. Omit emoji to remove all reactions

telegram-get-reactionsA

Get detailed reaction info for a message: which reactions, counts, and who reacted (when visible)

telegram-set-default-reactionA

Set the default emoji reaction used in quick-reaction menus across Telegram

telegram-get-top-reactionsB

Get the list of most popular emoji reactions available on Telegram

telegram-set-chat-reactionsA

Set which reactions are available in a chat. type='all' allows all standard emoji (set allowCustom=true to also permit custom emoji for Premium users), type='some' restricts to a specific emoji list, type='none' disables reactions entirely. Requires admin

telegram-get-recent-reactionsA

Get the list of emoji reactions the current account used recently

telegram-send-paid-reactionA

Send a paid reaction (★ Stars) on a channel post. Stars are spent from your balance. Optional private flag controls leaderboard visibility.

telegram-toggle-paid-reaction-privacyA

Change leaderboard visibility of your paid reaction on a specific channel post (Layer 198 API).

telegram-get-paid-reaction-privacyA

Get your current default paid reaction privacy setting.

telegram-transcribe-audioA

Request server-side transcription of a voice note or video note (Telegram Premium feature). Returns immediately with transcriptionId — if pending:true, call telegram-get-transcription to poll for completion.

telegram-get-transcriptionA

Poll for updated transcription result. Calls the same endpoint as telegram-transcribe-audio — Telegram guarantees idempotency (returns same transcriptionId with updated text once processing completes).

telegram-rate-transcriptionB

Rate transcription quality (good/poor) to improve Telegram speech-to-text.

telegram-get-fact-checkA

Get fact-check annotations on channel messages. Fact-checks are added by independent fact-checkers in supported countries. Most messages will show no fact-check.

telegram-edit-fact-checkA

Add or update a fact-check annotation. Requires fact-checker privileges (limited to independent verifiers in supported countries).

telegram-delete-fact-checkA

Remove a fact-check annotation. Requires fact-checker privileges.

telegram-pin-messageB

Pin a message in a Telegram chat

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/overpod/mcp-telegram'

If you have feedback or need assistance with the MCP directory API, please join our Discord server