PlugWiki
telegram-mcp logo

telegram-mcp (chigwell): community Telegram MCP server

CommunityLocal

Lets your AI assistant read, search and send Telegram messages as you, using your own account rather than a bot.

This is a community server, not made by Telegram, and it is the most widely used way to connect Telegram to Claude, Cursor or Codex. It signs in as your own Telegram account, so your assistant can read your chats, search messages, and send, edit or delete messages as you. That reach is the thing to know first: it works on your whole account, and Telegram can limit accounts that behave like bots. Turn on its read-only mode unless you need it to send.

Good for

  • Busy Telegram users who want unread chats summarized and replies drafted
  • Community and group admins who manage members, invites, bans and topics
  • Researchers who search and analyze long chat or channel histories
  • Developers who want Claude Code or Codex to post updates to a Telegram chat
  • People comfortable running a Python project on their own computer

Works in

4 supported · 8 should work

Tap an app to see how to set it up and any known problems.

Install telegram MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the telegram MCP server to Claude Code. Run this command:
    
    claude mcp add --transport http telegram http://127.0.0.1:8765/mcp
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Python 3.10+ and uv, Telegram API ID and hash from my.telegram.org/apps, A session string from the project's generator.

Read-only mode: Want it to only read? Set TELEGRAM_EXPOSED_TOOLS=read-only before you start the server.

First, get the code and a login: git clone https://github.com/chigwell/telegram-mcp.git, then cd telegram-mcp, uv sync and uv run session_string_generator.py (add --qr to log in by scanning from your phone). Do not install with pip or uvx: the PyPI package of that name is a different project. The shared server holds one Telegram connection for all your apps, which Telegram tolerates better than many parallel logins. An unconfirmed report says other websites could trigger actions through the shared mode; until it is resolved, the Local (uv) option avoids it, at the cost of one Telegram login per app.

From the project README. Source.

Tools

  • Lists your Telegram chats with basic details

    Shows your chats, groups and channels with basic details such as name and type.

    Try: “Show my most recent Telegram chats”

    Network · list_chats

  • Lists your chats a page at a time

    Returns your chats in pages, so a long chat list can be read in pieces.

    Try: “Show the first 20 of my Telegram chats”

    Network · get_chats

  • Shows details about one chat

    Returns detailed information about a single chat, group or channel.

    Try: “Give me the details of my chat with the design team”

    Network · get_chat

  • Shows a group or channel's full info, including its description

    Returns the full details of a group or channel, including its About text.

    Try: “What is the description of the Python Jobs channel?”

    Network · get_full_chat

  • Reads recent messages from a chat

    Returns messages from a chat, a page at a time. In forum groups each message shows which topic it belongs to.

    Try: “Show the latest messages in my family group chat”

    Network · get_messages

  • Finds messages in a chat using filters

    Retrieves messages from a chat with optional filters to narrow them down.

    Try: “List messages in the project chat from last week”

    Network · list_messages

  • Reads a chat's history, up to a limit you choose

    Returns the chat history up to a set number of messages.

    Try: “Read the last 200 messages in the book club group”

    Network · get_history

  • Shows the messages around one message

    Returns the messages just before and after a given message so you can see what was being discussed.

    Try: “Show what was said around that message about the invoice”

    Network · get_message_context

  • Searches one chat for messages containing some text

    Looks through a single chat for messages that match the text you give.

    Try: “Find messages in the team chat that mention the budget”

    Network · search_messages

  • Searches all your chats for some text

    Searches the text of messages across every chat on your account.

    Try: “Search all my Telegram chats for the flight confirmation”

    Network · search_global

  • Shows the pinned messages in a chat

    Returns every pinned message in a chat.

    Try: “What messages are pinned in the announcements channel?”

    Network · get_pinned_messages

  • Sends a message from your account

    Sends a message to a chat as you. It supports plain text, HTML or Markdown formatting, date chips and custom emoji.

    Try: “Send Anna a message saying I will be 10 minutes late”

    Write · send_message

Read from the source code

Pros and cons

Good

  • Covers nearly everything the Telegram app does, from chats and contacts to groups, folders and admin tasks.
  • A read-only mode hides every tool that can change things.
  • You can limit it to a list of chats so the rest stay invisible.
  • File tools stay off until you choose which folders it may use.
  • Actively maintained, with frequent releases and quick fixes to reported bugs.
  • Free and open source, running on your own computer.

Watch out

  • Not made by Telegram, and it works on your whole account rather than a separate bot.
  • It can delete messages for everyone in a chat.
  • Telegram may limit or ban accounts that send fast or in bulk.
  • Setup needs a git clone, Python tools, Telegram API keys and a session string.
  • The PyPI package with the same name is a different project, so the usual one-line install is unsafe.
  • Running several copies at once can trip Telegram's limits; use its shared mode for more than one app.

Permissions

high risk · 6 things to watch

High risk

It logs in as you, so a mistaken or tricked assistant can send, edit or delete messages for everyone in your chats, and the session string is a full login to your account. Turn on read-only mode, limit it to the chats you need, and keep the session string out of shared files.

What it can do

