telegram-bridge
Allows agents to send notifications and ask questions to a user through Telegram, with inline buttons for options and automatic confirmation of dangerous shell commands via Cursor hooks.
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., "@telegram-bridgeAsk in Telegram if I should delete the unused build folder."
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.
cursor-mcp-hooks-telegram
Мост между агентом Cursor и Telegram: содержательные вопросы человеку через MCP и автоматическое подтверждение опасных команд через хуки Cursor.
Зачем это нужно
Агент в Cursor умеет работать, пока вы не сидите за компьютером. Этот проект даёт два канала связи с телефоном:
Канал | Кто инициирует | Назначение |
MCP | агент | выбор архитектуры, уточнение требования, подтверждение |
MCP | агент | статус без ожидания ответа |
Hook | Cursor | Allow / Deny для опасной shell-команды |
Hook | Cursor | уведомление, что задача агента завершена |
Правила Cursor только подсказывают вызвать MCP. Запрет опасного shell обеспечивает хук.
Related MCP server: Telegram Notify MCP Server
Как это устроено
Cursor Agent
| MCP stdio: ask_user / notify_user
v
telegram-bridge (один процесс Python)
|-- Telegram Bot API (getUpdates + sendMessage)
|-- HTTP 127.0.0.1 <--- хуки Cursor (короткие процессы)
v
Telegram → кнопки или текстОдин процесс владеет getUpdates. Хуки не ходят в Telegram напрямую: они спрашивают локальный HTTP-мост. Если порт моста уже занят, второй MCP-процесс работает клиентом первого и не запускает повторный polling.
Требования
Windows, Python 3.11+ (
python, неpython3)Cursor с поддержкой MCP и project/user hooks
Telegram-бот и числовой
chat_idличного чата
Установка
Клонируйте репозиторий, создайте виртуальное окружение и поставьте зависимость:
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txtСкопируйте .env.example в .env и заполните:
Переменная | Назначение |
| токен бота от BotFather |
| числовой id чата, куда слать сообщения |
| только loopback, по умолчанию |
| порт HTTP для хуков, по умолчанию |
| случайная строка для локального HTTP |
| ожидание ответа человека, по умолчанию |
Файл .env в git не входит.
Создайте бота через BotFather, откройте его и нажмите Start. chat_id можно взять из getUpdates после /start или у @userinfobot.
Проверка доставки без Cursor:
.venv\Scripts\python.exe -m telegram_bridge notify "проверка"
.venv\Scripts\python.exe -m telegram_bridge ask "Выбери вариант" --options A BПодключение ко всем проектам Cursor на этой машине:
.venv\Scripts\python.exe -m telegram_bridge install-userКоманда обновляет пользовательские файлы:
%USERPROFILE%\.cursor\mcp.json%USERPROFILE%\.cursor\hooks.json%USERPROFILE%\.cursor\rules\telegram-hitl.mdc
Затем Reload Window. В Settings → MCP сервер telegram-bridge должен быть включён. В Settings → Hooks видны user-level хуки.
Не кладите копию MCP-сервера ещё и в .cursor/mcp.json проекта: Cursor поднимет два процесса и они столкнутся на порту 8765. Шаблон для справки: .cursor/mcp.json.example.
Инструменты MCP
ask_user_telegram(question, options?)
Задаёт вопрос в Telegram. options становятся inline-кнопками. Человек может ответить кнопкой или текстом. Пока вопрос висит, MCP-вызов ждёт. Если ответа нет до таймаута, агент получает строку NO_REPLY и не должен выдумывать выбор.
notify_user_telegram(message)
Отправляет статус и сразу возвращает sent.
Правило .cursor/rules/telegram-hitl.mdc подсказывает агенту, когда звать эти инструменты. Это не принуждение: при необходимости напишите явно «спроси в Telegram».
Хуки
Скрипты лежат в .cursor/hooks/. После install-user Cursor вызывает их по абсолютному пути из профиля пользователя.
beforeShellExecutionпропускает обычные команды. Опасные (удаление деревьев файлов,git push --force,irm \| iex, format диска и подобные) уходят в Telegram как Разрешить / Запретить. Если мост не запущен, такая команда блокируется.stopшлёт «Агент закончил выполнение задачи» и не возвращаетfollowup_message, чтобы Cursor не перезапускал агента сам.
Список опасных шаблонов: telegram_bridge/danger.py.
CLI
python -m telegram_bridge # MCP stdio (так стартует Cursor)
python -m telegram_bridge notify TEXT
python -m telegram_bridge ask "Вопрос" --options A B
python -m telegram_bridge install-userНе запускайте CLI ask параллельно с MCP Cursor: у Telegram только один потребитель getUpdates.
Безопасность
Токен бота и
chat_idтолько в локальном.env.Бот отвечает лишь указанному чату.
Локальный HTTP слушает loopback и проверяет
BRIDGE_API_TOKEN.Хуки читают JSON хука как UTF-8 bytes; в stdout отдают ASCII JSON.
Сообщить об уязвимости: SECURITY.md.
Документация
Лицензия
Проект распространяется на условиях MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Reach your own phone from an AI agent: notifications, approval questions, reminders, ring, files.
Run a Telegram channel from your AI agent. Posts go out through your own bot, not your account.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with users via Telegram to request decisions, approvals, or specific input through text and clickable buttons. This facilitates a human-in-the-loop workflow where the AI can pause for feedback or send status notifications during long-running tasks.3-
- AlicenseNot gradedqualityDmaintenanceConnects VS Code Copilot to Telegram for mobile notifications, interactive approval workflows, and remote command input. Enables users to monitor AI agents, approve sensitive operations, and provide follow-up instructions from their smartphone.MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to send notifications and receive responses via Telegram.29 npm4MIT
- AlicenseAqualityCmaintenanceEnables Claude Code to send and receive messages via Telegram for remote interaction and approval of sensitive operations.86 npm7MIT