Telegram MCP Server

Read and send Telegram messages through your assistant — chats, channels and history via the client API.

Local serverstdioPythonApache-2.0 800

What is the Telegram MCP server?

Telegram's MCP servers take an unusual route: instead of a bot API (which can't read arbitrary chats), the leading implementations use Telegram's client API via MTProto — the assistant effectively acts as your own Telegram account, seeing what you see. That makes them far more capable than a typical bot bridge, and correspondingly more sensitive.

With it configured, your assistant can list your dialogs, read history from chats, groups and channels you're in, and send messages as you. The value concentrates in triage and digestion: Telegram power users accumulate dozens of channels and group chats, and "summarise what mattered across my feeds this morning" is exactly the kind of task an assistant does better than a thumb-scrolling human. Extracting action items from a chaotic group planning thread, catching up a muted channel, drafting replies in your voice for approval — all natural fits.

Setup reflects the client-API approach: you register an application at my.telegram.org to get an api_id and api_hash, then complete a one-time login (phone code, plus 2FA password if set) to produce a session the server reuses. Implementations vary — chigwell/telegram-mcp (Python, Telethon) is a full-featured choice with dozens of tools; chaindead's Go implementation focuses on a tighter dialogs/read/send core.

Be clear-eyed about the trust model: the session string is a key to your entire Telegram account, so store it like a password, and let the client's tool-confirmation flow gate anything that sends. Used with that care, it turns Telegram from an attention sink into something you consult on your terms.

Operating it day to day

  • Generate the session string on the machine that will actually run the server, and treat it as one more device on your account — Telegram lists it under active sessions, and revoking it there is your kill switch.
  • MTProto enforces flood-wait rather than hard failure: burst through thirty channels of history and Telethon raises a wait error with a delay attached. Paging a digest across a few calls avoids it entirely.
  • Some read tools mark chats as read as a side effect. If unread badges are your to-do list, check the implementation before pointing it at your primary account.
  • Several forks expose delete, leave and block alongside sending. There's no undo for a message deleted from a group, so prune the tool list down to what you actually want reachable.

What you can do with it

Feed triage

Dozens of channels condensed into one 'what actually mattered' briefing.

Group-chat archaeology

Action items and decisions extracted from sprawling planning threads.

Assisted replies

Responses drafted in your voice, sent only after you approve.

Available tools

ToolWhat it does
get_chatsList your dialogs (chats, groups, channels) with pagination
list_messagesRead message history from a chat with filters
send_messageSend a message to a chat as your account
get_contactsList contacts
search_public_chatsSearch public channels and groups
get_meYour own account info

How to install the Telegram MCP server

{
  "mcpServers": {
    "telegram": {
      "command": "uv",
      "args": ["--directory", "/path/to/telegram-mcp", "run", "main.py"],
      "env": {
        "TELEGRAM_API_ID": "your-api-id",
        "TELEGRAM_API_HASH": "your-api-hash",
        "TELEGRAM_SESSION_STRING": "your-session-string"
      }
    }
  }
}

Get api_id/api_hash from my.telegram.org; generate the session string once with the repo's session_string_generator.py.

Configuration

Telegram API credentials from my.telegram.org and a one-time login to generate a session string. Python with uv.

VariableDescriptionRequired
TELEGRAM_API_IDApplication ID from my.telegram.orgYes
TELEGRAM_API_HASHApplication hash from my.telegram.orgYes
TELEGRAM_SESSION_STRINGLogin session produced by the one-time auth flow — treat as a full account credentialYes

Example prompts to try

  • Summarise the last 24 hours across my news channels — top five stories only.
  • Read the trip-planning group and list who's confirmed, and for which dates.
  • Draft a polite reply to the last message in my chat with Alex and show me before sending.

Frequently asked questions

Telegram bots can't read arbitrary chats or channels — only the client API can see what you see. That's what makes reading your history possible, and why the session credential deserves password-level care.