OpenUptime: uptime monitoring and status pages
OpenUptime
A skill that teaches an agent to create monitors, run incidents and build public status pages in OpenUptime over MCP
- 32 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Through MCP the agent creates and deletes monitors, and deleting wipes the check history
- Public incident updates reach subscribers and visitors of the status page
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/openuptimeDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Through MCP the agent creates and deletes monitors, and deleting wipes the check history
- Public incident updates reach subscribers and visitors of the status page
This is third-party code. Review the repository files before installing.
What it does
OpenUptime is open-source uptime monitoring. It checks HTTP, TCP, DNS and WebSocket targets, takes pings from cron jobs, looks into PostgreSQL, MySQL and Redis, and watches domain expiry and MCP servers. Incidents, maintenance windows and public status pages live in the same service, and alerts go to Slack, Discord, Telegram, PagerDuty, email and webhooks. The skill in the skills/openuptime folder describes how to work with this service through its MCP server at /api/mcp. Before creating a monitor the agent lists the existing ones, and after creating it runs a check and reports the real result. When something fails it opens the incident list, repeats the check from a specific region, takes the incident and posts updates with the statuses investigating, identified, monitoring and resolved. During planned work the agent pauses monitors and resumes them afterwards. It builds a status page only from the monitors you allowed to show to customers. The skill tells the agent to confirm with a person before deleting a monitor or posting a public update.
Who it is for. Teams running OpenUptime in the cloud or on their own Cloudflare Workers or Docker, who want to manage monitors and incidents from an agent chat.
Good fit when
- A new service goes to production and needs an HTTP monitor with a keyword check and an alert channel
- An alert fired overnight and you need the open incidents plus a check from another region
- Before a database migration monitors get paused, and after it they come back
- Customers need a public status page with a chosen set of services
- A cron job or backup has to report in, which takes a heartbeat monitor and a ping URL
Not a fit when
- The OpenUptime server is not connected: the skill only calls its tools and checks nothing without it
- You need SSL monitoring and a custom status page domain on a self-hosted install, which the open version lacks
- The database connection string must stay away from the agent, but PostgreSQL, MySQL and Redis monitors need it
- You want a root-cause analysis from logs and traces: the skill runs incidents but reads neither code nor logs
Example request
Create an HTTP monitor for https://api.example.com/health that checks for the word ok, attach the Slack channel and run a check.Limitations
The skill works only with the OpenUptime MCP server connected. Without it the agent stops and asks you to connect the server. Access is granted through OAuth or an API key.
The command npx skills add becoolme/openuptime installs the skill from the whole repository; the folder you need is skills/openuptime. The agent creates workspaces and projects only when the connection was authorized for it.
SSL certificate monitoring and a custom status page domain belong to the paid plans of the hosted version and are absent from self-hosting.
How to disable. Delete the openuptime skill folder from the agent's skills directory. Disconnect the server with claude mcp remove openuptime; the monitors stay in the service.
FAQ
How do I connect OpenUptime to Claude Code?
Run claude mcp add --transport http openuptime https://openuptime.app/api/mcp. For your own server use an address like https://your-host/api/mcp. The server then asks for OAuth or an API key, and you install the skill with npx skills add becoolme/openuptime.
Can I run OpenUptime myself?
Yes. It deploys to Cloudflare Workers with Postgres or as one Docker container under the MIT license. Monitors, incidents, status pages, alert channels, the API and MCP are all available self-hosted, with no quotas.
What will the skill not do without asking?
It confirms with a person before deleting a monitor, posting a public incident update or resolving an incident customers can see. Instead of deleting, the agent suggests pausing the monitor.
Which monitor types does the skill cover?
The skill text describes http, tcp, dns, websocket, heartbeat, postgres, mysql and redis. An http check can carry a keyword, and regions apply to http, tcp and websocket monitors.
What alert channels does OpenUptime have?
Slack, Discord, Microsoft Teams, Telegram, Lark and Feishu, ntfy, PagerDuty, webhooks and email, plus push to the iOS app. Channels attach to a monitor through channelIds; a monitor without channels notifies nobody.
Discussion
No questions or reviews yet.
Related
SkillsMonitoring and status page service with an MCP server: an agent reads check state and manages incidents.
The built-in OneUptime MCP: an agent works incidents, reads logs and traces, acknowledges alerts and sets up monitors.
mcp-uptime-kuma: MCP server for Uptime Kuma 2
mcp-uptime-kuma
An MCP server for agents: read Uptime Kuma 2 monitors and checks, create or edit monitors and maintenance windows
The cronstable job scheduler exposes its jobs, run history and schedule debugging to an agent through MCP.
A single-container web dashboard for monitoring and controlling a fleet of 1C MCP servers: status, indexing progress, VRAM and license checks
A skill set for website performance and scalability, currently holding ooda-loop: observe, orient, decide, act.
README in short
The repository holds a Hono API for a Cloudflare Worker, an Astro and React web app, Postgres storage and deployment guides for Cloudflare and Docker. The hosted version at openuptime.app adds plans, billing and a few features, SSL monitoring among them. The MCP Registry lists the server as app.openuptime/mcp.
README badge
Original SKILL.md
--- name: openuptime description: Manages uptime monitoring through the OpenUptime MCP server. Creates and tunes monitors (http, tcp, dns, heartbeat, postgres, mysql, redis), runs checks, handles incidents and posts status updates, and builds public status pages. Use when the user asks to monitor a site, API or service, check what is down, open or resolve an incident, pause monitors for maintenance, or set up a status page with OpenUptime. --- # OpenUptime Drive an OpenUptime workspace through its MCP tools (server `openuptime`, tools named `openuptime:<tool>`). ## Before acting 1. If the `openuptime` tools are not available, tell the user to connect the server and stop: `claude mcp add --transport http openuptime https://openuptime.app/api/mcp` (self-hosted: use your own `/api/mcp` URL). Other clients: https://openuptime.app/docs/mcp 2. If the user may have several workspaces or projects, call `openuptime:list_workspaces` once and pass `workspace` / `project` ids to every later call. Omitting them uses the default. 3. Call `openuptime:list_monitors` before creating anything, to avoid duplicates. ## Add a monitor Call `openuptime:create_monitor` with `name`, `type` and `target` (URL, `host:port` or hostname). Omitted fields take defaults: 60 s interval, expect HTTP 200, region `auto`. - Website or API: `type: "http"`, `target: "https://api.example.com/health"`. Add `keyword` (with `keywordMode: "contains"` or `"absent"`) when a 200 alone is not proof of health. - WebSocket endpoint: `type: "websocket"`, `target: "wss://example.com/socket"`. The handshake alone is the check; add `wsMessage` to send a text message that must get a reply, and `keyword` to check that reply. Credentials go in `headers`, never in `wsMessage`. - Cron job or backup: `type: "heartbeat"`; `graceSec` is how late a ping may be. Give the user the ping URL from `openuptime:get_monitor`. - Database or cache: `postgres`, `mysql` or `redis` with a connection target the user provided. Never invent credentials. - Alerts: attach `channelIds` from `openuptime:list_channels`. A monitor without channels does not notify anyone, so say so. - Several regions: names come from `openuptime:list_regions`; only http, tcp and websocket monitors use them. Verify with `openuptime:run_check` and report the real result, not an assumption.