Telegram MCP server

Communitychigwell (Eugene Evstafev)1,200Config last verified Jun 1, 2026

A maintained Telegram MCP server powered by Telethon: read chats, manage groups and contacts, and send or modify messages, media, and more from your agent.

telegram-mcp is a comprehensive, actively maintained Telegram MCP server that drives a real Telegram user account through the Telethon MTProto library, giving an agent the same reach a person has in the app. It exposes a very broad surface — well over a hundred tools — spanning chats and groups (list, inspect, create groups and channels, join or leave, invite users, manage admins and bans, set permissions, slow mode, topics, and invite links), messages (send, schedule, edit, delete, forward, pin, mark read, reply, search, polls, reactions, and inline-button presses), contacts (list, search, add, delete, block, import, and export), media (send files, voice notes, stickers, GIFs, and download media), profile and privacy settings, and Telegram folders and drafts. Multiple accounts can be configured and addressed by label.

It runs locally over stdio. You authenticate by generating a Telethon session string from your Telegram API credentials (TELEGRAM_API_ID and TELEGRAM_API_HASH from my.telegram.org), then run the server with that TELEGRAM_SESSION_STRING. An optional TELEGRAM_EXPOSED_TOOLS variable prunes the tool set. The project is open source under the Apache 2.0 license. Because it acts as your full user account, scope and approve write tools carefully.

Quick install

Copy-paste configs are provided for all 8 supported clients. Pick your client below.

Add to ~/.claude.json

~/.claude.json
json
{
  "mcpServers": {
    "telegram": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/chigwell/telegram-mcp",
        "telegram-mcp"
      ],
      "env": {
        "TELEGRAM_API_ID": "<TELEGRAM_API_ID>",
        "TELEGRAM_API_HASH": "<TELEGRAM_API_HASH>",
        "TELEGRAM_SESSION_STRING": "<TELEGRAM_SESSION_STRING>",
        "TELEGRAM_EXPOSED_TOOLS": "<TELEGRAM_EXPOSED_TOOLS>"
      }
    }
  }
}
Or via CLI
bash
claude mcp add telegram -- uvx --from git+https://github.com/chigwell/telegram-mcp telegram-mcp

Available tools

