Skip to main content
Glama
DavidFuchs

mcp-uptime-kuma

by DavidFuchs

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
UPTIME_KUMA_URLNoURL of the Uptime Kuma instance
UPTIME_KUMA_PASSWORDNoPassword for authentication
UPTIME_KUMA_USERNAMENoUsername for authentication
UPTIME_KUMA_2FA_TOKENNoOptional 2FA token if 2FA is enabled
UPTIME_KUMA_JWT_TOKENNoJWT token for authentication (takes precedence over username/password)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
getMonitorA

Retrieves 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 HTTP, hostname/port for TCP).

listMonitorsA

Retrieves 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 fields (e.g., url for HTTP, hostname/port for TCP). Supports filtering by keywords, type, active/maintenance status, tags, and parent group.

listMonitorTypesA

Returns a list of all available monitor types supported by Uptime Kuma. Use this to discover valid values for type filters in other tools.

getMonitorSummaryA

START HERE for status overview questions. Retrieves current status for all monitors showing UP/DOWN/PENDING/MAINTENANCE states with the most recent heartbeat message. Use this when asked "how is everything doing?", "what's down?", "what's up?", or for any general status overview. Returns essential information (ID, name, pathName, active state, maintenance state, status, message, lastBeatTime, type, tags). Supports filtering by keywords, type, active/maintenance status, tags, parent group, and current status. Check lastBeatTime before trusting the status of a push monitor — one that has stopped beating keeps reporting its last known status. lastBeatTime is UTC with no zone marker, so measure staleness against the current UTC time.

getHeartbeatsA

Retrieves 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 (Uptime Kuma's own event list) — that is history, not current state, so do not read status from it. Credentials embedded in a status message URL (user:pass@host) read "***" unless includeSecrets is set.

getSettingsA

Retrieves the current Uptime Kuma server settings including timezone, authentication status, primary base URL, and other configuration options.

listHeartbeatsA

Retrieves 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 a status message URL (user:pass@host) read "***" unless includeSecrets is set.

pauseMonitorA

Pauses a monitor, stopping it from performing checks. The monitor will remain in the system but will not send notifications or collect data until resumed.

resumeMonitorA

Resumes a paused monitor, restarting all checks. Use this to re-enable monitoring after pausing.

createMonitorA

Creates 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; for database types (mysql, postgres, mongodb, redis, sqlserver) include databaseConnectionString. A push monitor is given a generated push token (Uptime Kuma only generates one in its own web UI) and the resulting ping URL is returned. timeout defaults to 0.8 x interval seconds for polled types.

updateMonitorA

Updates 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.

deleteMonitorA

Permanently deletes a monitor and all its heartbeat history. This action cannot be undone.

listNotificationsA

Returns 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.

addNotificationA

Creates a new notification channel. The configuration fields depend on the notification type (e.g., for slack: webhookURL; for ntfy: ntfyTopic, ntfyServerUrl; for discord: discordWebhookUrl).

updateNotificationA

Updates an existing notification channel. Use listNotifications to find the notification ID.

deleteNotificationA

Permanently deletes a notification channel. Monitors that used this channel will no longer send alerts through it.

listDockerHostsA

Returns all docker daemon connections configured in Uptime Kuma. These are referenced by docker container monitors via docker_host.

addDockerHostA

Creates 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.

updateDockerHostA

Updates an existing docker daemon connection. Use listDockerHosts to find the docker host ID. Only the fields you pass are changed — the others are preserved.

deleteDockerHostA

Permanently deletes a docker daemon connection. Any monitors referencing it will have their docker_host cleared by Uptime Kuma (the monitors themselves are not deleted).

testDockerHostA

Tests 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.

listTagsA

Returns all tags defined in Uptime Kuma (name, color, and ID).

addTagA

Creates a new tag that can be assigned to monitors.

deleteTagA

Permanently deletes a tag. It will be removed from all monitors that use it. Use listTags to find the tag ID.

getMaintenanceWindowsA

Returns all maintenance windows defined in Uptime Kuma, each with monitorIDs — the monitors it suppresses. A window with an empty monitorIDs list suppresses nothing.

createMaintenanceA

Schedules a new maintenance window. During maintenance, the monitors in monitorIDs are suppressed and show MAINTENANCE status instead of DOWN. A window created without monitorIDs suppresses nothing. Use strategy "manual" for a window you switch on and off with resumeMaintenance / pauseMaintenance.

updateMaintenanceA

Updates an existing maintenance window. Only the fields you provide are changed (the server merges them with the stored window). monitorIDs replaces the full monitor list. To switch a window on or off use pauseMaintenance / resumeMaintenance.

pauseMaintenanceA

Switches a maintenance window off: it stops suppressing its monitors and its schedule stops until resumed. For a manual window this ends the maintenance.

resumeMaintenanceA

Switches a paused maintenance window back on. For a manual window this starts the maintenance immediately; a scheduled window resumes following its schedule.

deleteMaintenanceA

Permanently deletes a maintenance window. Its monitors return to normal alerting. Use getMaintenanceWindows to find the ID.

listStatusPagesA

Returns all configured status pages with their slug, title, visibility, and custom domain settings.

getStatusPageA

Returns 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).

createStatusPageA

Creates 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.

updateStatusPageA

Updates 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.

deleteStatusPageA

Permanently deletes a status page by slug. The status page URL will no longer be accessible.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 35 tools

Disambiguation5/5

Each tool targets a distinct resource and action, with clear separation between get/list/summary variants for monitors, heartbeats, status pages, and maintenance. The descriptions explicitly guide agents away from common confusions, such as using getMonitorSummary for status overviews versus listMonitors for configuration.

Naming Consistency4/5

Mostly consistent camelCase verb_noun naming across resources. Minor deviations exist (addNotification vs createMonitor, getMaintenanceWindows vs listMaintenanceWindows) but remain predictable and readable.

Tool Count3/5

35 tools is heavy and may overwhelm agents compared with the typical 3-15 range. The breadth of Uptime Kuma administration (monitors, notifications, Docker hosts, tags, maintenance, status pages) justifies many tools, but the surface is still large enough to feel borderline.

Completeness4/5

Core CRUD coverage is strong for monitors, notifications, Docker hosts, maintenance windows, and status pages. Minor gaps remain, such as updateSettings, updateTag, and a notification-test operation, but most workflows are supported.

Maintenance

ActivityActive
ResponsivenessSlow