Telegram Delivery MCP
by elicad-keyns
README.md
# Telegram Delivery MCP
Независимый второй MCP-сервер для задания «День 20. Orchestration MCP».
Сервер отвечает только за Telegram-доставку. Он не ищет задачи самостоятельно:
1. агент вызывает `search_tracker_issues`, `summarize_tracker_issues` и
`save_tracker_report` на `YandexTrackerMCP`;
2. получает настоящий `artifact_id`;
3. вызывает `send_tracker_artifact` на этом MCP-сервере;
4. Telegram Delivery MCP внутренним MCP-клиентом получает Markdown из Tracker MCP;
5. передаёт документ существующему Telegram bot-service;
6. сохраняет доставку в SQLite и возвращает `delivery_id`;
7. агент вызывает `get_delivery_status` перед тем, как сообщить об успехе.
## Инструменты
- `get_telegram_service_status` — доступность bot-service и число подписчиков;
- `send_tracker_artifact` — получить сохранённый Tracker-артефакт и отправить документ;
- `get_delivery_status` — проверить одну доставку по точному `delivery_id`;
- `list_recent_deliveries` — последние попытки доставки.
SQLite хранится в `data/deliveries.db`. Токен Telegram-бота этому MCP не нужен:
сервер использует защищённый внутренний endpoint существующего bot-service.
## Локальный запуск
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
Copy-Item .env.example .env
```
Заполните `.env`, затем:
```powershell
yandex-tracker-telegram-mcp
```
Streamable HTTP MCP endpoint:
```text
http://127.0.0.1:8792/mcp
```
## Docker
Для отдельного запуска:
```bash
docker compose up -d --build
```
В общем стеке сервис называется `telegram-delivery-mcp`. Внутренние адреса:
```dotenv
TRACKER_MCP_URL=http://yandex-tracker-mcp:8788/mcp
TELEGRAM_BOT_SERVICE_URL=http://telegram-bot:8791
```
`TRACKER_MCP_API_KEY` должен совпадать с `MCP_API_KEY` Tracker MCP, а
`TELEGRAM_BOT_SERVICE_API_KEY` — с `BOT_SERVICE_API_KEY` Telegram-бота.
## Проверка
```bash
pytest -q
ruff check .
```
Сквозной сценарий для двух уже запущенных MCP-серверов:
```powershell
$env:DAY20_TRACKER_MCP_API_KEY="tracker-mcp-key"
$env:DAY20_DELIVERY_MCP_API_KEY="telegram-delivery-mcp-key"
python scripts/day20_e2e.py
```
Сценарий проверяет точный порядок:
```text
Tracker/search → Tracker/summarize → Tracker/save
→ Telegram/send → Telegram/verify
```
Пример запроса агенту:
```text
Найди открытые критические задачи очереди AI, подготовь Markdown-отчёт,
сохрани его, отправь в Telegram и проверь доставку.
```
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues