AUTOMATIONSWITCH
CommunityCommunication

Telegram MCP

by chigwell

Telegram MCP via MTProto (user account, distinct from a bot). Read messages, send messages, list dialogs, manage contacts, and search history through the same Telegram API the desktop client uses. 1,046 stars, 56 commits on main in the last 30 days.

1,046·8 tools·Released JAN 2025·Apache-2.0
uvx telegram-mcp
Share:

Telegram MCP via MTProto (user account, distinct from a bot). Read messages, send messages, list dialogs, manage contacts, and search history through the same Telegram API the desktop client uses. 1,046 GitHub stars and 56 commits on main in the last 30 days. Apache-2.0.

Reviewed by M. Nouriel · MAY 2026

INSTALL THIS SERVER

Requires authenticationTelegram session string from a phone-number-authenticated user account. Generated via uvx --from telegram-mcp telegram-mcp-generate-session.
{ "mcpServers": { "telegram": { "command": "uvx", "args": [ "telegram-mcp" ], "env": { "TELEGRAM_API_ID": "<your-api-id>", "TELEGRAM_API_HASH": "<your-api-hash>", "TELEGRAM_SESSION_STRING": "<your-session-string>" } } } }
PrereqGenerate session string via `uvx --from telegram-mcp telegram-mcp-generate-session`. Requires Telegram API ID and hash from https://my.telegram.org. PyPI: `telegram-mcp`. Path: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS).
{ "mcpServers": { "telegram": { "command": "uvx", "args": [ "telegram-mcp" ], "env": { "TELEGRAM_API_ID": "<your-api-id>", "TELEGRAM_API_HASH": "<your-api-hash>", "TELEGRAM_SESSION_STRING": "<your-session-string>" } } } }
{ "mcpServers": { "telegram": { "command": "uvx", "args": [ "telegram-mcp" ], "env": { "TELEGRAM_API_ID": "<your-api-id>", "TELEGRAM_API_HASH": "<your-api-hash>", "TELEGRAM_SESSION_STRING": "<your-session-string>" } } } }
{ "mcpServers": { "telegram": { "command": "uvx", "args": [ "telegram-mcp" ], "env": { "TELEGRAM_API_ID": "<your-api-id>", "TELEGRAM_API_HASH": "<your-api-hash>", "TELEGRAM_SESSION_STRING": "<your-session-string>" } } } }
{ "mcpServers": { "telegram": { "command": "uvx", "args": [ "telegram-mcp" ], "env": { "TELEGRAM_API_ID": "<your-api-id>", "TELEGRAM_API_HASH": "<your-api-hash>", "TELEGRAM_SESSION_STRING": "<your-session-string>" } } } }

8 TOOLS AVAILABLE

list_dialogs
List chats, groups, and channels the account can see
Read
read_messages
Read messages from a specific dialog
Read
send_message
Send a message to a dialog
Write
search_messages
Search across messages in a dialog
Read
send_file
Upload and send a file
Write
edit_message
Edit a previously sent message
Write

OUR ASSESSMENT

Strengths
  • 1,046 GitHub stars and Apache-2.0 licence.
  • 56 commits on main in the last 30 days.
  • MTProto access: full Telegram user-account capabilities (groups, channels, secret chats, contacts).
  • Multi-account setup supported.
  • Proxy support via python-socks for restricted networks.
  • Prompt injection defences: sanitize_user_content, sanitize_name, sanitize_dict for control-character and length sanitisation.
  • Docker deployment supported.
  • File path security: read/write paths configurable to avoid agent escape.
Weaknesses
  • Requires a Telegram session string generated from a phone-number-authenticated user account (distinct from a bot token).
  • Telegram TOS considerations: user-account automation has stricter rules than bot-account automation.
  • File-system access is broad by default; restrict via the path-security configuration.
Security Notes

The MCP holds a Telegram session string equivalent to full account login. Store it in OS keychain or secrets manager. Scope file paths via the path-security configuration. The prompt-injection defences (sanitize_user_content etc.) reduce risk from incoming messages; the LLM operator should still treat message content as untrusted.

Best For

Operators who want agents to interact with Telegram via a user account (channels, groups, secret chats); workflows where Telegram is the primary collaboration channel; teams running multi-account agent setups for Telegram administration.

TECHNICAL DETAILS

Language
python
Transport
stdio
Clients
Claude DesktopClaude CodeCursorVS CodeWindsurf
License
Apache-2.0
GitHub
npm
telegram-mcp
Last Release
telegram-mcp (PyPI latest)MAY 3, 2026
First Released
JAN 1, 2025

ADOPTION METRICS

// GitHub Stars
1,046

// Reading this1,046 stars on the chigwell/telegram-mcp repo. 56 commits on main in the last 30 days.

// Popularity Rank
#1
Globally · #1 in Communication

// Reading thisFirst-ranked in communication on commit cadence and MTProto user-account capabilities.

SOURCES & VERIFICATION

We don't take any single directory's word for it. Before scoring, we cross-reference 4 public MCP sources, install the server ourselves against the clients we cover, and record when we last re-verified.

01
Discovered
Manual submission
First indexed MAY 3, 2026
02
Cross-referenced
4 directories
PulseMCP, MCP.so, Glama, Smithery
03
Verified against
Claude Desktop, Cursor
Installed and tested across clients
04
Last re-checked
MAY 3, 2026
Weekly re-verification
// How other directories see it

The same server, 4 different lenses. We reconcile these signals into our editorial score, which is why our number sometimes diverges from a directory-aggregate star count.

SourceTheir ratingTheir star countTheir downloadsLast synced
AutomationSwitch This page4.5editorial1,046MAY 3, 2026
PulseMCP— unratedunavailableunavailableMAY 3, 2026
MCP.so— unratedunavailableunavailableMAY 3, 2026
Glama— unratedunavailableunavailableMAY 3, 2026
Smithery— unratedunavailableunavailableMAY 3, 2026

// Counts are directory-reported; we don't adjust them. Discrepancies usually come from different snapshot times or star-caching.

// Get in touch

DISCUSS YOUR
MCP REQUIREMENTS.

Evaluating a server, scoping an internal deployment, or working out whether MCP is the right fit at all. Start the conversation and we will point you at the right piece of the ecosystem.

Discuss Your MCP Requirements →