Signal Desk MCP
Signal Desk
監視項目を専用画面で管理し、定期実行、履歴、アプリ内通知、Web Pushを扱うPWAです。ChatGPTからはOAuth保護されたMCPツールを使って、同じ監視項目を登録・更新・実行できます。
公開先
GitHub Pages(ローカル試作モード): https://rune-markar.github.io/signal-desk/
GitHub Pagesは秘密情報や定期処理を持てないため、ブラウザ内デモとして動作します。自動監視・MCP・Pushを使う本稼働URLは、Cloudflare Workerをdeployしたときに発行されます。
Related MCP server: omniwatchguard-mcp
動作モード
GitHub Pages / ローカル試作モード
監視項目の追加、編集、停止、再開、削除、検索、絞り込み
通知の未読、一括既読、スヌーズ
実行履歴と次回予定
ChatGPT Scheduled taskの内容を手入力し、停止中で移行
localStorageへの保存Worker版へ渡す非サンプルデータのJSON書き出し
外部通信をしない「デモ結果」
PWAアプリシェルのオフライン表示
Cloudflare Worker接続モード
D1を正本にした端末間同期
セッション認証と単一所有者のデータ分離
15分ごとのCronと実行lease
参照先URL付き監視を判定するCloudflare Workers AI
OpenAI Responses APIによる公開Web検索(APIキー設定時)
HTTPSページの安全な取得、またはWeb検索
成功・不一致・失敗の履歴と通知重複防止
VAPID Web Pushと静かな時間
OAuth 2.1 + PKCEで保護された
/mcpChatGPTからの一覧、作成、更新、停止・再開、即時実行、削除
接続前ローカルデータの明示的一回移行
GitHub Pages版で書き出したJSONの検証・読み込み
認証済みの画面がそのままオフラインになった場合は、同じ起動中だけ直前のサーバー状態を閲覧できます。再読込時は認証確認までローカルデータだけを表示し、ログアウト・401・未認証確認時には端末のサーバーキャッシュを削除します。オフライン中のサーバーデータ変更は行いません。
ChatGPTとの境界
Signal Deskを監視項目の正本にします。ChatGPTにMCPを接続すると、会話からSignal Deskの監視を操作できます。
一方、ChatGPT Scheduled Tasksの既存一覧や実行履歴を取得する一般向けAPIは確認できないため、次は行いません。
既存Scheduled Tasksの自動取り込み
ChatGPT側通知の送信先をSignal Deskへ置換
ChatGPT側とSignal Desk側の双方向同期
既存タスクは画面の「ChatGPTから移行」で内容を確認し、停止中として手動保存します。Signal Deskでテスト成功後に、元のChatGPTタスクを利用者が停止してください。
GitHub Pages版とWorker版はオリジンが異なるため、ブラウザ保存データは自動共有されません。Pages版の「設定」で移行用JSONを書き出し、Worker版へログインして同じ「設定」から読み込んだ後、件数とURLを確認して明示的に移行します。JSONには監視条件やURLが含まれるため、安全な端末で扱ってください。
ローカル起動
Node.js 20.19以上(または22.12以上)を使用してください。
GitHub Pages相当のローカル試作モード:
npm install
npm run devWorker接続モード:
cp .dev.vars.example .dev.vars
npm run db:migrate:local
npm run dev:workerWorker接続モードのアプリはhttp://localhost:8787/signal-desk/、MCPはhttp://localhost:8787/mcpです。.dev.varsへ実際の秘密値を設定し、Gitへ追加しないでください。OpenAI APIキーを省略した場合も、参照先URLを設定した監視はWorkers AIで実行できます。URLなしで公開Web検索する監視にはOpenAI APIキーが必要です。
品質確認
npm run checknpm run checkは次を実行します。
Vitestのドメイン、UI、監視元URL、Push URLテスト
フロントエンドTypeScriptとVite本番ビルド
Worker TypeScript
Wranglerのdeploy dry-run
配置
CloudflareへのD1 migration、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
Cloudflare Agents SDKのstateless MCP handler
Cloudflare Workers OAuth Provider
OpenAI Responses API
Web Push / VAPID
Temporal polyfill
セキュリティ上の注意
APIキー、ログイン用パスフレーズ、VAPID private keyをフロントエンドやGitへ置かないでください。
監視元はHTTPSのみです。Workerはprivate network、危険なredirect、非テキスト応答、512KB超過を拒否します。
外部ページは信頼できないデータとしてモデルへ渡し、ページ内の命令を実行しません。
この版の認証は単一所有者向けです。不特定多数へ公開する前に外部IdPとアカウント管理を追加してください。
Push受信、通知クリック、PWAインストール、Android/iOSアイコンは本番HTTPSと実機で最終確認してください。
Noto Sans JPのライセンスは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