A Model Context Protocol server for managing UptimeRobot monitors, alert contacts, and maintenance windows via the UptimeRobot API v2.
- 16 tools covering the full UptimeRobot API v2
- Manage monitors (HTTP, Keyword, Ping, Port, Heartbeat)
- Manage alert contacts (email, SMS, Slack, webhooks, and more)
- Schedule and manage maintenance windows
- Retrieve account details and monitor statistics
- Credentials loaded from environment variables only - no secrets in code
- Python 3.12+
- A UptimeRobot account
- Your UptimeRobot API key from the dashboard under Integrations & API → API
- uv installed
git clone https://github.com/84em/uptimerobot-mcp.git
cd uptimerobot-mcp
uv syncSet your UptimeRobot API key as an environment variable:
export UPTIMEROBOT_API_KEY=u123456-yourApiKeyHereOr create a .env file in your working directory (see .env.example):
UPTIMEROBOT_API_KEY=u123456-yourApiKeyHereYour API key is available in the UptimeRobot dashboard under Integrations & API → API in the left sidebar. A read-only API key is also available there if you only need monitoring access.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or
%APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"uptimerobot": {
"command": "uv",
"args": ["run", "--directory", "/path/to/uptimerobot-mcp", "uptimerobot-mcp"],
"env": {
"UPTIMEROBOT_API_KEY": "u123456-yourApiKeyHere"
}
}
}
}Add to your Cursor MCP settings:
{
"mcpServers": {
"uptimerobot": {
"command": "uv",
"args": ["run", "--directory", "/path/to/uptimerobot-mcp", "uptimerobot-mcp"],
"env": {
"UPTIMEROBOT_API_KEY": "u123456-yourApiKeyHere"
}
}
}
}Add to your Zed settings:
{
"context_servers": {
"uptimerobot": {
"command": {
"path": "uv",
"args": ["run", "--directory", "/path/to/uptimerobot-mcp", "uptimerobot-mcp"],
"env": {
"UPTIMEROBOT_API_KEY": "u123456-yourApiKeyHere"
}
}
}
}
}| Tool | Description |
|---|---|
get_monitors |
List all monitors with optional status/search filtering |
get_monitor |
Get a single monitor by ID with logs and response times |
create_monitor |
Create a new monitor (HTTP, Keyword, Ping, Port, Heartbeat) |
edit_monitor |
Update monitor properties, or pause/resume a monitor |
delete_monitor |
Permanently delete a monitor |
reset_monitor |
Clear all historical statistics for a monitor |
get_monitor_logs |
Get up/down event logs for a monitor |
| Tool | Description |
|---|---|
get_account_details |
Get account info, monitor counts, and plan limits |
| Tool | Description |
|---|---|
get_alert_contacts |
List all alert contacts |
create_alert_contact |
Add an alert contact (email, SMS, Slack, webhook, etc.) |
edit_alert_contact |
Update an existing alert contact |
delete_alert_contact |
Remove an alert contact |
| Tool | Description |
|---|---|
get_mwindows |
List all maintenance windows |
create_mwindow |
Schedule a one-time or recurring maintenance window |
edit_mwindow |
Update a maintenance window's schedule or duration |
delete_mwindow |
Remove a maintenance window |
| Value | Type |
|---|---|
1 |
HTTP(S) |
2 |
Keyword |
3 |
Ping |
4 |
Port |
5 |
Heartbeat |
| Value | Status |
|---|---|
0 |
Paused |
1 |
Not checked yet |
2 |
Up |
8 |
Seems down |
9 |
Down |
git clone https://github.com/84em/uptimerobot-mcp.git
cd uptimerobot-mcp
uv sync --group dev
cp .env.example .env
# Add your UPTIMEROBOT_API_KEY to .env
# Lint
uv run ruff check .
# Format
uv run ruff format .
# Type check
uv run mypy src/
# Run tests
uv run pytest