@overpod/mcp-telegram
MCP server for Telegram userbot — messages, media, reactions, polls & more. Built on GramJS/MTProto.
Versions
1.41.2latest1.41.11.41.01.40.01.39.1+ show 52 moreshow less
1.39.01.38.21.38.11.38.01.37.11.37.01.36.51.36.41.36.31.36.21.36.11.36.01.35.01.34.01.33.01.32.01.28.11.28.01.27.11.27.01.26.11.26.01.25.01.24.11.24.01.23.01.22.01.21.01.20.01.19.01.18.01.17.01.16.01.15.01.14.01.13.01.12.01.11.11.11.01.10.11.10.01.9.01.8.11.8.01.7.01.2.01.6.01.5.01.4.01.3.11.1.11.1.0Tools 181
telegram-archive-chat Archive or unarchive a Telegram dialog (moves to/from the Archive folder)
telegram-ban-user Ban a user from a supergroup or channel (permanent until unbanned)
telegram-unban-user Unban a previously banned user from a supergroup or channel
telegram-edit-group Edit a group's title, description, or photo
telegram-set-admin Promote a user to admin in a supergroup or channel with full permissions
telegram-list-chats List Telegram chats with unread counts, type indicators, and contact status
telegram-search-chats Search for Telegram chats, users, or channels by name or username. Returns description and member count
telegram-get-chat-info Get detailed info about a Telegram chat including name, type, members, description, and forum status
telegram-get-chat-members Get members of a Telegram group or channel
telegram-get-my-role Get the current user's role in a chat (creator, admin, or member)
telegram-create-group Create a new Telegram group or supergroup
telegram-join-chat Join a Telegram group or channel by username or invite link
telegram-leave-group Leave a Telegram group or channel
telegram-invite-to-group Invite users to a Telegram group or channel
telegram-kick-user Kick a user from a Telegram group (removes without permanent ban)
telegram-pin-chat Pin or unpin a Telegram dialog in the dialog list
telegram-mark-dialog-unread Mark a Telegram dialog as unread (or clear the unread mark)
telegram-get-admin-log Get the admin action log (recent event history) of a supergroup or channel. Includes bans, edits, pins, and role changes
telegram-remove-admin Remove admin rights from a user in a supergroup or channel
telegram-set-chat-permissions 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-mode 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-signatures Enable or disable author signatures on broadcast channel posts. Channel admin required; not supported for supergroups
telegram-toggle-anti-spam Enable or disable aggressive anti-spam filtering in a supergroup. Supergroup only (not broadcast channels); requires admin with ban_users permission
telegram-toggle-forum-mode Enable or disable forum/topics mode in a supergroup. Supergroup only; requires creator or admin.
telegram-toggle-prehistory-hidden 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-request 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-topic Create a new forum topic in a forum-enabled supergroup
telegram-edit-topic Edit a forum topic — rename, change icon emoji, open/close, or show/hide
telegram-get-broadcast-stats 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-stats 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-topic Delete a forum topic and all its message history
telegram-get-sticker-set Get all stickers from a sticker set by its short name. Returns each sticker with index and emoji. Use the index with telegram-send-sticker to send a specific sticker
telegram-search-sticker-sets Search for sticker sets by name or keyword. Returns matching sticker pack names that can be used with telegram-get-sticker-set
telegram-get-installed-stickers List all sticker sets installed by the user. Returns pack names and short names for use with other sticker tools
telegram-send-sticker Send a sticker from a sticker set to a chat. First use telegram-get-sticker-set to browse available stickers and find the index
telegram-get-recent-stickers Get recently used stickers. Returns each sticker with its list index and associated emoji
telegram-status Check Telegram connection status
telegram-login Login to Telegram via QR code. Returns QR image. IMPORTANT: pass the entire result to user without modifications.
telegram-logout 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-get-my-boosts List the user's premium boost slots (premium.GetMyBoosts). Each entry includes slot index, the peer it currently boosts (if any), the date the boost was applied, expiration timestamp, and cooldownUntilDate (when a slot can be reassigned). Premium users have multiple slots; non-Premium users typically have a single slot. Read-only.
telegram-get-boosts-status Fetch the boost status of a channel/supergroup (premium.GetBoostsStatus). Returns current boost level, total boosts, progress to next level (currentLevelBoosts/nextLevelBoosts), giftBoosts, premiumAudience ratio, public boostUrl, and whether the current user is boosting (myBoost + myBoostSlots). Also includes any prepaidGiveaways attached to the chat. Read-only.
telegram-get-boosts-list List the boosts applied to a channel/supergroup (premium.GetBoostsList). Returns paginated boost entries with id, userId (or undefined for anonymous gift boosts), date, expires, flags (gift, giveaway, unclaimed), optional giveawayMsgId, usedGiftSlug, multiplier, and stars. Requires channel admin permissions. Supports pagination via nextOffset and an optional gifts filter to show only gift boosts. Read-only.
telegram-get-stars-status Fetch the current Telegram Stars balance and recent activity for a peer (payments.GetStarsStatus). Pass 'me' / '@me' (or the user's own id) to inspect your own wallet, or a bot/channel peer you own/administrate. Returns {balance:{amount,nanos}, subscriptions?[], subscriptionsNextOffset?, subscriptionsMissingBalance?, history?[], nextOffset?}. Each transaction has id, stars, date, peer (kind: appStore|playMarket|premiumBot|fragment|ads|api|peer|unsupported), and flags (refund/pending/failed/gift/reaction). Use telegram-get-stars-transactions for full paginated history. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1. Read-only.
telegram-get-stars-transactions Fetch a paginated Telegram Stars transaction history for a peer (payments.GetStarsTransactions). Pass 'me'/'@me' (or your own user id) for your wallet, or a bot/channel peer you own/administrate. Filters: inbound (credits only), outbound (debits only), ascending (chronological; default descending), subscriptionId (scope to a single subscription). Paginate with offset (cursor string from a prior response's nextOffset) and limit (default 50). Returns {balance, history[], nextOffset?, subscriptions?[], ...} — same shape as telegram-get-stars-status but focused on transactions. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1. Read-only.
telegram-get-available-star-gifts List all available Telegram Star Gifts that can be sent to other users. Returns gift ID, cost in Stars, conversion value, availability (for limited gifts), and upgrade cost. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1. Read-only.
telegram-get-saved-star-gifts List Star Gifts received by a user or chat. Pass 'me' for your own gifts. Supports pagination via offset/nextOffset and filtering flags. Returns gift ID, kind (regular/unique), stars cost, from-peer, date, and upgrade eligibility. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1. Read-only.
telegram-save-star-gift Show or hide a received Star Gift on your profile. Pass msgId for a gift received as a personal message (DM), or chatId + savedId for a gift in a chat/channel. Set unsave=true to hide the gift (remove from profile display). Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1.
telegram-convert-star-gift Convert a received Star Gift into Stars (non-reversible). The gift is removed from your profile and its conversion value is added to your Stars balance. Pass msgId for personal gifts or chatId + savedId for chat gifts. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1.
telegram-get-stars-topup-options List available Telegram Stars top-up tiers (from payments.GetStarsTopupOptions). Returns each option with star count, currency, price amount (in smallest currency units), and whether it is an extended/premium tier. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1. Read-only.
telegram-get-stars-subscriptions List active Telegram Stars subscriptions for a peer (payments.GetStarsSubscriptions). Pass 'me' for your own account or a bot/channel you own. Returns subscription ID, peer, renewal date, period, price in Stars, and canceled status. Paginate with offset. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1. Read-only.
telegram-change-stars-subscription Cancel or restore a Telegram Stars subscription (payments.ChangeStarsSubscription). Pass canceled=true to cancel an active subscription before its next renewal, or false to restore a previously canceled one. Opt-in: register only when MCP_TELEGRAM_ENABLE_STARS=1.
telegram-get-business-chat-links List Telegram Business chat links configured for the account. Each entry includes the t.me/... link, the prefilled message, optional title (admin-facing label), views count, and entityCount. Requires Telegram Business — returns empty list when none configured.
telegram-create-business-chat-link Create a Telegram Business chat link (t.me/m/... deep-link that opens a chat with you pre-filled with a message). Returns JSON with link, slug, message, title, and views. Requires Telegram Business subscription.
telegram-edit-business-chat-link Edit an existing Telegram Business chat link by its slug (the trailing segment after t.me/m/). Returns JSON with updated fields. Requires Telegram Business subscription.
telegram-delete-business-chat-link Delete a Telegram Business chat link by its slug. Requires Telegram Business subscription.
telegram-resolve-business-chat-link Resolve a Telegram Business chat link by slug to see whose chat it opens and the pre-filled message. Returns JSON with peerId, peerType, message, and entityCount.
telegram-set-business-hours Set Telegram Business work hours — days and time ranges when your business is open. Requires Telegram Business subscription. Pass clear=true to disable the work hours display entirely.
telegram-set-business-location Set Telegram Business physical location (address + optional geo coordinates). Requires Telegram Business subscription. Pass clear=true to remove.
telegram-set-business-greeting Set Telegram Business greeting message — auto-reply sent to new conversations using a quick reply shortcut as template. Requires Telegram Business subscription. Pass clear=true to disable.
telegram-set-business-away Set Telegram Business away message — auto-reply when you are offline or outside work hours. Uses a quick reply shortcut as template. Requires Telegram Business subscription. Pass clear=true to disable.
telegram-set-business-intro Set Telegram Business intro card — title and description shown to new users opening your chat, with an optional sticker. Requires Telegram Business subscription. Pass clear=true to remove.
telegram-get-fact-check 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-check Add or update a fact-check annotation. Requires fact-checker privileges (limited to independent verifiers in supported countries).
telegram-delete-fact-check Remove a fact-check annotation. Requires fact-checker privileges.
telegram-pin-message Pin a message in a Telegram chat
telegram-unpin-message Unpin a message in a Telegram chat
telegram-send-scheduled Send a scheduled message to a Telegram chat. The message will be delivered at the specified time by Telegram servers
telegram-create-poll Create a poll in a Telegram chat (multiple choice or quiz mode)
telegram-list-topics List forum topics in a Telegram group with Topics enabled. Shows topic names, unread counts, and status
telegram-read-topic-messages Read messages from a specific forum topic in a Telegram group
telegram-get-group-call Fetch metadata + an optional initial slice of participants for the active group call (voice/video chat) attached to a chat (phone.GetGroupCall). Returns call info (id, accessHash, participantsCount, title, scheduleDate, recordStartDate, streamDcId, flags) plus a participant slice (peer, date, muted/left/self flags, source, volume, video/presentation indicators) and participantsNextOffset. Pass limit:0 (default) for metadata only. Opt-in: register only when MCP_TELEGRAM_ENABLE_GROUP_CALLS=1. Read-only.
telegram-get-group-call-participants List participants of the active group call (voice/video chat) attached to a chat with pagination (phone.GetGroupParticipants). Looks up the chat's current InputGroupCall automatically, then returns {count, participants[], nextOffset?, version}. Each participant includes peer, date, source, volume, muted/self/left/videoJoined flags, raise-hand rating, about text, and hasVideo/hasPresentation indicators. Pass offset from a prior call's nextOffset to paginate; pass ids (user/channel peers) or sources to filter to specific participants. Opt-in: register only when MCP_TELEGRAM_ENABLE_GROUP_CALLS=1. Read-only.
telegram-send-message Send a message to a Telegram chat
telegram-read-messages Read recent messages from a Telegram chat with sender names, dates, media info, and reactions
telegram-search-messages Search messages in a specific Telegram chat by text
telegram-search-global Search messages globally across all public Telegram chats and channels
telegram-edit-message Edit a previously sent message in Telegram
telegram-delete-message Delete messages in a Telegram chat
telegram-forward-message Forward messages between Telegram chats
telegram-get-unread Get chats with unread messages. Forums show per-topic unread breakdown
telegram-get-scheduled List scheduled messages in a Telegram chat
telegram-delete-scheduled Delete scheduled messages in a Telegram chat
telegram-get-replies Get replies/comments under a Telegram channel post or discussion message
telegram-get-message-link Get a t.me link to a specific message in a Telegram channel or supergroup
telegram-get-unread-mentions 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-reactions 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-message Translate one or more Telegram messages to a target language (requires Telegram Premium). Consumes account translation quota.
telegram-send-typing Send a typing/upload indicator to a Telegram chat (or cancel it)
telegram-mark-as-read Mark a Telegram chat as read
telegram-inline-query 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-send 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-buttons 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-button 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-state 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-updates 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-updates 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-message 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-discussion 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-participants 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-poll Vote in a poll by option index (single or multi-choice). Empty array retracts vote.
telegram-get-poll-results Get aggregated poll results: vote counts, percentages, quiz answer status
telegram-get-poll-voters List users who voted for specific poll options (public polls only, paginated)
telegram-close-poll Close a poll permanently. This is a one-way operation — closed polls cannot be reopened.
telegram-get-outbox-read-date 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-get-contacts Get your Telegram contacts list with phone numbers
telegram-get-profile Get detailed profile info of a Telegram user including bio, birthday, premium status, business info and more
telegram-get-contact-requests Get incoming messages from non-contacts (contact requests). Shows who messaged you without being in your contacts, with message preview
telegram-add-contact Add a user to your Telegram contacts. Use this to accept contact requests from non-contacts
telegram-block-user Block a Telegram user. Blocked users cannot send you messages
telegram-unblock-user Unblock a previously blocked Telegram user
telegram-report-spam Report a chat as spam to Telegram
telegram-send-voice Send a voice note (audio recording) to a Telegram chat. Shows as a voice message with waveform UI.
telegram-send-video-note Send a video note (round-shaped short video) to a Telegram chat. Shows as a circular video in the UI.
telegram-send-contact Send a contact card (phone number + name) to a Telegram chat.
telegram-send-dice Send an animated dice/game emoji to a Telegram chat. Returns the server-rolled value — useful for games,
telegram-send-location 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-venue Send a venue card (point-of-interest with title and address) to a Telegram chat.
telegram-send-album Send an album (group) of 2-10 photos as a single grouped message. Media type is auto-detected
telegram-transcribe-audio 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-transcription 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-transcription Rate transcription quality (good/poor) to improve Telegram speech-to-text.
telegram-mute-chat Mute or unmute notifications for a Telegram chat. Set muted=true to mute (optionally with duration in seconds), muted=false to unmute
telegram-get-chat-folders Get list of your Telegram chat folders (filters) with their names and chat counts
telegram-set-auto-delete Set auto-delete timer for messages in a chat. Common values: 86400 (1 day), 604800 (1 week), 2592000 (1 month). Use 0 to disable
telegram-get-sessions Get list of all active Telegram sessions (logged-in devices) with device info, IP, and last active time
telegram-terminate-session Terminate a specific Telegram session by its hash, or explicitly terminate all other sessions by setting terminateAllOther=true
telegram-set-privacy Configure privacy settings for your Telegram account. Controls who can see your phone number, last seen, profile photo, etc.
telegram-update-profile Update your Telegram profile — first name, last name, bio, or username
telegram-create-invite-link Create a new invite link for a group or channel
telegram-get-invite-links Get list of invite links for a group or channel. By default returns links created by the current account; pass adminId to query another admin's links
telegram-save-draft Save or clear a message draft for a chat. Pass empty text to clear the draft. Optional replyTo sets the message being replied to
telegram-get-drafts Get all saved message drafts across chats
telegram-clear-drafts Delete saved message drafts. Pass chatId to clear the draft for a single chat. Without chatId, clears drafts in ALL chats — requires confirmAllChats: true
telegram-get-saved-dialogs Get Saved Messages dialogs (Telegram's per-sender grouping of messages forwarded to your Saved Messages)
telegram-revoke-invite-link Revoke an invite link for a group or channel
telegram-set-emoji-status Set your profile emoji status (custom animated emoji shown next to your name). Requires Telegram Premium. Pass documentId or collectibleId to set — omit both to clear the status. Use telegram-list-emoji-statuses to browse available IDs.
telegram-list-emoji-statuses List default or recently-used emoji statuses available for your account. Useful for finding a documentId to pass to telegram-set-emoji-status.
telegram-clear-recent-emoji-statuses Clear your recently-used emoji status list (the 'recent' section in the emoji status picker).
telegram-set-profile-color Set your profile name color or profile background color. Requires Telegram Premium for colors above index 6 and for profile background patterns. Omit color to reset to default.
telegram-set-birthday Set your birthday in your Telegram profile. Year is optional (omit to hide age). Pass clear=true to remove birthday. Requires day and month unless clearing.
telegram-set-personal-channel Set the channel displayed on your profile as 'Personal Channel'. Pass clear=true to remove. Pass channelId or @username of a channel you own or are subscribed to.
telegram-set-profile-photo Upload and set a new profile photo from a local file. Supports JPEG/PNG for static avatar or MP4 for animated avatar (square, up to 10s). Optionally set as fallback photo shown to users who cannot see your main photo.
telegram-delete-profile-photo Delete one or more profile photos by their photo IDs. Use telegram-get-profile-photo to obtain the current photo ID. Returns which IDs were deleted and which were not found.
telegram-send-file Send a file (photo, document, video, etc.) to a Telegram chat
telegram-download-media Download media from a Telegram message to a local file
telegram-get-profile-photo Download profile photo of a Telegram user, group, or channel. Returns inline image or saves to file
telegram-get-web-preview Fetch Telegram's web-page preview metadata (type, title, description, site name) for a URL
telegram-create-folder Create a new Telegram chat folder (filter). Returns the new folder ID. Pass type flags to auto-include entire categories, or list specific chats in includePeers. Emoticon must be a single emoji character.
telegram-edit-folder Edit an existing Telegram chat folder by its ID (from telegram-get-chat-folders). Only pass fields you want to change — omitted fields keep their current values.
telegram-delete-folder Delete a Telegram chat folder by its ID. Chats inside the folder are not deleted — they remain in All Chats. System folders (0 = All Chats, 1 = Archive) cannot be deleted.
telegram-reorder-folders Reorder Telegram chat folders by specifying a new order of folder IDs. All existing custom folder IDs must be included.
telegram-get-suggested-folders Get Telegram's suggested chat folders based on your chat list (e.g. 'Unread', 'Personal', 'Work'). Returns folder templates you can create with telegram-create-folder.
telegram-toggle-folder-tags Enable or disable folder tags (colored labels that appear on messages in chat lists when the message belongs to a tagged folder). Requires Telegram Premium.
telegram-get-global-privacy-settings Get your account-level global privacy settings: whether new non-contacts are auto-archived/muted, whether archived chats are kept unmuted, whether read receipts are hidden, and whether non-contacts must have Premium to message you.
telegram-set-global-privacy-settings Update account-level global privacy settings. Only pass the fields you want to change — omitted fields keep their current values. hideReadMarks and newNoncontactPeersRequirePremium require Telegram Premium.
telegram-send-reaction Send emoji reaction(s) to a message. Supports multiple reactions and adding to existing ones. Omit emoji to remove all reactions
telegram-get-reactions Get detailed reaction info for a message: which reactions, counts, and who reacted (when visible)
telegram-set-default-reaction Set the default emoji reaction used in quick-reaction menus across Telegram
telegram-get-top-reactions Get the list of most popular emoji reactions available on Telegram
telegram-set-chat-reactions 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-reactions Get the list of emoji reactions the current account used recently
telegram-send-paid-reaction 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-privacy Change leaderboard visibility of your paid reaction on a specific channel post (Layer 198 API).
telegram-get-paid-reaction-privacy Get your current default paid reaction privacy setting.
telegram-get-all-stories Fetch active stories from contacts/channels the user follows. Pagination via 'next' + 'state' — pass the returned state back on the next call with next:true to load more. Use hidden:true to read stories from muted/archived peers. Returns compact story metadata (id, date, expireDate, caption, mediaType, counters) without raw media blobs.
telegram-get-peer-stories Fetch currently active stories posted by a specific peer (user/channel). Returns compact story metadata (id, date, expireDate, caption, mediaType, counters) with media type className only — no raw media blobs. Use telegram-download-media with the story id if you need media bytes.
telegram-get-stories-by-id Fetch specific stories from a peer by their numeric IDs. Useful for retrieving archived/pinned stories outside the active feed. Returns compact story metadata and optional pinnedToTop list. Pass up to ~100 ids per request.
telegram-get-story-views List viewers of one of YOUR stories (stories.GetStoryViewsList). Returns per-viewer entries (user id, view date, their reaction emoji if any), plus totals (viewsCount, forwardsCount, reactionsCount) and nextOffset for pagination. Pass your own user id (numeric) or @username as the peer — this only works for stories you posted. Some accounts (non-Premium, old stories) may not get a full viewer list — a Premium hint is surfaced on typical errors.
telegram-send-story Publish a new story (photo or video) to your profile or a channel you manage. Privacy: everyone/contacts/close_friends/selected (allowUserIds required for 'selected'). MediaAreas not supported in this version.
telegram-edit-story Edit an existing story: replace media, update caption ('' clears it), or change privacy rules.
telegram-delete-stories Delete one or more of your own stories. This action is irreversible and requires confirm:true.
telegram-react-to-story React to a story with an emoji, or remove the current reaction by passing ''.
telegram-export-story-link Get a shareable t.me/… URL for a public story.
telegram-read-stories Mark stories as seen up to a given story ID (maxId, inclusive).
telegram-toggle-story-pinned Pin or unpin stories in your profile highlights (Telegram allows up to 3 pinned stories).
telegram-toggle-story-pinned-to-top Pin stories to the very top of your pinned row. Pass an empty array [] to clear all top-pinned stories.
telegram-activate-stealth-mode Hide your story views retroactively (past=true) and/or for the next 25 minutes (future=true). Requires Telegram Premium — non-Premium accounts receive PREMIUM_ACCOUNT_REQUIRED.
telegram-get-stories-archive Fetch auto-archived (expired) stories from a peer's archive. Paginate via offsetId (pass last story id from previous page).
telegram-report-story Report a story via the multi-step option flow. First call with option:'' starts the flow; subsequent calls pass the base64 option bytes from the previous response.
telegram-get-quick-replies Fetch the list of quick-reply shortcuts configured for the user account (messages.GetQuickReplies). Each entry has {shortcutId, shortcut, topMessage, count} — use the shortcutId with telegram-get-quick-reply-messages to inspect the stored messages. Optional `hash` implements Telegram's hash-based diff: pass the last-known aggregate hash as a decimal string and the server may respond with {notModified:true} if nothing changed. Opt-in: register only when MCP_TELEGRAM_ENABLE_QUICK_REPLIES=1. Read-only.
telegram-get-quick-reply-messages Fetch messages stored under a quick-reply shortcut (messages.GetQuickReplyMessages). Use `shortcutId` from telegram-get-quick-replies. Optional `ids` narrows to specific message ids within the shortcut. Optional `hash` implements Telegram's hash-based diff: pass the last-known aggregate hash as a decimal string — the server may respond with {notModified:true, count} if nothing changed. Returns compact {count, messages[{id, date, text, isService, fromId?, replyToMsgId?}]}. Opt-in: register only when MCP_TELEGRAM_ENABLE_QUICK_REPLIES=1. Read-only.
Permissions 4
network medium filesystem low shell high env_vars low