claude-telegram-alerts
Sends status alerts to a Telegram chat, allowing users to receive notifications for Claude Code updates such as task completion, approval requests, and other custom messages, with support for normal and urgent priority.
Click on "Deploy 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., "@claude-telegram-alertsSend me a Telegram alert when the deployment finishes"
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.
Claude Telegram Alerts
An MCP server that sends Telegram alerts for Claude Code status updates. Get notified on your phone when:
Claude needs your input or approval
Long-running tasks complete
Builds finish or tests pass/fail
Any custom status update you configure
Features
alert- Send status alerts to your Telegram (normal or urgent priority)get_chat_id- Helper tool to retrieve your Telegram chat ID during setup
Related MCP server: mcp-telegram-claudecode
Quick Start
1. Create a Telegram Bot
Open Telegram and message @BotFather
Send
/newbotand follow the promptsCopy your bot token (e.g.,
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
2. Message Your Bot
Search for your new bot in Telegram and send it any message (e.g., "hi"). This enables the bot to message you back.
3. Install
git clone https://github.com/anthony-potts/claude-telegram-alerts.git
cd claude-telegram-alerts
npm install
npm run build4. Configure Claude Code
Add to ~/.claude/settings.json:
{
"mcpServers": {
"telegram-alerts": {
"command": "node",
"args": ["/path/to/claude-telegram-alerts/build/index.js"],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token",
"TELEGRAM_CHAT_ID": ""
}
}
}
}5. Get Your Chat ID
Restart Claude Code, then ask:
"Use the get_chat_id tool to find my Telegram chat ID"
Update your config with the returned chat ID, then restart Claude Code.
Usage Examples
Manual Alerts
"Send me a Telegram alert that the deployment is complete"
"Send an urgent alert that I need to approve the PR"Automated Workflows
"Run the test suite and alert me on Telegram when done"
"Deploy to staging and send me a Telegram alert with the result"
"When you need my input, send me a Telegram alert"Status Updates
"Alert me via Telegram: Build failed - missing dependency in package.json"
"Send Telegram alert: Waiting for approval to delete 50 files"Tools
alert
Send a status alert to your Telegram.
Parameter | Type | Required | Description |
| string | Yes | The alert message |
|
| No |
|
get_chat_id
Retrieve your chat ID after messaging the bot. No parameters.
Troubleshooting
Error | Solution |
"TELEGRAM_BOT_TOKEN required" | Add your bot token to the MCP server env config |
"TELEGRAM_CHAT_ID required" | Run |
"No messages found" | Send a message to your bot in Telegram first |
Alerts not arriving | Check Telegram notifications aren't muted for the bot |
Development
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch modeLicense
MIT
Available Tools
2 toolsalertA
Send a Telegram alert for Claude Code status updates. Use this to notify the user when you need input, when tasks complete, or for any important status update.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The alert message (e.g., "Build complete", "Waiting for approval") | |
| priority | No | Alert priority. "urgent" sends with notification sound, "normal" is silent. | normal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool sends a Telegram message and that priority affects sound (via the schema). However, it does not mention potential delivery failure, external dependency on a configured chat, or that the tool has no return output—useful context for a side-effecting tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no ffuff. The first sentence states the primary action, and the second adds useful trigger conditions. Every phrase pulls weight and the main verb+resource are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description provides enough to call it correctly: what it does and when to use it. It does not mention that the alert is a reliable side effect with no return value or that a chat ID must already be configured, but these are minor omissions given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself provides descriptions and examples for both parameters, so the baseline is 3. The description does add some user-facing scenarios for message content, but it does not materially extend the parameter semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Send a Telegram alert for Claude Code status updates.' It further enumerates concrete trigger situations—'when you need input, when tasks complete, or for any important status update'—and is easily distinguishable from the sibling tool get_chat_id, which retrieves an ID rather than sending anything.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use this to notify the user when you need input, when tasks complete, or for any important status update.' It does not mention exclusions or alternative tools, but the sibling get_chat_id is clearly not an alternative for sending alerts, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chat_idA
Get your Telegram chat ID for initial setup. First message your bot in Telegram, then use this tool to retrieve the chat ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of transparency. It conveys that the tool retrieves a chat ID and that a prior message is required, but it does not disclose behavior when the prerequisite is unmet or the exact format of the returned chat ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the main purpose, and the second sentence adds a genuinely useful prerequisite instruction. Every sentence contributes meaningful guidance without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter setup utility, the description covers the essential workflow and expected result. It could briefly mention what happens if the user calls it without messaging the bot first, but overall it is complete enough for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the empty schema is complete. The description provides the baseline context needed to understand what the tool returns without needing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the user's Telegram chat ID, which is a specific resource and action. It does not explicitly differentiate it from the sibling tool 'alert', but the names and functions are sufficiently distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite and usage sequence: message the bot first, then call the tool. It does not mention alternatives or exclusions, but none are obviously needed given the sibling tool's different purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
alert - First observed
get_chat_id
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: alert sends notifications, while get_chat_id handles setup. There is no overlap or ambiguity between them.
Both names use lowercase snake_case and are verb-led, but alert is a bare verb while get_chat_id follows a get_noun pattern. The inconsistency is minor and does not hinder understanding.
Two tools is on the thin side for a general-purpose alerting server, but the narrow scope makes the count defensible. It sits at the borderline where the set feels minimal rather than complete.
The tool surface covers the full intended workflow: retrieve the chat ID during setup, then send alerts. For a notification-only integration, there are no obvious missing operations.
Maintenance
Related MCP Connectors
Monitoring + status pages set up by talking to Claude. Auto-detects 30+ SDKs and your URLs.
Run a Telegram channel from your AI agent. Posts go out through your own bot, not your account.
Let your AI agent notify you by email, Slack, Discord, or webhook. One tool: send_notification.
Live status and health checks for AI coding providers: Claude, Cursor, Copilot, Codex and more.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code to send Telegram notifications when tasks complete, errors occur, or user intervention is needed. Runs serverless on Cloudflare Workers with support for formatted messages and flexible chat targeting.7 npm22MIT
- AlicenseAqualityCmaintenanceEnables Claude Code to send and receive messages via Telegram for remote interaction and approval of sensitive operations.86 npm7MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI coding agents to send structured Telegram notifications for events like questions, plan_ready, final, attention_needed, and error.MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude Code to send messages to and receive instructions from Telegram, with task tracking and persistent storage.-