Uptime Kuma MCP server
A Model Context Protocol (MCP) server for Uptime Kuma version 2.
49 stars357 downloads/wk
Reviews
Write oneNobody has reviewed Uptime Kuma yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Uptime Kuma tools (31, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
addDockerHostCreates a new docker daemon connection. For a unix socket use dockerType="socket" and dockerDaemon="/var/run/docker.sock". For a TCP proxy (e.g. tecnativa/docker-socket-proxy) use dockerType="tcp" and dockerDaemon="http://host:2375". Consider calling testDockerHost first to verify reachability.
addNotificationCreates a new notification channel. The configuration fields depend on the notification type (e.g., for slack: webhookURL; for ntfy: ntfyTopic, ntfyServerUrl; for discord: discordWebhookUrl).
addTagCreates a new tag that can be assigned to monitors.
createMaintenanceSchedules a new maintenance window. During maintenance, affected monitors are suppressed and show MAINTENANCE status instead of DOWN.
createMonitorCreates a new monitor in Uptime Kuma. Requires at minimum a name and type. Use listMonitorTypes to see supported types. For HTTP monitors include url; for TCP/port monitors include hostname and port; for json-query include url, jsonPath, jsonPathOperator and expectedValue. A push monitor is given a generated push token (Uptime Kuma only generates one in its own web UI) and the resulting ping URL i
createStatusPageCreates a new (empty) status page with the given title and slug. After creating, call updateStatusPage to set the description, theme, groups, and monitors. Slug must be lowercase letters, digits, and dashes only.
deleteDockerHostPermanently deletes a docker daemon connection. Any monitors referencing it will have their docker_host cleared by Uptime Kuma (the monitors themselves are not deleted).
deleteMonitorPermanently deletes a monitor and all its heartbeat history. This action cannot be undone.
deleteNotificationPermanently deletes a notification channel. Monitors that used this channel will no longer send alerts through it.
deleteStatusPagePermanently deletes a status page by slug. The status page URL will no longer be accessible.
deleteTagPermanently deletes a tag. It will be removed from all monitors that use it. Use listTags to find the tag ID.
getHeartbeatsRetrieves historical heartbeat data for a specific monitor (response times, status changes over time). Use this for analyzing patterns or history for one monitor. Beats are returned NEWEST-FIRST. By default returns only the most recent heartbeat; set maxHeartbeats (up to 100) for historical analysis. Keep maxHeartbeats ≤10 unless user requests more. Set important:true for the status CHANGES only (
getMaintenanceWindowsReturns all scheduled maintenance windows defined in Uptime Kuma.
getMonitorRetrieves configuration details for a specific monitor by ID (URL, check interval, notification settings, etc.). Use this when you need to examine or modify settings for a specific monitor. For current status, use getMonitorSummary instead. By default returns only common fields plus runtime data (uptime, avgPing); set includeTypeSpecificFields to true to include type-specific fields (e.g., url for
getMonitorSummarygetSettingsRetrieves the current Uptime Kuma server settings including timezone, authentication status, primary base URL, and other configuration options.
getStatusPageReturns the full configuration of a status page by slug, including the ordered list of groups, the monitors inside each group, and active incidents. Only works for published status pages (fetches the public `/api/status-page/{slug}` endpoint).
listDockerHostsReturns all docker daemon connections configured in Uptime Kuma. These are referenced by docker container monitors via docker_host.
listHeartbeatsRetrieves historical heartbeat data for ALL monitors (response times, status changes over time). Use this for analyzing patterns across multiple monitors or correlating events. Beats are returned NEWEST-FIRST. By default returns only the most recent heartbeat per monitor; set maxHeartbeats (up to 100) for historical analysis. Keep maxHeartbeats ≤5 unless user requests more. Credentials embedded in
listMonitorTypesReturns a list of all available monitor types supported by Uptime Kuma. Use this to discover valid values for type filters in other tools.
listMonitorsRetrieves configuration details for all monitors (URLs, check intervals, notification settings, etc.). Use this when you need to examine or modify monitor settings. For status checks ("how is everything doing?", "what's down?"), use getMonitorSummary instead. By default returns only common fields plus runtime data (uptime, avgPing); set includeTypeSpecificFields to true to include type-specific fi
listNotificationswrite actionReturns all configured notification channels (Slack, ntfy, Discord, email, webhooks, etc.). To attach a channel to a monitor you only need its id — the credentials in `config` are withheld by default and the names of the withheld fields are listed in `redactedConfigKeys`.
listStatusPagesReturns all configured status pages with their slug, title, visibility, and custom domain settings.
listTagsReturns all tags defined in Uptime Kuma (name, color, and ID).
pauseMonitorPauses a monitor, stopping it from performing checks. The monitor will remain in the system but will not send notifications or collect data until resumed.
resumeMonitorResumes a paused monitor, restarting all checks. Use this to re-enable monitoring after pausing.
testDockerHostTests connectivity to a docker daemon without persisting it. On success the message includes the number of containers. Use this before addDockerHost to avoid saving a broken configuration.
updateDockerHostUpdates an existing docker daemon connection. Use listDockerHosts to find the docker host ID. Only the fields you pass are changed — the others are preserved.
updateMonitorUpdates an existing monitor configuration. You must include the monitorID. Only the fields you provide will be changed (the server merges your changes with the existing config). Use getMonitor first to get the current config.
updateNotificationUpdates an existing notification channel. Use listNotifications to find the notification ID.
updateStatusPageUpdates an existing status page. Pass the full config (title, description, theme, published, etc.) and the full publicGroupList — both are replaced wholesale. Each group has a name, weight, and monitorList of [{id}]. Use getStatusPage first to read current state before modifying.
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
- Code scan47 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 6 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Install directly
Runs npx -y @davidfuchs/mcp-uptime-kuma on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mcp-uptime-kuma -- npx -y @davidfuchs/mcp-uptime-kuma
Uptime Kuma: common questions
- Is Uptime Kuma MCP server safe?
- Mostly: it is graded B (83/100). Read the Uptime Kuma safety report
- How do I install Uptime Kuma?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Uptime Kuma need an API key?
- Yes. The registry entry asks for
UPTIME_KUMA_PASSWORD,UPTIME_KUMA_2FA_TOKEN,UPTIME_KUMA_JWT_TOKEN,UPTIME_KUMA_HEADERS. - Is Uptime Kuma maintained?
- The last commit was 6 days ago (2026-09-13). The latest release is v0.11.18.