Skip to main content
Glama
kstonekuan

Telegram Notification MCP Server

by kstonekuan

Telegram Notification MCP Server

Ein MCP-Server (Model Context Protocol), der Benachrichtigungen an Telegram sendet, wenn Claude Code Aufgaben abschließt. Entwickelt mit TypeScript unter Verwendung des Cloudflare Agents SDK und bereitstellbar auf Cloudflare Workers.

📢 Bevorzugen Sie Discord? Dann schauen Sie sich Discord Notification MCP für Discord-Benachrichtigungen an.

Funktionen

  • 🤖 MCP-Tool: Stellt ein send_telegram_message-Tool zum Senden von Benachrichtigungen bereit

  • 🚀 Cloudflare Workers: Läuft serverlos mit globaler Verteilung

  • 🔐 Authentifiziert: Erfordert ein Bearer-Token, das als Cloudflare-Secret gespeichert ist

  • 🌐 Streamable HTTP: Verwendet den aktuellen zustandslosen MCP-Transport

  • 💬 Nachrichtenformatierung: Unterstützt Markdown- und HTML-Formatierung

  • 📝 Formatierung: Unterstützt Markdown- und HTML-Nachrichtenformatierung

Related MCP server: mcp-telegram-claudecode

Architektur

Dieser Server implementiert die MCP-Spezifikation mithilfe des Cloudflare Agents SDK:

  • POST /mcp: Zustandsloser Streamable-HTTP-Endpunkt für die MCP-Kommunikation

  • GET /sse: Gibt 410 Gone zurück; Legacy-SSE-Clients müssen auf /mcp migrieren

  • Entwickelt mit TypeScript, MCP SDK und Cloudflare Agents SDK

  • Korrekte JSON-RPC-2.0-Fehlerbehandlung

  • Node.js-Kompatibilitätsmodus aktiviert

Einrichtung

Voraussetzungen

  1. Telegram-Bot: Erstellen Sie einen Bot über @BotFather und erhalten Sie Ihr Bot-Token

  2. Chat-ID: Erhalten Sie Ihre Chat-ID, indem Sie Ihrem Bot eine Nachricht senden und Folgendes aufrufen:

    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
  3. Cloudflare-Konto: Registrieren Sie sich unter cloudflare.com

Installation

  1. Klonen Sie dieses Repository

  2. Installieren Sie die Abhängigkeiten:

    pnpm install

Konfiguration

  1. Erstellen Sie anhand des Beispiels eine .dev.vars-Datei:

    cp .dev.vars.example .dev.vars

    Bearbeiten Sie dann .dev.vars mit Ihrem Bot-Token und Ihrer Chat-ID. Diese Datei wird sowohl für die lokale Entwicklung als auch für die Bereitstellung verwendet.

  2. Für die Produktionsbereitstellung generieren Sie ein MCP-Bearer-Token und richten Sie Cloudflare-Secrets ein:

    openssl rand -hex 32
    pnpm exec wrangler secret put BOT_TOKEN
    pnpm exec wrangler secret put DEFAULT_CHAT_ID  # Optional
    pnpm exec wrangler secret put MCP_AUTH_TOKEN

    Hinweis: DEFAULT_CHAT_ID ist optional. Wenn sie nicht festgelegt ist, müssen Sie beim Aufruf des send_telegram_message-Tools einen chat_id-Parameter angeben.

  3. Aktualisieren Sie bei Bedarf wrangler.toml mit dem Namen Ihres Workers

Bereitstellung

Bereitstellung auf Cloudflare Workers:

Bereitstellung mit Wrangler:

# First set secrets
pnpm exec wrangler secret put BOT_TOKEN
pnpm exec wrangler secret put DEFAULT_CHAT_ID  # Optional

# Then deploy
pnpm run deploy

Alternative: Kontinuierliche Bereitstellung

Sie können die kontinuierliche Bereitstellung auch direkt über das Cloudflare-Dashboard einrichten. Weitere Informationen zur Git-Integration mit Cloudflare

Konfiguration von Claude Code

Fügen Sie den MCP-Server mithilfe von Streamable HTTP und demselben Bearer-Token zu Claude Code hinzu:

# For production deployment
claude mcp add --scope user --transport http \
  --header "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  telegram-notify https://your-worker-name.workers.dev/mcp

# For local development
claude mcp add --transport http \
  --header "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  telegram-notify http://localhost:8787/mcp

Das Token ist der Client-Zugriff auf den MCP-Endpunkt, nicht das Telegram-Bot-Token. Setzen Sie das Bot-Token niemals in die MCP-Konfiguration von Claude.

Sie können die Konfiguration wie folgt überprüfen:

claude mcp list

Verwendung

Nach der Konfiguration kann Claude Code Benachrichtigungen an Ihr Telegram senden, wann immer Sie sie benötigen.

Verfügbares Tool

send_telegram_message: Senden Sie eine Benachrichtigungsnachricht an Telegram

  • text (erforderlich): Der zu sendende Nachrichtentext

  • chat_id (optional): Telegram-Chat-ID (verwendet DEFAULT_CHAT_ID, falls nicht angegeben)

  • parse_mode (optional): „Markdown" oder „HTML" für die Nachrichtenformatierung

  • disable_notification (optional): Nachricht stumm senden

