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.

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

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.

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
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-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/full/path/to/telegram-mcp",
        "run",
        "main.py"
      ],
      "env": {
        "TELEGRAM_API_ID": "your_api_id_here",
        "TELEGRAM_API_HASH": "your_api_hash_here",
        "TELEGRAM_SESSION_STRING": "your_session_string_here"
      }
    }
  }
}

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

Configuration

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

VariableDescriptionRequired
TELEGRAM_API_IDDeclared in the maintainer’s client configuration.Check documentation
TELEGRAM_API_HASHDeclared in the maintainer’s client configuration.Check documentation
TELEGRAM_SESSION_STRINGDeclared in the maintainer’s client configuration.Check documentation

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.