Signal Desk MCP
Signal Desk
PWA для управления элементами мониторинга на отдельном экране: периодическое выполнение, история, внутриприложенные уведомления и Web Push. Через защищённый OAuth MCP-инструмент можно регистрировать, обновлять и запускать те же элементы мониторинга прямо из ChatGPT.
Ссылки для публикации
GitHub Pages (режим локального прототипа): https://rune-markar.github.io/signal-desk/
GitHub Pages не может хранить секретные данные или выполнять периодические задачи, поэтому работает как демонстрация в браузере. Рабочий URL для автоматического мониторинга, MCP и Push выдаётся при развёртывании Cloudflare Worker.
Related MCP server: omniwatchguard-mcp
Режимы работы
GitHub Pages / режим локального прототипа
Добавление, редактирование, остановка, возобновление, удаление, поиск и фильтрация элементов мониторинга
Непрочитанные уведомления, массовое прочтение, откладывание (snooze)
История выполнения и следующее запланированное время
Ручной ввод содержимого ChatGPT Scheduled task и перенос в состоянии «остановлен»
Сохранение в
localStorageЭкспорт JSON с несэмпловыми данными для передачи в Worker-версию
«Демо-результат» без внешних коммуникаций
Офлайн-отображение PWA-оболочки приложения
Режим подключения к Cloudflare Worker
Синхронизация между устройствами с D1 как источником истины
Сессионная аутентификация и изоляция данных единственного владельца
Cron каждые 15 минут и аренда выполнения (execution lease)
Cloudflare Workers AI для определения мониторинга с URL-адресами назначения
Публичный веб-поиск через OpenAI Responses API (при настройке API-ключа)
Безопасное получение HTTPS-страниц или веб-поиск
История успехов, несоответствий и сбоев, защита от дублирования уведомлений
VAPID Web Push и тихие часы
/mcp, защищённый OAuth 2.1 + PKCEСписок, создание, обновление, остановка/возобновление, немедленное выполнение и удаление из ChatGPT
Явная одноразовая миграция локальных данных перед подключением
Проверка и загрузка JSON, экспортированного из версии GitHub Pages
Если аутентифицированный экран переходит в офлайн, в течение того же запуска можно просматривать последнее состояние сервера. При перезагрузке до подтверждения аутентификации отображаются только локальные данные; при выходе, 401 или подтверждении отсутствия аутентификации кэш сервера на устройстве удаляется. Во время офлайна изменения данных на сервере не выполняются.
Граница с ChatGPT
Signal Desk является источником истины для элементов мониторинга. При подключении MCP к ChatGPT вы можете управлять мониторингом Signal Desk прямо из диалога.
В то же время, публичный API для получения существующего списка ChatGPT Scheduled Tasks или истории выполнения недоступен, поэтому следующее не выполняется:
Автоматический импорт существующих Scheduled Tasks
Замена получателей уведомлений ChatGPT на Signal Desk
Двусторонняя синхронизация между ChatGPT и Signal Desk
Существующие задачи проверяются на экране «Перенос из ChatGPT» и сохраняются вручную в остановленном состоянии. После успешного теста в Signal Desk остановите исходную задачу ChatGPT самостоятельно.
Версии GitHub Pages и Worker имеют разные origin, поэтому данные браузера автоматически не синхронизируются. Экспортируйте JSON для переноса в «Настройках» версии Pages, войдите в Worker-версию, импортируйте его там через те же «Настройки», затем явно подтвердите перенос, сверив количество и URL. JSON содержит условия мониторинга и URL, поэтому обращайтесь с ним только на безопасных устройствах.
Локальный запуск
Используйте Node.js 20.19 или выше (или 22.12 или выше).
Локальный режим прототипа, эквивалентный GitHub Pages:
npm install
npm run devРежим подключения к Worker:
cp .dev.vars.example .dev.vars
npm run db:migrate:local
npm run dev:workerПриложение в режиме подключения к Worker доступно по адресу http://localhost:8787/signal-desk/, MCP — http://localhost:8787/mcp. Укажите реальные секретные значения в .dev.vars и не добавляйте их в Git. Даже без ключа OpenAI API мониторинг с заданным URL-адресом назначения можно выполнять через Workers AI. Для мониторинга с публичным веб-поиском без URL требуется ключ OpenAI API.
Проверка качества
npm run checknpm run check выполняет следующее:
Тесты Vitest для домена, UI, URL источника мониторинга и Push URL
TypeScript фронтенда и продакшен-сборку Vite
Типы Worker
Wrangler deploy dry-run
Развёртывание
См. инструкцию по развёртыванию для D1 migration в Cloudflare, Worker Secret, VAPID, deploy и подключения ChatGPT MCP. Границы реализации и проектирование безопасности описаны в архитектуре.
Основная структура
src/
api/ PWAから同一オリジンAPIへのクライアント
components/ 共通UI、モーダル、監視カード
domain/ 型、予定計算、Reducer、ローカル保存
pages/ 概要、監視、通知、履歴、設定
state/ ローカル/サーバー両モードの状態管理
worker/
migrations/ D1 schema
api.ts Cookie認証されたPWA API
auth.ts セッション、同一オリジン、試行制限
db.ts D1 repository
runner.ts Workers AI / Responses API、外部取得、Cron、lease
push.ts VAPID Web Push
mcp.ts ChatGPT用MCPツール
oauth.ts OAuth同意フロー
index.ts Worker統合入口Технический стек
React 19 + TypeScript + Vite
Vitest + Testing Library
Vite PWA / Workbox
Cloudflare Workers + D1 + KV + Cron + Static Assets
Cloudflare Workers AI
Stateless MCP handler из Cloudflare Agents SDK
OpenAI Responses API
Web Push / VAPID
Примечания по безопасности
Не размещайте секретные данные, парольную фразу для входа или VAPID-ключи во фронтенде или в Git.
Worker поддерживает только HTTPS. Внешние страницы обрабатываются как ненадёжные данные; инструкции с этих страниц не выполняются.
Эта версия предназначена для одного владельца. Для массового использования добавьте систему управления учётными записями и внешний IdP.
Лицензия на public/THIRD_PARTY_NOTICES.txt указана в public/THIRD_PARTY_NOTICES.txt. Данный проект в настоящее время не имеет лицензии на повторное использование.
This server cannot be deployed
Maintenance
Related MCP Connectors
- sentinelOAuthio.rootstuff
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
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.
Official remote MCP server of MailSenpai, the EU-hosted email marketing platform. Connect Claude, ChatGPT, Cursor or another MCP client with OAuth 2.1 and PKCE. 74 tools manage lists, subscribers, segments, templates, draft campaigns and stats, and check email DNS, blacklists and spam. Sends and deletions require explicit confirmation; every call is logged. The same team also offers SMTP Senpai, an SMTP relay and email API for transactional sending: https://en.mailsenpai.com/smtp-senpai/.
Let Claude or ChatGPT search, read and send your WhatsApp messages over MCP. OAuth sign-in.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables ChatGPT to interact with Google Calendar through a remote MCP server. Provides tools to list, create, update, and delete calendar events with OAuth authentication.-
- AlicenseNot gradedqualityBmaintenanceEnables users to manage OmniWatchGuard website monitors and alerts via natural language. Supports listing, creating, updating, pausing, resuming, and deleting monitors, plus reviewing recent notifications across channels.284 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables ChatGPT to manage WordPress tasks via MCP, including listing, creating, updating, completing, and deleting tasks while WordPress remains the source of truth.-
- AlicenseNot gradedqualityBmaintenanceEnables LLM clients to manage Uptime Kuma HTTP(S) monitors, groups, tags, and notifications, and to retrieve heartbeats, stats, and incident history through MCP tools.MIT