MCP Directory

Telegram MCP Server (chigwell)

Full Telegram user-account MCP via MTProto: read chats, manage groups, send messages

Verified
stdio (local)
API key
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
git clone https://github.com/chigwell/telegram-mcp && cd telegram-mcp && uv sync && uv run main.py

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

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

Before you start

  • Python 3.10+ (uv recommended for dependency management)
  • A Telegram account (this controls a real user account, not a bot)
  • TELEGRAM_API_ID and TELEGRAM_API_HASH obtained from https://my.telegram.org/apps
  • A Telegram session string generated with the bundled session_string_generator.py (QR or phone login)
  • An MCP client such as Claude Desktop or Cursor

About Telegram MCP Server (chigwell)

Telegram MCP Server (chigwell) connects MCP clients to a full Telegram user account — not a bot — using the Telethon library over Telegram's MTProto protocol. Because it authenticates as your own account, it can see and act on everything you can: private chats, groups, channels, contacts, and account settings.

It exposes a very large tool surface (60+ tools, documented as 80+) grouped into messaging (send, schedule, edit, delete, forward, pin, reply, search, polls, reactions), chat and group management (create groups/channels, join/leave, invite users, manage admins, bans, permissions, slow mode, topics, invite links), contacts (add, delete, block/unblock, import/export), media (send/download files, voice notes, stickers, GIFs), and profile/folder/draft management.

Authentication uses a Telegram session string generated by a bundled helper script (session_string_generator.py) via QR or phone login, so you sign in once and store the session rather than re-entering codes. It supports multiple accounts routed by label, and sanitizes returned content to reduce prompt-injection risk.

Tools & capabilities (11)

get_chats / list_chats

Paginated/filterable list of chats with metadata

send_message

Send a message to a user, group, or channel

edit_message / delete_message

Edit or delete an existing message

forward_message

Forward a message to another chat

search_messages

Search message history across chats

create_group / create_channel

Create new groups or channels

invite_user / manage admins, bans, permissions

Group administration: invites, admin rights, bans, permissions, slow mode

list_contacts / add_contact / block / unblock

Contact management including block/unblock and import/export

send_file / download_media

Send files/voice/stickers and download media from messages

schedule_message / pin_message / manage reactions

Schedule, pin, and react to messages

folders & drafts tools

Create/update/reorder chat folders and manage drafts

When to use it

  • Use it when you want an assistant to read and summarize your Telegram chats and channels
  • Use it to send, schedule, or forward messages and media from your own account
  • Use it to administer groups/channels — invites, admins, bans, permissions, topics
  • Use it to manage contacts in bulk (add, block, import/export)
  • Use it across multiple Telegram accounts routed by label from one MCP server
  • Use it when bot-API limitations block you and you need full user-account (MTProto) access

Quick setup

  1. 1Register an app at my.telegram.org/apps to get TELEGRAM_API_ID and TELEGRAM_API_HASH
  2. 2Clone the repo and install dependencies with uv
  3. 3Run session_string_generator.py and sign in (QR or phone) to produce a session string
  4. 4Put the API credentials and session string in a .env file
  5. 5Add the server to your MCP client config (run main.py) and restart the client
  6. 6Verify by calling get_chats or list_chats

Security notes

Connects as a full Telegram user account, so the session string grants complete access to your account — treat it like a password and never share it. Pin to a release tag/commit when cloning to avoid pulling unreviewed upstream changes.

Telegram MCP Server (chigwell) FAQ

Is this a bot or my real account?

It logs in as your real Telegram user account via MTProto/Telethon, so it has full access your account has — not the limited Telegram Bot API surface.

Where do I get the API credentials?

Create an application at https://my.telegram.org/apps to obtain your API_ID and API_HASH; there is no charge.

How does login work — do I re-enter a code every time?

No. You generate a session string once with the bundled session_string_generator.py (QR or phone), store it in .env, and it reuses that session.

Is there an npm package?

No — it's a Python project installed from source with uv; there is no npm distribution.

Can it manage groups, not just send messages?

Yes. It includes group/channel creation, invites, admin management, bans, permissions, slow mode, topics, and invite links.

Alternatives to Telegram MCP Server (chigwell)

Connect your personal WhatsApp: search, read and send messages and media locally

Verified
stdio (local)
No auth
Python
12 tools
Updated 26 days agoRepo

Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth

Verified
stdio (local)
API key
Go
12 tools
Updated 1 month agoRepo

Gmail MCP with auto OAuth: send, search, label and manage email

Verified
stdio (local)
OAuth
TypeScript
12 tools
Updated 3 months agoRepo