mcp-telegram
mcp-telegram
MCP server that wraps the Telegram Bot API as semantic tools for LLM agents — with multi-bot support for managing multiple agent conversations.
Works with Claude Code, Codex, Claude Desktop, Cursor, VS Code, Windsurf, and any MCP-compatible client.
Prerequisites
Node.js 18+
One or more Telegram bot tokens (create via @BotFather)
Your Telegram chat ID
Variable | Description | Where to find |
| Bot token (one per agent) | @BotFather → |
| Your Telegram user/chat ID | Send |
Multi-bot convention: Each
TELEGRAM_BOT_<NAME>env var registers a bot. The<NAME>becomes the bot identifier used in tools (e.g.,TELEGRAM_BOT_VENDAS→bot: "vendas").
Installation
Claude Code
claude mcp add telegram \
-s local \
-e TELEGRAM_BOT_VENDAS=your-token \
-e TELEGRAM_CHAT_ID=your-chat-id \
-- npx -y github:pauloFroes/mcp-telegramCodex
Add to your codex.toml:
[mcp.telegram]
transport = "stdio"
command = "npx"
args = ["-y", "github:pauloFroes/mcp-telegram"]
[mcp.telegram.env]
TELEGRAM_BOT_VENDAS = "your-token"
TELEGRAM_CHAT_ID = "your-chat-id"Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["-y", "github:pauloFroes/mcp-telegram"],
"env": {
"TELEGRAM_BOT_VENDAS": "your-token",
"TELEGRAM_CHAT_ID": "your-chat-id"
}
}
}
}Cursor
Add to your .cursor/mcp.json:
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["-y", "github:pauloFroes/mcp-telegram"],
"env": {
"TELEGRAM_BOT_VENDAS": "your-token",
"TELEGRAM_CHAT_ID": "your-chat-id"
}
}
}
}VS Code
Add to your .vscode/mcp.json:
{
"servers": {
"telegram": {
"command": "npx",
"args": ["-y", "github:pauloFroes/mcp-telegram"],
"env": {
"TELEGRAM_BOT_VENDAS": "your-token",
"TELEGRAM_CHAT_ID": "your-chat-id"
}
}
}
}Windsurf
Add to your ~/.windsurf/mcp.json:
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["-y", "github:pauloFroes/mcp-telegram"],
"env": {
"TELEGRAM_BOT_VENDAS": "your-token",
"TELEGRAM_CHAT_ID": "your-chat-id"
}
}
}
}Available Tools
Messaging
Tool | Description | Key Parameters |
| Send a text message (supports Markdown/HTML) |
|
| Send a photo by URL or file_id |
|
| Send a document/file by URL or file_id |
|
Updates & Management
Tool | Description | Key Parameters |
| Get recent incoming messages for a bot |
|
| List all configured bots with their Telegram info | — |
Use Cases & Examples
"Send today's sales summary via the vendas bot" — Collects data from other MCPs, formats a report, sends via
send_messagewithbot: "vendas""Alert me on Telegram if ad spend exceeds R$500" — Checks Meta Ads data, sends alert via
send_messagewithbot: "ads""Check if Paulo replied to the last notification" — Calls
get_updateson the relevant bot to read recent messages"Send this chart to my Telegram" — Uses
send_photowith the image URL
Authentication
Bot tokens are passed in the URL path per Telegram Bot API convention. No OAuth flow required — each bot token is self-contained.
License
MIT
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/pauloFroes/mcp-telegram'
If you have feedback or need assistance with the MCP directory API, please join our Discord server