MCP Telegram

[!WARNING] This server signs in as a real Telegram user (not a bot). Sessions live in ~/.telegram-agent/. Treat that directory like a password.

Local serverstdioMIT

What is the MCP Telegram MCP Server?

MCP Telegram is an MCP project maintained in the tacticlaunch/mcp-telegram repository. The maintainer describes its purpose as “[!WARNING] This server signs in as a real Telegram user (not a bot). Sessions live in ~/.telegram-agent/. Treat that directory like a password”. Read the project documentation for the complete scope.

Installation

The documented npm package is mcp-telegram. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.

Configuration values

The example declares TELEGRAM_API_ID, TELEGRAM_API_HASH. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
loginBrowser-based sign-in. Adds an account.
list_accountsList signed-in accounts.
list_dialogsList dialogs. Filters: unread, archived, ignorePinned, folder, limit.
list_messagesList messages in a dialog.
search_messagesSearch inside one dialog (text, type filter, sender, date range).
search_globalSearch across every chat.
search_dialogsFind dialogs by name/title/username substring.
send_messageSend text.
send_fileSend a file (path or URL). Albums via array.
download_mediaSave a message's media to disk.
transcribe_messageTranscribe voice/video (Premium).
invoke_mtprotoCall any MTProto method by qualified name (e.g. messages.SendMessage, stories.GetAllStories). String values for peer/channel/user/fromPeer/toPeer/bot/chat…
logoutDrop a local session and revoke it on Telegram.
open_settingsOpen the local settings page (tool surface + read-only).
get_meReturn the profile of the authenticated user.
update_profileChange own first/last name and bio.
update_my_usernameSet or clear own @username.
set_birthdaySet the account birthday.
set_profile_photoUpload a new avatar (local path or URL).
resolve_usernameResolve @username to a user/channel/chat entity.
list_foldersList custom dialog folders (chat filters).
list_contactsAll contacts.
get_messageFetch one or more messages by id.
get_message_reactionsRead reactions.
mark_as_readMark messages read up to an id.
edit_messageEdit a previously sent message.
delete_messagesDelete by id (optionally revoke for all).
forward_messagesForward messages between dialogs.
send_reactionSet emoji reactions on a message.
send_message_to_phoneSend to a phone number, auto-creates a temporary contact.
download_profile_photoSave a peer's avatar to disk.
send_pollSend a poll. Supports quiz, multiple-choice, anonymous, close period.
vote_pollCast a vote.
close_pollFinalize a poll.
get_poll_resultsFetch tally.
set_default_reactionSet account-wide default.
list_storiesFeed of contacts' stories.
get_peer_storiesOne peer's stories.
send_storyPost a story (photo or video).
delete_storyDelete own stories.
view_storyMark stories viewed.
get_story_viewersList who viewed your story.
ban_userFull ban (optional untilDate).
unban_userLift restrictions.
restrict_userApply a custom rights mask.
promote_adminGrant admin rights (with rank).
demote_adminStrip admin rights.
invite_userAdd users to a channel/supergroup.
kick_participantKick from chat/channel.
get_participantSingle participant info.
list_participantsMembers with filter (admins/banned/bots/...) and substring search.
delete_user_historyRemove every message by a user.
get_admin_logRecent admin events with event-type filter.
edit_titleChange title (works for channels, supergroups, and basic groups).
edit_aboutChange description.
edit_photoChange avatar (path or URL).
update_usernameSet/clear public @username.
check_usernameCheck availability.
set_slow_modeSet slow-mode seconds.
toggle_signaturesAuthor signatures on channel posts.
toggle_pre_history_hiddenHide history from new members.
toggle_join_requestRequire admin approval to join.
leave_channelLeave a channel/supergroup.
get_channel_infoExtended info (about, counts, linked chat, slow-mode).
get_user_infoExtended user info (bio, common chats).
create_channelNew broadcast channel or supergroup (optional forum mode).
delete_channelPermanently delete.
migrate_chatBasic group → supergroup.
transfer_ownershipHand over creator rights (requires 2FA password).
create_invite_linkNew link with optional expiry, usage cap, join-request gate.
list_invite_linksList active or revoked links.
revoke_invite_linkRevoke a specific link.
list_invite_joinersList users that joined via a link.
list_topicsList forum topics.
create_topicCreate a new topic.
edit_topicRename, re-icon, close, hide.
save_draftSave a draft for a dialog.
clear_draftDrop the draft for a dialog.
list_draftsList all dialog drafts.
mute_peerMute a chat (optional untilDate).
unmute_peerUnmute.
get_notify_settingsRead settings.
set_notify_settingsUpdate mute, previews, sound, story-mute.
create_folderNew folder with include/exclude rules.
edit_folderReplace folder rules.
delete_folderRemove a folder.
reorder_foldersSet display order.
add_contactAdd a user to contacts.
delete_contactRemove users from contacts.
search_contactsSearch contacts + global directory.
list_blockedBlock list.
get_privacyRead a privacy key.
set_privacyUpdate a privacy key (mode + allow/disallow lists).
get_my_stickersInstalled sticker sets.
install_sticker_setInstall by short name.
add_recent_stickerPin a sticker to recent.
get_my_boostsList your boost slots.
apply_boostApply slots to a channel.
get_inline_bot_resultsRun an inline bot query.
VariableEffect

How to install the MCP Telegram MCP Server

{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-telegram"
      ],
      "env": {
        "TELEGRAM_API_ID": "123456",
        "TELEGRAM_API_HASH": "abc..."
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
TELEGRAM_API_IDDeclared in the maintainer’s client configuration.Yes
TELEGRAM_API_HASHDeclared in the maintainer’s client configuration.Yes