Telegram MCP
Provides tools for interacting with the Telegram Bot API, enabling AI agents to send and edit messages, manage media, polls, and chat administration, as well as moderate groups and handle webhooks.
Telegram MCP
An MCP (Model Context Protocol) server that exposes Telegram bot actions as tools for LLM clients (e.g. Claude Desktop, Claude Code).
Requirements
Python 3.10+
uvfor dependency management and running the serverA Telegram bot application with a bot token (Telegram Bot API)
Related MCP server: MCP Telegram
Installation
git clone https://github.com/EncryptMan/telegram-mcp telegram-mcp
cd telegram-mcp
uv syncConfiguration
The server reads its Telegram bot token from the TELEGRAM_BOT_TOKEN environment variable.
Add the server to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"telegram": {
"command": "uv",
"args": [
"run",
"--project",
"/absolute/path/to/telegram-mcp",
"python",
"/absolute/path/to/telegram-mcp/main.py"
],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token-here"
}
}
}
}Restart your MCP client after editing the config so it picks up the new server.
Bot permissions
Make sure the bot is set up with the following, depending on which tools you use:
Privacy mode disabled via @BotFather if you need
get_updatesto see all messages in a group, not just commands and replies to the bot.Admin rights in the chat/channel for any moderation or management tool:
ban_chat_member,unban_chat_member,delete_message,pin_chat_message,unpin_chat_message,set_chat_title,set_chat_description.A webhook URL with a valid HTTPS certificate if you use
set_webhookinstead of polling withget_updates.
Tools
Update this list to match what
main.pyactually implements.
Tool | Description |
| Fetch the bot's own user info |
| Manage the bot's webhook |
| Poll for new messages/events (alternative to a webhook) |
| Fetch or register the bot's slash commands |
| Send, edit, or delete a text message |
| Send media to a chat |
| Create a poll or close one and return results |
| Pin or unpin a message |
| React to a message with an emoji |
| Respond to an inline keyboard button press |
| Fetch info about a chat/channel |
| List a chat's administrators |
| Get a specific user's membership status in a chat |
| Moderation actions |
| Update a chat/channel's title or description |
Example automations
Some concrete tasks this server can drive, e.g. for a trading-alerts community:
Alert distribution
Push formatted signals to a channel with
send_message, with a chart viasend_photoPin the top-priority alert with
pin_chat_message, unpin it later withunpin_chat_messageCorrect a typo or update a price target on a sent alert with
edit_message_textinstead of re-sending
Community engagement
Run a daily sentiment poll with
send_poll, close it withstop_poll, and post the tally withsend_messageAuto-react to confirm an alert was received, using
set_message_reactionSend weekly performance recaps as a file with
send_document
Interactive bot menus
Build inline buttons (e.g. "Mute this ticker"); receive the press via
get_updates/webhook, acknowledge it withanswer_callback_query, then reply withsend_messageRegister commands like
/subscribe,/mute,/statswithset_my_commandsand drive their logic offget_updates
Moderation & access control
Ban a user spamming or scraping paid content with
ban_chat_member, reverse withunban_chat_memberGate sensitive commands by checking
get_chat_administratorsorget_chat_memberfirstRemove spam or leaked-content messages with
delete_message
Housekeeping / setup
Rotate the channel name/description with
set_chat_title/set_chat_descriptionSwitch between polling (
get_updates) and push delivery (set_webhook/get_webhook_info) when moving from local dev to hostedSanity-check the bot's identity and permissions with
get_bot_infobefore deploying a new flow
Running standalone
uv run --project /absolute/path/to/telegram-mcp python /absolute/path/to/telegram-mcp/main.pyThe server communicates over stdio, so it's meant to be launched by an MCP client rather than run interactively.
Security notes
Never commit your
TELEGRAM_BOT_TOKEN— keep it in your MCP client config or a local.envfile that's gitignored.Scope the bot's admin rights in each chat to only what these tools need; avoid granting full admin unless required.
License
Add a license of your choice (MIT, Apache-2.0, etc.).
This server cannot be installed
Maintenance
Related MCP Servers
- MIT
- Alicense-qualityBmaintenanceTelegram MTProto-based MCP server with 19 tools for reading, searching, sending, forwarding, and summarizing messagesLast updatedMIT
- AlicenseAqualityCmaintenanceMCP server that exposes a Telegram bot, enabling sending messages and retrieving updates through natural language.Last updated3MIT
- Alicense-qualityBmaintenancePrivacy-first Telegram MCP server enabling maintainers to triage chats, inspect context, search messages, draft replies, and send authorized messages locally without a cloud relay.Last updated5201MIT
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
MemberPass MCP — manage projects, plans, members, payments, and analytics for Telegram creators.
Crypto Feeds MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EncryptMan/telegram-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server