Skip to main content
Glama
anthony-potts

claude-telegram-alerts

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

  1. Open Telegram and message @BotFather

  2. Send /newbot and follow the prompts

  3. Copy 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 build

4. 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

message

string

Yes

The alert message

priority

"normal" | "urgent"

No

urgent = notification sound. Default: normal (silent)

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 get_chat_id tool and add the result to config

"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 mode

License

MIT

Available Tools

2 tools
alertA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe alert message (e.g., "Build complete", "Waiting for approval")
priorityNoAlert priority. "urgent" sends with notification sound, "normal" is silent.normal

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updatesv1.0.0
    • First observedalert
    • First observedget_chat_id

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: alert sends notifications, while get_chat_id handles setup. There is no overlap or ambiguity between them.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers