Telegram Notification MCP Server
Telegram Notification MCP Server
MCP-сервер (Model Context Protocol), который отправляет уведомления в Telegram, когда Claude Code завершает задачи. Создан на TypeScript с использованием Cloudflare Agents SDK и разворачивается на Cloudflare Workers.
📢 Предпочитаете Discord? Ознакомьтесь с Discord Notification MCP для уведомлений в Discord.
Возможности
🤖 MCP-инструмент: Предоставляет инструмент
send_telegram_messageдля отправки уведомлений🚀 Cloudflare Workers: Работает в бессерверном режиме с глобальным распределением
🔐 Аутентификация: Требуется bearer-токен, хранящийся как секрет Cloudflare
🌐 Streamable HTTP: Использует современный stateless MCP-транспорт
💬 Форматирование сообщений: Поддерживает форматирование Markdown и HTML
📝 Форматирование: Поддерживает форматирование сообщений в Markdown и HTML
Related MCP server: mcp-telegram-claudecode
Архитектура
Этот сервер реализует спецификацию MCP с помощью Cloudflare Agents SDK:
POST /mcp: Stateless Streamable HTTP endpoint для MCP-взаимодействия
GET /sse: Возвращает
410 Gone; устаревшие SSE-клиенты должны перейти на/mcpСоздан на TypeScript, MCP SDK и Cloudflare Agents SDK
Корректная обработка ошибок JSON-RPC 2.0
Включён режим совместимости с Node.js
Настройка
Предварительные требования
Telegram-бот: Создайте бота через @BotFather и получите токен бота
Chat ID: Получите свой chat ID, отправив сообщение вашему боту и посетив:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdatesАккаунт Cloudflare: Зарегистрируйтесь на cloudflare.com
Установка
Клонируйте этот репозиторий
Установите зависимости:
pnpm install
Конфигурация
Создайте файл
.dev.varsиз примера:cp .dev.vars.example .dev.varsЗатем отредактируйте
.dev.vars, указав токен вашего бота и chat ID. Этот файл используется как для локальной разработки, так и для развёртывания.Для продакшн-развёртывания сгенерируйте MCP bearer-токен и настройте секреты Cloudflare:
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Примечание: DEFAULT_CHAT_ID необязателен. Если он не задан, вы должны указать параметр chat_id при вызове инструмента
send_telegram_message.При необходимости обновите
wrangler.toml, указав имя вашего worker
Развёртывание
Разверните на Cloudflare Workers:
Развёртывание с помощью 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Альтернатива: непрерывное развёртывание
Вы также можете настроить непрерывное развёртывание прямо из панели управления Cloudflare. Подробнее о интеграции git с Cloudflare
Конфигурация Claude Code
Добавьте MCP-сервер в Claude Code, используя Streamable HTTP и тот же bearer-токен:
# 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Токен — это клиентский доступ к MCP endpoint, а не токен Telegram-бота. Никогда не помещайте токен бота в MCP-конфигурацию Claude.
Вы можете проверить конфигурацию с помощью:
claude mcp listИспользование
После настройки Claude Code сможет отправлять уведомления в ваш Telegram, когда это необходимо.
Доступный инструмент
send_telegram_message: Отправка уведомления в Telegram
text(обязательный): Текст отправляемого сообщенияchat_id(необязательный): Chat ID в Telegram (используется DEFAULT_CHAT_ID, если не указан)parse_mode(необязательный): "Markdown" или "HTML" для форматирования сообщенияdisable_notification(необязательный): Отправка сообщения без звука
Пример использования:
// 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"
})Когда вы будете получать уведомления
Claude Code отправляет уведомления, когда:
Вы явно просите: «уведоми меня, когда закончишь» или «сообщи мне в Telegram»
Во время выполнения возникают ошибки
Достигнуты важные этапы
Требуется ввод данных или вмешательство пользователя
Примеры сценариев
# 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Примеры уведомлений
Примеры для CLAUDE.md
Чтобы побудить Claude Code эффективно использовать уведомления Telegram, добавьте это в ваш CLAUDE.md:
# 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"Разработка
Локальный запуск:
# Start local development server
pnpm devДля локальной разработки Wrangler автоматически загрузит переменные окружения из вашего файла .dev.vars.
Запустите все проверки перед развёртыванием:
pnpm buildЭта команда выполняет:
pnpm format— форматирование кода с помощью Biomepnpm lint:fix— исправление проблем линтингаpnpm cf-typegen— генерация типов Cloudflarepnpm type-check— проверка типов TypeScript
Тестирование сервера:
# 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Отладка
Проверка аутентификации
Вы можете убедиться, что endpoint отклоняет запросы без bearer-токена:
curl -i http://localhost:8787/mcpЭто должно вернуть 401 Unauthorized. Затем используйте claude mcp list, чтобы проверить аутентифицированное клиентское подключение.
Частые проблемы
401 Unauthorized: Убедитесь, что заголовок
Authorization: Bearer ...клиента совпадает с секретом CloudflareMCP_AUTH_TOKEN.MCP переподключается или истекает по таймауту: Убедитесь, что клиент использует HTTP-транспорт и endpoint
/mcp, а не устаревший/sse.Уведомления Telegram не отправляются: Проверьте, что
BOT_TOKENиDEFAULT_CHAT_IDкорректно заданы в окружении Worker.
Технические детали
Язык: TypeScript (целевая версия ES2021)
Среда выполнения: Cloudflare Workers с совместимостью с Node.js
Протокол: MCP (Model Context Protocol)
Транспорт: Stateless Streamable HTTP
Наблюдаемость: Включена для мониторинга
Ссылки
Этот проект создан на основе следующих руководств:
Лицензия
MIT
This server cannot be installed
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
- 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
- AlicenseAqualityDmaintenanceEnables Claude Code to send and receive messages via Telegram for remote interaction and approval of sensitive operations.8187MIT
- FlicenseNot gradedqualityDmaintenanceSends Telegram alerts for Claude Code status updates, including notifications for task completion, user requests, and custom status updates with normal or urgent priority.1
- FlicenseNot gradedqualityDmaintenanceEnables Claude Code to send messages to and receive instructions from Telegram, with task tracking and persistent storage.
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.
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/kstonekuan/telegram-notification-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server