Watch out for

  • It acts as you, on your whole account

    The session string is a full login to your Telegram account. Anyone who gets it can read and send as you, so keep it out of git and shared configs. github.com

  • It can delete messages for everyone

    Its delete tools remove messages on both sides by default. Use read-only mode unless you need it to change things. github.com

  • Telegram may limit or ban the account

    Telegram flags fast or bulk activity from third-party apps. Use an account you have had for a while and avoid mass messaging; @SpamBot tells you if you are limited. docs.telethon.dev

  • The PyPI package is someone else's

    The telegram-mcp name on PyPI belongs to a different project. Install only from the GitHub repo, or that package could receive your Telegram login. github.com

  • Unconfirmed report of two security flaws

    A researcher reported a cross-site request issue in the shared web mode and a chat-allowlist bypass but has not published details, and neither is confirmed. Until it is resolved, prefer the default local mode over the shared web mode. github.com

  • Chat allowlist had gaps (fixed)

    Some tools could reach chats outside the allowlist until a fix in October 2026. Update to the latest release. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Turning on read-onlySet TELEGRAM_EXPOSED_TOOLS=read-only in the server's env; read-only+send_message,reply_to_message keeps read-only and adds only those write tools.
Talks toTelegram servers (MTProto)
Sign-in and keysYour Telegram API ID and hash plus a session string or .session file, kept in .env or your client's config on your machine.

Alternatives

Use this server if you want your assistant to work inside your own Telegram account, and turn on read-only mode. Pick the read-only server if you only want reading and search, Chatroost if you do not want to run Python, or a bot server if messages should come from a bot instead of you.

ServerRunsSign-inCan change thingsGitHub stars
telegram-mcp (chigwell)This pageLocalYour accountYes1.9K
telegram-mcp (chaindead)–––350
mcp-telegram (dryeab)Local––254
ChatroostHostedLocalYour accountYes64
telegram-mcp-readonly––No13
Telegram Bot MCP ServerLocalBot tokenYes1

What people say

People like how fast bugs get fixed, and worry about how much an assistant can do to an account it fully controls.

What people like

  • Reported allowlist and privacy-setting bugs were fixed within a day.

Common complaints

  • A privacy-settings change could make your phone number visible to everyone without saying so, until it was fixed.
  • One user lost outgoing messages across many chats while using it with Codex, and the cause was never found.

In their words

Questions

Is there an official Telegram MCP server?

No. Telegram does not publish one. This community server is the most widely used, with far more GitHub stars than the next one.

Does it use a bot or my own account?

Your own account. It logs in with an API ID and hash from my.telegram.org and a session string, so everything it sends comes from you. If you want messages to come from a bot, use a bot server instead.

Can my Telegram account get banned?

It can happen. Telegram limits or bans accounts that act like spammers through third-party apps, especially new accounts or fast bulk sending. Use an account you have had for a while, and message @SpamBot to check if you are limited.

Is it safe?

Only with care. It has full access to your account, so turn on read-only mode, limit it to the chats you need, and never share your session string.

How do I make it read-only?

Set TELEGRAM_EXPOSED_TOOLS to read-only in the server settings. You can add just the sending tools back with read-only+send_message,reply_to_message.

Can it delete my messages?

Yes, unless you use read-only mode. Its delete tools remove messages for everyone in the chat by default, and it can clear whole chat histories.

Can I limit it to certain chats?

Yes. List the chats in TELEGRAM_ALLOWED_CHAT_IDS and every other chat stays hidden from the assistant.

Can I install it with pip or uvx?

No. The telegram-mcp package on PyPI is a different project and could receive your Telegram login. Install it from the GitHub repo as the install box shows.

Where do I get the API ID and API hash?

Log in at my.telegram.org/apps with your phone number and create an app. Telegram then shows your API ID and hash.

Is it free?

Yes. It is open source under Apache-2.0 and runs on your own computer.

Examples

  • Summarize your unread messages without replying to anyone.

    Summarize my unread Telegram messages, but don't reply to anything

  • Draft replies for you to review before anything is sent.

    Draft replies to my three most recent direct messages and show them to me without sending

  • Pull action items and urgent requests out of busy chats.

    Go through today's messages in my work groups and list anything that needs action from me

  • Search chat history and summarize the conversation around a match.

    Find where we discussed the venue in the event planning group and summarize what was decided

  • Read a chat's history and send a reply.

    Read my chat with Alex from this week and reply confirming Friday

Information

updated Nov 2, 2026

Publisher
Community
Transport
stdio, Streamable HTTP, SSE
Auth
token in env
License
Apache-2.0
Last commit
Oct 31, 2026
Open issues
9

GitHubChangelogIssues

Other Telegram MCP servers

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 12
  1. telegram-mcp README · github.com
  2. Telethon FAQ · docs.telethon.dev
  3. telegram-mcp tool source · github.com
  4. Outgoing messages disappeared across multiple private chats · github.com
  5. Two authorization vulnerabilities · github.com
  6. TELEGRAM_ALLOWED_CHAT_IDS is bypassed via contact_id/group_id · github.com
  7. Cancelled tool calls break the stdio connection in Claude Code · github.com
  8. set_privacy_settings silently replaces all privacy rules · github.com
  9. telegram-mcp skills · github.com
  10. chigwell/telegram-mcp · github.com
  11. chaindead/telegram-mcp · github.com
  12. dryeab/mcp-telegram · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.