Skip to main content
Glama
Rune-markar

Signal Desk MCP

by Rune-markar

Signal Desk

PWA для управления элементами мониторинга на отдельном экране: периодическое выполнение, история, внутриприложенные уведомления и Web Push. Через защищённый OAuth MCP-инструмент можно регистрировать, обновлять и запускать те же элементы мониторинга прямо из ChatGPT.

Ссылки для публикации

GitHub Pages не может хранить секретные данные или выполнять периодические задачи, поэтому работает как демонстрация в браузере. Рабочий URL для автоматического мониторинга, MCP и Push выдаётся при развёртывании Cloudflare Worker.

Related MCP server: GetMonitor MCP Server

Режимы работы

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 check

npm 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. Данный проект в настоящее время не имеет лицензии на повторное использование.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

  • AI-powered website change monitoring - manage monitors and alerts via MCP.

View all MCP Connectors

Latest Blog Posts

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/Rune-markar/signal-desk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server