Server data from the Official MCP Registry
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
About
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Remote endpoints: streamable-http: https://mcp.uptimerobot.com/mcp
Security Report
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Found in Source Code
Found by scanning the linked source code. This listing connects to a hosted endpoint, so none of this runs on your machine: it describes what the server software does where it is hosted.
How to Connect
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"com-uptimerobot-uptimerobot": {
"url": "https://mcp.uptimerobot.com/mcp"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
UptimeRobot for AI agents
This repo is UptimeRobot's single source of truth for AI agent integrations. It publishes:
- llms.txt and AGENTS.md — discovery and orientation for LLMs and coding agents.
- .claude-plugin, .cursor-plugin, and .codex-plugin folders — installable plugin manifests for Claude Code, Cursor, and Codex.
- skills folder — workflow skills (setup, no-account quick monitor, bulk pause, SLA reports, incident response, status pages) plus short per-tool reference pages that cover only what the MCP tool schemas don't say. See Skills.
- rules folder — Cursor rules (
.mdc). Claude Code gets the same rules from theconventionsskill. - mcp.json — Cursor-format MCP server config (dot-less filename).
- .mcp.json — Claude Code and Codex MCP server config (dot-prefixed so Claude Code auto-registers the server when the plugin loads; the Codex manifest references it explicitly, as OpenAI's plugin submission requires).
- .agents/plugins/marketplace.json — repo-scoped Codex marketplace for local install and testing; Codex auto-discovers this file when the repo is open.
- The assets folder — the marketplace logo, declared as the icon in the Cursor and Codex manifests (Claude Code's plugin manifest has no icon field; the directory listing supplies its icon at submission time).
The mcp.json and .mcp.json files both connect directly to the hosted server at https://mcp.uptimerobot.com/mcp over streamable HTTP. Nothing runs locally: the client discovers the server's OAuth endpoints and runs the browser login itself. Two filenames exist only because Cursor expects the dot-less name and Claude Code and Codex the dot-prefixed one.
The same content is mirrored under uptimerobot.com/ for crawler discovery (uptimerobot.com/llms.txt, uptimerobot.com/AGENTS.md, etc.).
Install
Claude Code
From the marketplace (once published)
UptimeRobot is being submitted to Anthropic's community plugin marketplace. Once accepted, add that marketplace once and install:
/plugin marketplace add anthropics/claude-plugins-community
/plugin install uptimerobot@claude-community
Or run /plugin, open the Discover tab, find UptimeRobot, and install it. (The community marketplace must be added first — it isn't built in. Only Anthropic's curated official marketplace shows up in /plugin with no setup.)
The MCP server auto-registers via .mcp.json as soon as the plugin loads. The first time it connects, a browser opens for you to log into UptimeRobot and authorize access (OAuth) — there's no API key to paste. Tokens are cached locally, so you only do this once.
Local clone (manual plugin install)
To run the full plugin (skills and the auto-registered MCP server) straight from a local checkout — no marketplace required — clone the repo and load it with the --plugin-dir flag:
git clone https://github.com/uptimerobot/ai.git
claude --plugin-dir ./ai
--plugin-dir <path> loads the plugin from a directory (the one containing .claude-plugin/plugin.json) for that session only. The flag is repeatable and also accepts a .zip. Use an absolute path if you launch Claude Code from elsewhere:
claude --plugin-dir /absolute/path/to/ai
On first connection a browser opens for the OAuth flow. Run /plugin to confirm the plugin is loaded and uptimerobot MCP Server shows ✓ connected.
MCP server only (scripted)
If you just want the MCP tools without the rest of the plugin (dotfiles, CI bootstrap), register the server yourself:
claude mcp add --transport http uptimerobot https://mcp.uptimerobot.com/mcp
Then run /mcp, select uptimerobot, and choose Authenticate to complete the OAuth browser flow. Run /mcp (or claude mcp list in a terminal) to confirm uptimerobot shows ✓ connected.
Cursor
From the Marketplace (once published)
Browse the Cursor Marketplace, find UptimeRobot, and click Add to Cursor. Authorize through the OAuth browser flow when the MCP server first connects — no API key needed.
Local install (for development and pre-submission testing)
Follow Cursor's plugin docs:
# Clone or symlink this repo into Cursor's local plugin folder
git clone https://github.com/uptimerobot/ai.git ~/.cursor/plugins/local/uptimerobot-ai
Launch Cursor and run Developer: Reload Window from the command palette.
Verify the plugin is discovered:
- Settings → Rules, Skills, Subagents — the
uptimerobot.mdcrule and everyskills/*/SKILL.mdentry should be listed. - Settings → Tools & MCPs —
uptimerobotshould appear with up to 60 tools (fewer for read-only or team sessions) once the MCP server connects. Complete the OAuth browser flow on first connection.
Codex
Local install (for development and pre-submission testing)
Clone the repo and open it in Codex. The repo-scoped marketplace at .agents/plugins/marketplace.json is auto-discovered, so UptimeRobot (local) will appear in the Codex plugin directory without any extra setup. Install the plugin, then complete the OAuth browser flow on first MCP connection.
If you want Codex to track the source explicitly:
codex plugin marketplace add ./
Verify the plugin is loaded: the UptimeRobot skills should be available and the uptimerobot MCP server should appear with up to 60 tools (fewer for read-only or team sessions) once connected.
Other agents / direct MCP
The server is listed in the official MCP Registry as com.uptimerobot/uptimerobot, so any registry-aware client can discover and install it without a per-client plugin submission. Metadata lives in server.json:
curl -s "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.uptimerobot/uptimerobot"
Clients without registry support can connect to the same URL directly (OAuth on first use):
{
"mcpServers": {
"uptimerobot": {
"type": "http",
"url": "https://mcp.uptimerobot.com/mcp"
}
}
}
Headless / CI (no browser)
Where the OAuth browser flow can't run, add the server to your own client config with an API key from the dashboard (Integrations & API) instead — a Read-only key unless the job needs to write. Keep the key in an environment variable, not in the file, and never commit it. This is a manual setup — the plugin itself never reads or sends an API key:
{
"mcpServers": {
"uptimerobot": {
"type": "http",
"url": "https://mcp.uptimerobot.com/mcp",
"headers": { "Authorization": "Bearer ${UPTIMEROBOT_API_KEY}" }
}
}
}
Claude Code expands ${UPTIMEROBOT_API_KEY} from the environment; other clients have their own syntax (Cursor: ${env:UPTIMEROBOT_API_KEY}).
What the plugin provides
60 tools via MCP, grouped by resource — full list in AGENTS.md; each tool's own schema and description are the reference for its parameters:
Monitors
| Tool | Purpose |
|---|---|
create-monitor | Create HTTP, KEYWORD, PING, PORT, HEARTBEAT, DNS, API, or UDP monitors |
update-monitor | Change name, URL, interval, alert contacts, tags, HTTP settings (list and map fields replace the whole value — see AGENTS.md) |
update-monitor-status | Pause or resume a monitor |
list-monitors | Paginated list filtered by name, URL, tags, group, custom field, or state |
get-monitor-details | Full config + current state for one monitor |
get-monitor-stats | Aggregated up/down/paused counts + uptime (a 0–1 fraction) |
get-response-times | Time-series response-time data with buckets |
delete-monitor | Permanently delete a monitor and its history |
Monitor groups (create/update/delete plan-gated: monitor-groups)
| Tool | Purpose |
|---|---|
create-monitor-group | Create a group and assign monitors to it |
update-monitor-group | Rename an existing group |
delete-monitor-group | Delete a group; its monitors move to another group or none |
get-monitor-group | Fetch a single group by ID |
list-monitor-groups | Paginated list of groups |
Status pages (PSPs)
| Tool | Purpose |
|---|---|
create-psp | Create a status page from monitors, groups, or tags (always created public; pause with update-psp) |
update-psp | Change name, domain, sort order, visibility, publish status, or monitors (monitor lists replace the whole list) |
get-psp | Fetch a single status page by ID |
list-psps | Paginated list of status pages |
delete-psp | Permanently delete a status page |
PSP announcements (plan-gated: psp-subscribers)
| Tool | Purpose |
|---|---|
create-psp-announcement | Post an announcement (info/maintenance/issue) to a status page |
update-psp-announcement | Edit title, content, dates, type, or publish status |
pin-psp-announcement | Pin an announcement to the top of the page |
unpin-psp-announcement | Unpin an announcement |
get-psp-announcement | Fetch a single announcement by ID |
list-psp-announcements | Paginated list of announcements for a status page |
delete-psp-announcement | Permanently delete an announcement |
Maintenance windows (plan-gated: maintenance-window)
| Tool | Purpose |
|---|---|
create-maintenance-window | Schedule a one-off or recurring window that suppresses alerts |
update-maintenance-window | Change schedule, duration, monitors, or pause/resume the window |
get-maintenance-window | Fetch a single window by ID |
list-maintenance-windows | Paginated list of windows |
delete-maintenance-window | Permanently delete a window |
Incidents
| Tool | Purpose |
|---|---|
list-incidents | Incidents across monitors, with time range, monitor, or open-only filter |
get-incident-details | Per-incident request logs and cause |
get-incident-activity-log | Incident timeline summary plus paginated entries |
get-incident-alerts | Alerts sent during an incident, with delivery summary |
Incident comments (plan-gated: incident-comments)
| Tool | Purpose |
|---|---|
create-incident-comment | Add a comment to an incident |
update-incident-comment | Edit an existing comment |
list-incident-comments | Paginated list of comments on an incident |
delete-incident-comment | Permanently delete a comment |
Third-party services
| Tool | Purpose |
|---|---|
search-third-party-providers | Search the provider catalog by provider or component name |
get-third-party-provider | Fetch one provider and its component tree by numeric ID |
list-third-party-services | Paginated list of the third-party services the account tracks |
get-third-party-service | Full state of one tracked service by monitor ID |
list-third-party-service-incidents | Paginated provider incidents for tracked services, newest first |
get-third-party-service-incident | One provider incident by monitor ID and incident ID, with its updates |
get-third-party-service-incident-activity-log | Notifications the account was sent about one provider incident |
create-third-party-service | Start tracking a provider, optionally limiting components and alerts |
update-third-party-service | Change tracked components, notification sensitivity, maintenance alerts |
delete-third-party-service | Permanently stop tracking a service |
Alert contacts (personal)
| Tool | Purpose |
|---|---|
create-alert-contact | Create a personal email contact |
update-alert-contact | Rename, pause/activate, or change notification events |
get-alert-contact | Fetch a single personal contact by ID |
list-alert-contacts | Paginated list of email, SMS, voice, and push contacts |
delete-alert-contact | Permanently delete a personal contact |
Integrations & tags
| Tool | Purpose |
|---|---|
list-integrations | Slack, webhook, PagerDuty, etc. integrations (also lists personal contacts) |
delete-integration | Permanently delete an integration (check type first — personal contacts (email, SMS, voice, push) are deleted with delete-alert-contact) |
list-tags | Paginated list of tags on the account |
delete-tag | Delete a tag and remove it from every monitor |
Account & storm protection
| Tool | Purpose |
|---|---|
get-user | Session account, team, limits, and write permission |
get-storm-protection-settings | Read account-wide alert grouping settings |
update-storm-protection-settings | Change alert grouping (plan-gated: notification-grouping) |
Alert contact IDs for assignedAlertContacts come from list-alert-contacts (personal) and list-integrations (which also returns the account's personal contacts — dedupe by id, and tell them apart by type); each entry needs alertContactId, threshold, and recurrence. All delete-* tools are permanent — call get-user first to confirm which account the session acts on.
No account needed
The quick-monitor-setup skill creates a free HTTPS monitor from just someone's email, no account, API key, or OAuth: the agent calls an unauthenticated proof-of-work API and the owner confirms by clicking a link in an activation email. Guide: https://uptimerobot.com/quick-monitor-setup/.
Skills
The tools' own schemas cover parameters, so the skills focus on multi-step workflows and on behaviour the schemas don't spell out.
Workflows
| Skill | Use it when |
|---|---|
setup | Connecting the MCP server, or the UptimeRobot tools aren't showing up |
quick-monitor-setup | Someone has no UptimeRobot account and wants a monitor from just an email |
conventions | Always: discovery before writes, get-user before deletes, pagination, no secrets in replies — and error handling and write verification via errors |
bulk-pause | Pausing and resuming many monitors around a deploy |
sla-report / monitor-health-summary | Uptime/SLA reports and account health summaries |
incident-response | Investigating a downtime, commenting on it, confirming recovery |
status-pages | Creating a status page without exposing it early, and posting announcements |
Reference pages — short notes on non-obvious behaviour, verified against the live server: create-http-monitor, create-keyword-monitor, create-ping-monitor, create-port-monitor, create-heartbeat-monitor, create-dns-monitor, create-api-monitor, create-udp-monitor, update-monitor, manage-monitors, manage-monitor-groups, maintenance-windows, list-integrations, stats, incidents, errors.
Plan requirements
Plan names change over time — read the active plan from get-user (activeSubscription.plan, e.g. Scale) instead of assuming a fixed list. Monitor-type availability, interval minimums, and monitor limits depend on the active plan — the MCP server enforces these and returns a plain-text error. Tool calls are rate-limited too (10 per minute on the free plan). See skills/errors/SKILL.md.
Troubleshooting
Tools not showing up in Claude / Cursor
The MCP handshake sometimes completes after the client captures its tool list at session start, so the tools appear absent even though the server is connected. Fix in Claude Code: fully quit (close the terminal, not just /exit) and relaunch; run claude mcp list first to confirm uptimerobot shows ✓ Connected. Fix in Cursor: reload the window or restart Cursor, and check Settings → Tools & MCPs.
Authentication problems
| Symptom | Fix |
|---|---|
| OAuth browser didn't open | Run /mcp, select uptimerobot, choose Authenticate, and open the URL it shows manually if the browser still doesn't launch |
Tools return unauthorized or an invalid / expired token error | Run /mcp, select uptimerobot, and choose Clear authentication, then Authenticate again |
Write tools return requires roles or Write operations not permitted | Re-authenticate via /mcp with an account that has write permission. In a team account, delete-monitor, delete-tag and update-storm-protection-settings are admin-only |
Headless / CI session (API-key header) returns Invalid API key or Write operations not permitted | /mcp re-authentication won't help — replace the key in the environment variable your config reads (a Main key if the job writes) |
Tool errors
Tool errors arrive as plain text whose wording varies by tool. What each message means and how to recover is in skills/errors/SKILL.md.
Contributing
This repo is generated / curated. File issues at https://github.com/uptimerobot/ai/issues. For MCP server bugs, use https://uptimerobot.com/contact.
Privacy & Terms
License
MIT. See LICENSE.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
