mcp-telegram-agent
Sends messages and notifications to Telegram chats, supports onboarding, control checkpoints, and polling for replies.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-telegram-agentsend a Telegram notification saying 'Hello from AI agent'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ค If you are an AI agent: read AGENTS.md first, then AGENT_SETUP.md.
๐ค MCP Telegram Agent
Send Telegram notifications directly from any MCP-compatible AI agent.
This project is a TypeScript MCP server over stdio, designed to be easy to run locally and easy to distribute via npm + npx.
โจ Features
โ Send a message to Telegram with one MCP tool call
โ Guided onboarding flow: token โ
setup codeverification โ auto config snippetโ Validate Telegram config before sending anything
โ Read recent Telegram updates to discover
chat_idandmessage_idโ Works with
npx mcp-telegram-agentin MCP configโ Token-first setup (safer than hardcoding full API URL)
Related MCP server: tgmcp
๐ฆ Installation
Option A: Use directly with npx (recommended for MCP clients)
No local clone required in production:
npx -y mcp-telegram-agentOption B: Local development
npm install
npm run check
npm run build
npm run dev๐ง Environment Variables
Recommended (default behavior)
BOT_TELEGRAM_TOKEN(required)BOT_TELEGRAM_CHAT_ID(required)
Compatibility aliases
BOT_TELEGRAM_ID(alias for chat ID)BOT_TELEGRAM_URL(legacy fallback, full sendMessage URL)
Optional
BOT_TELEGRAM_TIMEOUT_MS(default:10000)BOT_TELEGRAM_THREAD_ID(for Telegram forum topics)BOT_TELEGRAM_API_BASE_URL(advanced/testing override, default:https://api.telegram.org)
Security note: Prefer
BOT_TELEGRAM_TOKENoverBOT_TELEGRAM_URLso your secret is managed as a single token value.
๐ง MCP Client Configuration
npx setup (recommended)
{
"mcpServers": {
"telegram-agent": {
"command": "npx",
"args": ["-y", "mcp-telegram-agent"],
"env": {
"BOT_TELEGRAM_TOKEN": "123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"BOT_TELEGRAM_CHAT_ID": "123456789"
}
}
}
}Local build setup
{
"mcpServers": {
"telegram-agent": {
"command": "node",
"args": ["/ABSOLUTE/PATH/mcp_telegram_agent/dist/index.js"],
"env": {
"BOT_TELEGRAM_TOKEN": "123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"BOT_TELEGRAM_CHAT_ID": "123456789"
}
}
}
}๐ ๏ธ Exposed MCP Tools
telegram_onboarding_prepare
Prepares onboarding for a fresh token and returns:
a setup code
exact message to send (plain setup code)
MCP config template
if
botTokenis omitted and client supports elicitation, MCP requests secure token input UI
telegram_onboarding_verify
Verifies onboarding by scanning updates for the setup code (plain message, or /start <code>) and then:
discovers
chat_id+message_idbuilds a ready-to-paste MCP config JSON
optionally sends a test message automatically
supports cautious mode with explicit
chat_idconfirmation (requireChatIdConfirmation+expectedChatId)if
botTokenis omitted and client supports elicitation, MCP requests secure token input UI
send_telegram_notification
Send a message to your configured Telegram chat.
Input:
message(string, required)parseMode(HTML|Markdown|MarkdownV2, optional)disableNotification(boolean, optional)
Output example:
Notification sent to Telegram (status 200, message_id=207).
telegram_config_status
Validate env config and show active source (BOT_TELEGRAM_TOKEN vs BOT_TELEGRAM_URL).
telegram_get_updates
Fetch recent updates from Telegram to inspect:
chat_idmessage_idmessage text
username
Useful when you are still wiring your bot and need IDs.
Supports incremental polling:
fromUpdateId(fetch newer updates only)waitSeconds(Telegram long polling timeout)
telegram_send_control_checkpoint
Sends a structured checkpoint message (title + summary + control metadata) so users can reply with control actions.
Typical usage:
agent says "task done"
user replies to that checkpoint with
continue CODE123,stop CODE123, etc.
telegram_poll_control_replies
Reads new updates and filters control replies by:
replyToMessageIdcontrolCodeinstanceIdoptional
actionFilter
This is designed for multi-IDE safety and uses long polling (waitSeconds) to reduce API churn.
telegram_ack_control_reply
Sends an acknowledgement as a direct reply to the user control message, including status and summary.
๐งญ Agent Command (/setup-mcp-telegram-agent)
This repository ships:
AGENTS.mdAGENT_SETUP.md.cursor/commands/setup-mcp-telegram-agent.md
Suggested chat command:
/setup-mcp-telegram-agentExpected flow:
Install/activate MCP first with
npx -y mcp-telegram-agent(no token required yet)Ask for bot token (or direct user to create one at
https://telegram.me/BotFather#)Run
telegram_onboarding_prepareAsk user to send
<code>(plain message) to the botRun
telegram_onboarding_verifyin confirmation mode to list candidatesAsk user to confirm exact
chat_idRun
telegram_onboarding_verifyagain withexpectedChatIdApply generated MCP config
Send one test notification
๐ฒ Telegram Bot Setup (BotFather)
1) Open BotFather
Search for @BotFather in Telegram and open it.
2) Create a new bot
Send:
/newbotThen follow prompts:
Bot display name (example:
My MCP Notifier)Bot username ending in
bot(example:my_mcp_notifier_bot)
BotFather returns your token:
123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxSave it securely as BOT_TELEGRAM_TOKEN.
3) Start a chat with your bot
Open your new bot and click Start (or send any message).
4) Get your chat_id and message_id
Call:
curl "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates"Then look for:
message.chat.idโ this is yourchat_idmessage.message_idโ this is the message ID
Visual guide:
๐งช Quick Test
Use your real values:
curl -sS -X POST "https://api.telegram.org/bot<YOUR_TOKEN>/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id":"<YOUR_CHAT_ID>","text":"โ
MCP test message"}'๐ Publish to npm
Publishing is automated with GitHub Actions + semantic-release.
After the first release, users can run:
npx -y mcp-telegram-agentโ๏ธ GitHub Actions Auto Publish
This repository includes:
.github/workflows/release.yml.releaserc.json
Behavior:
Runs on each push to
mainUses Conventional Commits to decide release type (
fix= patch,feat= minor,BREAKING CHANGE= major)Creates GitHub release + publishes to npm
Required GitHub secret:
NPM_TOKEN(npm automation token with publish permissions)
Required commit style examples:
fix: first automated release setup
feat: add support for telegram topicsFirst release target (v0.0.1):
Create and push baseline tag
v0.0.0once.Push a
fix:commit tomain.Action will publish
v0.0.1.
Commands:
git tag v0.0.0
git push origin v0.0.0
git commit --allow-empty -m "fix: bootstrap first semantic release"
git push origin main๐งฉ GitHub Repository Setup
If this is a fresh local directory:
git init
git add .
git commit -m "Initial MCP telegram agent server"
git branch -M main
git remote add origin https://github.com/tecnomanu/mcp-telegram-agent.git
git push -u origin mainโ ๏ธ Troubleshooting
chat not found:Ensure you started chat with the bot first.
Re-check
BOT_TELEGRAM_CHAT_IDfromgetUpdates.
401 Unauthorized:Token is invalid, regenerated, or malformed.
No updates in
getUpdates:Send a message to your bot, then retry.
๐ License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables AI assistants to send messages and interact with Telegram chats through MCP tools, with support for user management, conversation history, and bot command handling.1
- Alicense-qualityBmaintenanceEnables AI agents to interact with Telegram accounts through MCP, supporting messaging, contacts, groups, media, and admin functions.4Apache 2.0
- Alicense-qualityDmaintenanceEnables LLMs to send notifications and receive responses via Telegram.454MIT
- AlicenseBqualityDmaintenanceEnables AI agents to send notifications and media (text, photos, documents, videos) via a Telegram bot.4633Do What The F*ck You Want To Public
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
Phone, SMS & email for AI agents โ one remote MCP endpoint, OAuth login, zero install.
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/tecnomanu/mcp-telegram-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server