Telegram Notification MCP Server
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: claude-telegram-alerts
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 Gonezurück; Legacy-SSE-Clients müssen auf/mcpmigrierenEntwickelt mit TypeScript, MCP SDK und Cloudflare Agents SDK
Korrekte JSON-RPC-2.0-Fehlerbehandlung
Node.js-Kompatibilitätsmodus aktiviert
Einrichtung
Voraussetzungen
Telegram-Bot: Erstellen Sie einen Bot über @BotFather und erhalten Sie Ihr Bot-Token
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>/getUpdatesCloudflare-Konto: Registrieren Sie sich unter cloudflare.com
Installation
Klonen Sie dieses Repository
Installieren Sie die Abhängigkeiten:
pnpm install
Konfiguration
Erstellen Sie anhand des Beispiels eine
.dev.vars-Datei:cp .dev.vars.example .dev.varsBearbeiten Sie dann
.dev.varsmit Ihrem Bot-Token und Ihrer Chat-ID. Diese Datei wird sowohl für die lokale Entwicklung als auch für die Bereitstellung verwendet.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_TOKENHinweis: 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.Aktualisieren Sie bei Bedarf
wrangler.tomlmit 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 deployAlternative: 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/mcpDas 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 listVerwendung
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 Nachrichtentextchat_id(optional): Telegram-Chat-ID (verwendet DEFAULT_CHAT_ID, falls nicht angegeben)parse_mode(optional): „Markdown" oder „HTML" für die Nachrichtenformatierungdisable_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 formatBeispiel-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 devFü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 buildDieser Befehl führt Folgendes aus:
pnpm format- Code mit Biome formatierenpnpm lint:fix- Lint-Probleme behebenpnpm cf-typegen- Cloudflare-Typen generierenpnpm 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 listDebugging
Authentifizierung testen
Sie können überprüfen, dass der Endpunkt Anfragen ohne sein Bearer-Token ablehnt:
curl -i http://localhost:8787/mcpDies sollte 401 Unauthorized zurückgeben. Verwenden Sie dann claude mcp list, um eine authentifizierte Client-Verbindung zu überprüfen.
Häufige Probleme
401 Unauthorized: Stellen Sie sicher, dass der
Authorization: Bearer ...-Header des Clients mit dem Cloudflare-SecretMCP_AUTH_TOKENübereinstimmt.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.Telegram-Benachrichtigungen werden nicht gesendet: Überprüfen Sie, ob
BOT_TOKENundDEFAULT_CHAT_IDin 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
This server cannot be deployed
Maintenance
Related MCP Connectors
Project memory, tasks and Telegram notifications for your coding agent. Chip account required.
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Run a Telegram channel from your AI agent. Posts go out through your own bot, not your account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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.8MIT
- FlicenseAqualityDmaintenanceSends Telegram alerts for Claude Code status updates, including notifications for task completion, user requests, and custom status updates with normal or urgent priority.21-
- FlicenseNot gradedqualityDmaintenanceEnables Claude Code to send messages to and receive instructions from Telegram, with task tracking and persistent storage.-
- AlicenseAqualityCmaintenanceEnables Claude to send and manage Telegram messages through a bot, supporting remote deployment for scheduled automations.1047 npmMIT