Skip to content
uptimerobotPublic

About

This repo is 🟒 UptimeRobot's single source of truth for ✨ AI native integrations.

Topics

Resources

Contributing

Stars

24 stars

Watchers

3 watching

Forks

Repository files navigation

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 the conventions skill.
  • 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.mdc rule and every skills/*/SKILL.md entry should be listed.
  • Settings β†’ Tools & MCPs β€” uptimerobot should 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.

About

This repo is 🟒 UptimeRobot's single source of truth for ✨ AI native integrations.

Topics

Resources

Contributing

Stars

24 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages