Signal Desk MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Signal Desk MCPList my monitoring items and show their last status."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Signal Desk
A PWA that manages monitored items on a dedicated screen and handles scheduled execution, history, in-app notifications, and Web Push. From ChatGPT, you can register, update, and run the same monitored items using OAuth-protected MCP tools.
Where it is published
GitHub Pages (local prototype mode): https://rune-markar.github.io/signal-desk/
Since GitHub Pages cannot hold secret information or scheduled processing, it runs as an in-browser demo. The production URL that uses automatic monitoring, MCP, and Push is issued when you deploy the Cloudflare Worker.
Related MCP server: GetMonitor MCP Server
Operation modes
GitHub Pages / local prototype mode
Add, edit, stop, resume, delete, search, and filter monitored items
Unread notifications, mark all as read, snooze
Execution history and next scheduled run
Manually enter the contents of a ChatGPT Scheduled task and migrate it in a stopped state
Save to
localStorageExport non-sample data as JSON to pass to the Worker version
"Demo results" that do not communicate externally
Offline display of the PWA app shell
Cloudflare Worker connection mode
Device-to-device synchronization with D1 as the source of truth
Session authentication and single-owner data isolation
Cron every 15 minutes and execution lease
Cloudflare Workers AI for evaluating monitoring with a referenced URL
Public web search via the OpenAI Responses API (when an API key is set)
Safe retrieval of HTTPS pages, or web search
History of success, mismatch, and failure, with duplicate notification prevention
VAPID Web Push and quiet hours
/mcpprotected by OAuth 2.1 + PKCEList, create, update, stop/resume, run immediately, and delete from ChatGPT
Explicit one-time migration of pre-connection local data
Validation and import of JSON exported from the GitHub Pages version
If an authenticated screen goes offline as-is, you can view the most recent server state only during that same session. On reload, only local data is displayed until authentication is confirmed; on logout, 401, or confirmation of unauthenticated status, the device's server cache is deleted. No server data changes are made while offline.
Boundary with ChatGPT
Signal Desk is the source of truth for monitored items. When you connect MCP to ChatGPT, you can operate Signal Desk monitoring from conversations.
On the other hand, since no general-purpose API is available for retrieving the existing list or execution history of ChatGPT Scheduled Tasks, the following are not done:
Automatic import of existing Scheduled Tasks
Replacing the ChatGPT-side notification destination with Signal Desk
Bidirectional synchronization between the ChatGPT side and the Signal Desk side
For existing tasks, confirm the contents under "Migrate from ChatGPT" on the screen and manually save them in a stopped state. After the test succeeds in Signal Desk, the user should stop the original ChatGPT task.
Since the GitHub Pages version and the Worker version have different origins, browser-saved data is not automatically shared. Export the migration JSON from "Settings" in the Pages version, log in to the Worker version and import it from the same "Settings", then confirm the count and URL and migrate explicitly. Since the JSON contains monitoring conditions and URLs, handle it on a secure device.
Local startup
Use Node.js 20.19 or later (or 22.12 or later).
Local prototype mode equivalent to GitHub Pages:
npm install
npm run devWorker connection mode:
cp .dev.vars.example .dev.vars
npm run db:migrate:local
npm run dev:workerIn Worker connection mode, the app is at http://localhost:8787/signal-desk/ and MCP is at http://localhost:8787/mcp. Set the actual secret values in .dev.vars and do not add them to Git. Even if the OpenAI API key is omitted, monitoring with a referenced URL set can be run with Workers AI. Monitoring that performs public web search without a URL requires the OpenAI API key.
Quality checks
npm run checknpm run check runs the following:
Vitest tests for domain, UI, monitoring source URL, and Push URL
Frontend TypeScript and Vite production build
Worker TypeScript
Wrangler deploy dry-run
Deployment
See deployment procedure for D1 migration to Cloudflare, Worker Secret, VAPID, deploy, and ChatGPT MCP connection. Implementation boundaries and security design are summarized in architecture.
Main structure
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統合入口Tech stack
React 19 + TypeScript + Vite
Vitest + Testing Library
Vite PWA / Workbox
Cloudflare Workers + D1 + KV + Cron + Static Assets
Cloudflare Workers AI
Cloudflare Agents SDK's stateless MCP handler
Cloudflare Workers OAuth Provider
OpenAI Responses API
Web Push / VAPID
Temporal polyfill
Security notes
Do not place API keys, the login passphrase, or the VAPID private key in the frontend or in Git.
Monitoring sources are HTTPS only. The Worker rejects private networks, dangerous redirects, non-text responses, and content over 512KB.
External pages are passed to the model as untrusted data; instructions within the page are not executed.
Authentication in this version is for a single owner. Add an external IdP and account management before publishing to the general public.
Perform final verification of Push reception, notification clicks, PWA installation, and Android/iOS icons on production HTTPS and real devices.
The Noto Sans JP license is included in public/THIRD_PARTY_NOTICES.txt. This project itself does not currently grant a reuse license.
This server cannot be installed
Maintenance
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
- AlicenseBqualityDmaintenanceEnables unified management of maintenance windows and incidents across Atlassian Statuspage and Uptime Kuma. It allows AI assistants to schedule maintenance, update service statuses, and list monitors through a single MCP-compatible interface.9MIT

GetMonitor MCP Serverofficial
AlicenseCqualityCmaintenanceConnects AI assistants to GetMonitor status pages, monitors, incidents, and maintenance schedules via read-only tools.10017Apache 2.0- FlicenseNot gradedqualityCmaintenanceUptime, SSL, DNS and domain monitoring you can talk to: check, create and manage monitors for all your client sites from Claude, ChatGPT, or any MCP client.1
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Healthchecks.io, allowing users to list, create, update, pause, resume, and delete checks, as well as view ping history and integrations.679MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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