Beispielverwendung:

// Uses DEFAULT_CHAT_ID from environment
await send_telegram_message({ text: "Task completed!" })

// Send to specific chat (overrides DEFAULT_CHAT_ID)
await send_telegram_message({ text: "Hello!", chat_id: "123456789" })

// Send with Markdown formatting
await send_telegram_message({ 
  text: "*Bold* and _italic_ text", 
  parse_mode: "Markdown" 
})

Wann Sie Benachrichtigungen erhalten

Claude Code sendet Benachrichtigungen, wenn:

  • Sie explizit darum bitten: „benachrichtige mich, wenn fertig" oder „lass es mich auf Telegram wissen"

  • Fehler während der Ausführung auftreten

  • Wichtige Meilensteine erreicht werden

  • Eine Benutzereingabe oder ein Eingriff erforderlich ist

Beispielszenarien

# You say: "Deploy to production and notify me when done"
# Result: 🤖 Claude Code Notification
#         Deployment completed successfully! The app is now live.

# You say: "Run all tests and let me know the results"
# Result: 🤖 Claude Code Notification
#         All tests passed! 52/52 tests successful.

# You say: "Process this data and notify me if there are any errors"
# Result: 🤖 Claude Code Notification
#         Error: Failed to process row 451 - invalid date format

Beispiel-Benachrichtigungen

CLAUDE.md-Beispiele

Um Claude Code zu ermutigen, Telegram-Benachrichtigungen effektiv zu nutzen, fügen Sie diese zu Ihrer CLAUDE.md hinzu:

# Telegram Notifications

Use the mcp__telegram-notify__send_telegram_message tool to send notifications to Telegram.

- Always send a Telegram notification when:
  - A task is fully complete
  - You need user input to continue
  - An error occurs that requires user attention
  - The user explicitly asks for a notification (e.g., "notify me", "send me a message", "let me know")

- Include relevant details in notifications:
  - For builds/tests: success/failure status and counts
  - For errors: the specific error message and file location

- Use concise, informative messages like:
  - "✅ Build completed successfully (2m 34s)"
  - "❌ Tests failed: 3/52 failing in auth.test.ts"
  - "⚠️ Need permission to modify /etc/hosts"

Entwicklung

Lokal ausführen:

# Start local development server
pnpm dev

Für die lokale Entwicklung lädt Wrangler Umgebungsvariablen automatisch aus Ihrer .dev.vars-Datei.

Führen Sie vor der Bereitstellung alle Prüfungen aus:

pnpm build

Dieser Befehl führt Folgendes aus:

  1. pnpm format - Code mit Biome formatieren

  2. pnpm lint:fix - Lint-Probleme beheben

  3. pnpm cf-typegen - Cloudflare-Typen generieren

  4. pnpm type-check - TypeScript-Typen prüfen

Server testen:

# An unauthenticated request must return HTTP 401
curl -i http://localhost:8787/mcp

# Claude Code performs the authenticated MCP handshake and health check
claude mcp list

Debugging

Authentifizierung testen

Sie können überprüfen, dass der Endpunkt Anfragen ohne sein Bearer-Token ablehnt:

curl -i http://localhost:8787/mcp

Dies sollte 401 Unauthorized zurückgeben. Verwenden Sie dann claude mcp list, um eine authentifizierte Client-Verbindung zu überprüfen.

Häufige Probleme

  1. 401 Unauthorized: Stellen Sie sicher, dass der Authorization: Bearer ...-Header des Clients mit dem Cloudflare-Secret MCP_AUTH_TOKEN übereinstimmt.

  2. MCP verbindet sich erneut oder es kommt zu Zeitüberschreitungen: Stellen Sie sicher, dass der Client den HTTP-Transport und den /mcp-Endpunkt verwendet, nicht den eingestellten /sse-Endpunkt.

  3. Telegram-Benachrichtigungen werden nicht gesendet: Überprüfen Sie, ob BOT_TOKEN und DEFAULT_CHAT_ID in der Worker-Umgebung korrekt festgelegt sind.

Technische Details

  • Sprache: TypeScript (ES2021-Ziel)

  • Laufzeit: Cloudflare Workers mit Node.js-Kompatibilität

  • Protokoll: MCP (Model Context Protocol)

  • Transport: Zustandsloses Streamable HTTP

  • Observability: Für Monitoring aktiviert

Referenzen

Dieses Projekt wurde anhand der folgenden Anleitungen erstellt:

Lizenz

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Code to send notifications to Discord channels via webhooks when tasks complete, errors occur, or user intervention is needed. Deployed serverlessly on Cloudflare Workers with support for rich message formatting and embeds.
    8
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Sends Telegram alerts for Claude Code status updates, including notifications for task completion, user requests, and custom status updates with normal or urgent priority.
    1

View all related MCP servers

Related MCP Connectors

  • Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.

  • Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API

  • Let your AI agent notify you by email, Slack, Discord, or webhook. One tool: send_notification.

View all MCP Connectors

Latest Blog Posts

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/kstonekuan/telegram-notification-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server