ToolDescription
list_accountsLists all configured Telegram accounts with profile info.
get_chatsGets a paginated list of your chats.
subscribe_public_channelSubscribes (joins) a public channel.
list_topicsLists forum topics in a chat.
list_chatsLists chats with optional filtering.
get_chatGets details of a chat by ID or username.
search_public_chatsSearches public chats by query.
resolve_usernameResolves a username to its entity ID.
get_full_chatGets full metadata for a chat.
mute_chatMutes notifications for a chat.
unmute_chatUnmutes notifications for a chat.
archive_chatArchives a chat.
unarchive_chatUnarchives a chat.
get_common_chatsGets chats you have in common with a user.
get_message_read_byGets which users have read a message.
get_message_linkGets a shareable link to a message.
list_contactsLists your Telegram contacts.
search_contactsSearches your contacts by query.
get_contact_idsGets the IDs of your contacts.
get_direct_chat_by_contactFinds the direct chat with a contact.
get_contact_chatsGets chats associated with a contact.
get_last_interactionGets your last interaction with a contact.
add_contactAdds a new contact.
delete_contactDeletes a contact.
block_userBlocks a user.
unblock_userUnblocks a user.
import_contactsImports a batch of contacts.
export_contactsExports your contacts.
get_blocked_usersLists users you have blocked.
send_contactSends a contact card to a chat.
wait_for_new_messageWaits for the next new incoming message.
wait_for_settled_messageWaits until incoming messages settle, then returns them.
list_foldersLists your Telegram folders.
get_folderGets a folder by ID.
create_folderCreates a new folder.
add_chat_to_folderAdds a chat to a folder.
remove_chat_from_folderRemoves a chat from a folder.
delete_folderDeletes a folder.
reorder_foldersReorders your folders.
create_groupCreates a new group with the given users.
invite_to_groupInvites users to a group.
leave_chatLeaves a chat or group.
get_participantsLists participants of a chat.
create_channelCreates a new channel.
edit_chat_titleEdits a chat's title.
edit_chat_photoEdits a chat's photo.
edit_chat_aboutEdits a chat's description.
delete_chat_photoDeletes a chat's photo.
promote_adminPromotes a user to admin.
demote_adminDemotes an admin.
ban_userBans a user from a chat.
unban_userUnbans a user from a chat.
set_default_chat_permissionsSets default permissions for a chat.
toggle_slow_modeToggles slow mode for a chat.
edit_admin_rightsEdits an admin's rights.
get_adminsLists admins of a chat.
get_banned_usersLists banned users of a chat.
get_invite_linkGets a chat's invite link.
join_chat_by_linkJoins a chat by invite link.
export_chat_inviteExports a chat invite link.
import_chat_inviteJoins a chat using an invite hash.
get_recent_actionsGets the recent admin actions log for a chat.
send_fileSends a file to a chat.
send_albumSends an album of media to a chat.
download_mediaDownloads media from a message.
send_voiceSends a voice note to a chat.
upload_fileUploads a file to Telegram.
get_media_infoGets info about a message's media.
get_sticker_setsLists available sticker sets.
send_stickerSends a sticker to a chat.
get_gif_searchSearches for GIFs.
send_gifSends a GIF to a chat.
get_messagesGets messages from a chat.
send_messageSends a text message to a chat.
send_scheduled_messageSchedules a message to send later.
get_scheduled_messagesLists scheduled messages in a chat.
delete_scheduled_messageDeletes a scheduled message.
list_inline_buttonsLists inline buttons on a message.
press_inline_buttonPresses an inline callback button on a message.
list_messagesLists messages in a chat with filtering.
get_message_contextGets surrounding context for a message.
forward_messageForwards a message to another chat.
forward_messagesForwards multiple messages to another chat.
edit_messageEdits a message you sent.
delete_messageDeletes a message.
delete_chat_historyDeletes the history of a chat.
delete_messages_bulkDeletes multiple messages at once.
pin_messagePins a message in a chat.
unpin_messageUnpins a message in a chat.
unpin_all_messagesUnpins all messages in a chat.
mark_as_readMarks a chat's messages as read.
reply_to_messageReplies to a specific message.
search_messagesSearches messages within a chat.
search_globalSearches messages globally across chats.
get_historyGets the message history of a chat.
get_pinned_messagesLists pinned messages in a chat.
create_pollCreates a poll in a chat.
send_reactionAdds a reaction to a message.
remove_reactionRemoves a reaction from a message.
get_message_reactionsGets reactions on a message.
save_draftSaves a draft message for a chat.
get_draftsLists your saved drafts.
clear_draftClears the draft for a chat.
get_meGets your own account info.
update_profileUpdates your profile fields.
set_profile_photoSets your profile photo.
delete_profile_photoDeletes your profile photo.
get_privacy_settingsGets your privacy settings.
set_privacy_settingsUpdates your privacy settings.
get_full_userGets full info about a user.
get_bot_infoGets info about a bot.
set_bot_commandsSets command list for a bot you own.
get_user_photosGets a user's profile photos.
get_user_statusGets a user's online status.

Required configuration

  • TELEGRAM_API_IDRequired

    Your Telegram API ID from my.telegram.org.

  • TELEGRAM_API_HASHRequired

    Your Telegram API hash from my.telegram.org.

  • TELEGRAM_SESSION_STRINGRequired

    Telethon session string authorizing your Telegram user account.

  • TELEGRAM_EXPOSED_TOOLSOptional

    Optional comma-separated allowlist that prunes which tools the server exposes.

What you can do with it

Triage and reply to chats from your agent

The agent lists recent chats, reads the latest messages for context, and drafts or sends a reply — useful for staying on top of DMs and group threads without opening the app.

Administer a community group or channel

Manage members and moderation at scale: promote or demote admins, ban or unban users, set permissions and slow mode, manage invite links, and review the recent admin action log.

FAQ

Is it free?
Yes. telegram-mcp is free and open source under the Apache 2.0 license. You only need free Telegram API credentials from my.telegram.org; there is no separate fee for the server.
Does it support remote/OAuth?
No. It runs locally over stdio and authenticates with a Telethon session string derived from your Telegram API ID and hash, not OAuth. There is no hosted remote endpoint.
Does it use a bot or my real account?
It drives your real Telegram user account through MTProto (Telethon), so it can do anything you can in the app. Treat the write tools carefully and consider TELEGRAM_EXPOSED_TOOLS to limit what is enabled.
← Browse all communication servers