Skip to main content
Glama
Rune-markar

Signal Desk MCP

by Rune-markar

Signal Desk

Gestión de elementos de monitorización en una pantalla dedicada, una PWA que maneja ejecución periódica, historial, notificaciones en la aplicación y Web Push. Desde ChatGPT, se pueden registrar, actualizar y ejecutar los mismos elementos de monitorización mediante herramientas MCP protegidas con OAuth.

Publicación

Como GitHub Pages no puede contener información confidencial ni procesos periódicos, funciona como una demostración en el navegador. La URL de producción que utiliza monitorización automática, MCP y Push se publica al desplegar Cloudflare Worker.

Related MCP server: omniwatchguard-mcp

Modos de funcionamiento

GitHub Pages / Modo de prototipo local

  • Añadir, editar, detener, reanudar, eliminar, buscar y filtrar elementos de monitorización

  • No leídas, marcar todas como leídas y posponer notificaciones

  • Historial de ejecución y próxima programación

  • Introducir manualmente el contenido de las tareas programadas de ChatGPT y migrarlas como detenidas

  • Guardado en localStorage

  • Exportación de JSON de datos no de muestra para transferir a la versión Worker

  • «Resultado de demostración» sin comunicación externa

  • Visualización sin conexión del shell de la aplicación PWA

Modo de conexión a Cloudflare Worker

  • Sincronización entre dispositivos con D1 como fuente de verdad

  • Autenticación de sesión y aislamiento de datos de un único propietario

  • Cron cada 15 minutos y lease de ejecución

  • Cloudflare Workers AI para evaluar la monitorización con URL de referencia

  • Búsqueda web pública mediante OpenAI Responses API (al configurar la clave de API)

  • Obtención segura de páginas HTTPS o búsqueda web

  • Historial de éxito, discrepancia y fallo, y prevención de notificaciones duplicadas

  • VAPID Web Push y horas de silencio

  • /mcp protegido con OAuth 2.1 + PKCE

  • Listado, creación, actualización, detención/reanudación, ejecución inmediata y eliminación desde ChatGPT

  • Migración única y explícita de los datos locales previos a la conexión

  • Validación y carga del JSON exportado en la versión de GitHub Pages

Si la pantalla autenticada se queda sin conexión, se puede consultar el último estado del servidor solo durante esa sesión. Al recargar, se muestran únicamente los datos locales hasta confirmar la autenticación, y al cerrar sesión, recibir un 401 o confirmar que no está autenticado, se elimina la caché del servidor del dispositivo. No se realizan cambios en los datos del servidor sin conexión.

Límites con ChatGPT

Signal Desk es la fuente de verdad de los elementos de monitorización. Al conectar MCP a ChatGPT, se pueden operar las monitorizaciones de Signal Desk desde la conversación.

Por otro lado, no se ha podido confirmar una API pública para obtener la lista existente o el historial de ejecución de las tareas programadas de ChatGPT, por lo que no se realizará lo siguiente:

  • Importación automática de tareas programadas existentes

  • Sustitución del destino de notificación de ChatGPT por Signal Desk

  • Sincronización bidireccional entre ChatGPT y Signal Desk

Para las tareas existentes, revise el contenido en «Migrar desde ChatGPT» en la pantalla y guárdelas manualmente como detenidas. Después de que la prueba en Signal Desk sea exitosa, el usuario debe detener la tarea original de ChatGPT.

Como la versión de GitHub Pages y la versión Worker tienen orígenes diferentes, los datos guardados en el navegador no se comparten automáticamente. Exporte el JSON de migración en «Configuración» de la versión Pages, inicie sesión en la versión Worker, cárguelo desde la misma «Configuración» y, a continuación, verifique el número de elementos y la URL para migrarlo explícitamente. El JSON contiene condiciones de monitorización y URL, por lo que debe manipularse en un dispositivo seguro.

Inicio local

Utilice Node.js 20.19 o superior (o 22.12 o superior).

Modo de prototipo local equivalente a GitHub Pages:

npm install
npm run dev

Modo de conexión Worker:

cp .dev.vars.example .dev.vars
npm run db:migrate:local
npm run dev:worker

La aplicación en modo de conexión Worker está en http://localhost:8787/signal-desk/ y el MCP en http://localhost:8787/mcp. Configure los valores secretos reales en .dev.vars y no los añada a Git. Incluso si se omite la clave de API de OpenAI, la monitorización con URL de referencia configurada se puede ejecutar con Workers AI. La monitorización de búsqueda web pública sin URL requiere la clave de API de OpenAI.

Verificación de calidad

npm run check

npm run check ejecuta lo siguiente:

  • Pruebas de dominio, UI, URL de origen de monitorización y URL de Push con Vitest

  • Compilación de producción de TypeScript del frontend y Vite

  • TypeScript del Worker

  • Prueba en seco de despliegue de Wrangler

Despliegue

Consulte Instrucciones de despliegue para la migración de D1 a Cloudflare, secretos de Worker, VAPID, despliegue y conexión MCP de ChatGPT. Los límites de implementación y el diseño de seguridad se resumen en Arquitectura.

Estructura principal

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統合入口

Pila tecnológica

  • React 19 + TypeScript + Vite

  • Vitest + Testing Library

  • Vite PWA / Workbox

  • Cloudflare Workers + D1 + KV + Cron + Static Assets

  • Cloudflare Workers AI

  • Manejador MCP sin estado del SDK de Cloudflare Agents

  • Proveedor OAuth de Cloudflare Workers

  • OpenAI Responses API

  • Web Push / VAPID

  • Temporal polyfill

Aviso de seguridad

  • No coloque claves de API, contraseñas de inicio de sesión ni claves privadas VAPID en el frontend ni en Git.

  • El origen de la monitorización es solo HTTPS. El Worker rechaza redes privadas, redirecciones peligrosas, respuestas no textuales y archivos de más de 512 KB.

  • Las páginas externas se pasan al modelo como datos no confiables y no se ejecutan instrucciones dentro de la página.

  • La autenticación de esta versión es para un único propietario. Agregue un IdP externo y gestión de cuentas antes de publicarla al público en general.

  • Verifique la recepción de Push, el clic en notificaciones, la instalación de PWA y los iconos de Android/iOS en HTTPS de producción y en dispositivos reales.

La licencia de Noto Sans JP se incluye en public/THIRD_PARTY_NOTICES.txt. Este proyecto en sí no tiene licencia de reutilización otorgada en este momento.

Related MCP Connectors

  • 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