A Model Context Protocol (MCP) server for Uptime Kuma version 2.
- ✓Open-source license (MIT)
- ✓Recently active
- ✓Clear description
claude mcp add mcp-uptime-kuma -- npx -y -p{
"mcpServers": {
"mcp-uptime-kuma": {
"command": "npx",
"args": ["-y", "-p"],
"env": {
"UPTIME_KUMA_URL": "<uptime_kuma_url>",
"UPTIME_KUMA_USERNAME": "<uptime_kuma_username>",
"UPTIME_KUMA_PASSWORD": "<uptime_kuma_password>",
"UPTIME_KUMA_2FA_TOKEN": "<uptime_kuma_2fa_token>",
"UPTIME_KUMA_JWT_TOKEN": "<uptime_kuma_jwt_token>"
}
}
}
}UPTIME_KUMA_URLUPTIME_KUMA_USERNAMEUPTIME_KUMA_PASSWORDUPTIME_KUMA_2FA_TOKENUPTIME_KUMA_JWT_TOKENResumen de MCP Servers
# mcp-uptime-kuma
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [Uptime Kuma](https://github.com/louislam/uptime-kuma) *version 2*. Supports stdio and streamable HTTP transports.









## Features
- **Real-time Monitoring**: Access monitors, heartbeats, uptime, and responsiveness metrics via Socket.IO with instant status change notifications.
- **Context-Friendly**: Returns only essential data by default to avoid overwhelming LLM context windows.
- **Multiple Transports**: Supports stdio (local) and streamable HTTP (remote) transports.
## Quick Start
### Using npx (stdio transport)
Add this to your MCP client configuration:
```json
{
"mcpServers": {
"uptime-kuma": {
"command": "npx",
"args": ["-y", "@davidfuchs/mcp-uptime-kuma"],
"env": {
"UPTIME_KUMA_URL": "http://your-uptime-kuma-instance:3001",
"UPTIME_KUMA_USERNAME": "your_username",
"UPTIME_KUMA_PASSWORD": "your_password"
}
}
}
}
```
### Using Docker (streamable HTTP transport)
**Option 1: Docker Run**
```bash
docker run -d \
--name mcp-uptime-kuma \
-p 3000:3000 \
-e UPTIME_KUMA_URL=http://your-uptime-kuma-instance:3001 \
-e UPTIME_KUMA_USERNAME=your_username \
-e UPTIME_KUMA_PASSWORD=your_password \
davidfuchs/mcp-uptime-kuma:latest \
-t streamable-http
```
**Option 2: Docker Compose**
A [docker-compose.yml](docker-compose.yml) file is provided in the repository. Download it, configure your environment variables, and run:
```bash
docker compose up -d
```
Then configure your MCP client to connect to the endpoint:
```json
{
"mcpServers": {
"uptime-kuma": {
"url": "http://localhost:3000/mcp"
}
}
}
```
See [Authentication Methods](#authentication-methods) for JWT token and anonymous authentication options.
## Example Conversation

*Conversation in [LibreChat](https://github.com/danny-avila/LibreChat) where the `mcp-uptime-kuma` server is providing real-time information from Uptime Kuma.*
## Available Tools
### Monitors
| Tool | Purpose |
|------|---------|
| `getMonitorSummary` | Get a quick overview of all monitors with their current status. Supports filtering. |
| `listMonitors` | Get the full list of all monitors with configurations. Supports filtering. |
| `listMonitorTypes` | Get all available monitor types supported by Uptime Kuma. |
| `getMonitor` | Get detailed configuration for a specific monitor by ID. |
| `createMonitor` | Create a new monitor (requires name and type at minimum). |
| `updateMonitor` | Update an existing monitor's configuration. |
| `deleteMonitor` | Permanently delete a monitor and all its heartbeat history. |
| `pauseMonitor` | Pause a monitor to stop performing checks. |
| `resumeMonitor` | Resume a paused monitor to restart checks. |
### Heartbeats
| Tool | Purpose |
|------|---------|
| `listHeartbeats` | Get status check history for all monitors. |
| `getHeartbeats` | Get status check history for a specific monitor. |
### Notifications
| Tool | Purpose |
|------|---------|
| `listNotifications` | List all configured notification channels (Slack, Discord, email, webhooks, etc.). |
| `addNotification` | Create a new notification channel. |
| `updateNotification` | Update an existing notification channel. |
| `deleteNotification` | Permanently delete a notification channel. |
### Tags
| Tool | Purpose |
|------|---------|
| `listTags` | List all tags defined in Uptime Kuma. |
| `addTag` | Create a new tag that can be assigned to monitors. |
| `deleteTag` | Permanently delete a tag (removes it from all monitors). |
### Maintenance
| Tool | Purpose |
|------|---------|
| `getMaintenanceWindows` | List all scheduled maintenance windows. |
| `createMaintenance` | Schedule a new maintenance window. |
### Status Pages & Settings
| Tool | Purpose |
|------|---------|
| `listStatusPages` | List all configured status pages. |
| `getSettings` | Get Uptime Kuma server settings. |
### Filtering
`getMonitorSummary` and `listMonitors` support filtering by:
- **keywords**: Space-separated keywords for fuzzy matching against monitor pathNames
- **type**: Monitor type(s), comma-separated (e.g., `"http"`, `"http,ping,dns"`)
- **active**: Filter by active (`true`) or inactive (`false`) monitors
- **maintenance**: Filter by maintenance mode status
- **tags**: Tag name and optional value, comma-separated (e.g., `"production"`, `"env=staging"`)
- **status** (getMonitorSummary only): Heartbeat status (`"0"`=DOWN, `"1"`=UP, `"2"`=PENDING, `"3"`=MAINTENANCE)
**Examples:**
```javascript
getMonitorSummary({ status: "0" }) // All DOWN monitors
getMonitorSummary({ type: "http", maintenance: true }) // HTTP monitors in maintenance
listMonitors({ tags: "production,region=us-east" }) // Monitors with specific tags
```
## Authentication Methods
### Anonymous Authentication
If authentication is disabled on your Uptime Kuma instance, only `UPTIME_KUMA_URL` is required.
### Username/Password Authentication
```
UPTIME_KUMA_URL=http://your-instance:3001
UPTIME_KUMA_USERNAME=your_username
UPTIME_KUMA_PASSWORD=your_password
UPTIME_KUMA_2FA_TOKEN=123456 # Optional, only if 2FA is enabled
```
### JWT Token Authentication
Recommended for 2FA users. Takes precedence over username/password if both are provided.
```
UPTIME_KUMA_URL=http://your-instance:3001
UPTIME_KUMA_JWT_TOKEN=your_jwt_token
```
#### Obtaining Your JWT Token
**Using the CLI utility (recommended):**
```bash
npx -p @davidfuchs/mcp-uptime-kuma mcp-uptime-kuma-get-jwt http://localhost:3001 admin mypassword
```
**Using Docker:**
```bash
docker run --rm davidfuchs/mcp-uptime-kuma:latest get-jwt http://host.docker.internal:3001 admin mypassword
```
**From browser:** Open Developer Tools → Storage/Application → Local Storage → find `token` key.
## Credential Redaction
Read tools return `***` in place of secrets rather than the values themselves.
Uptime Kuma's socket API returns configuration verbatim — its web UI masks credentials at
render time. That is fine for a browser and not fine for an MCP server, whose output lands
in an LLM's context window and is then persisted in conversation transcripts, logs and
synced history. Asking "what am I monitoring?" should not write a live SMTP password or a
third-party API key into storage you may not control.
What is withheld:
| Tool | Withheld |
|---|---|
| `listNotifications` | everything in `config` except `type`/`name`/`isDefault`/`applyExisting`. The withheld field names are listed in `redactedConfigKeys` |
| `listMonitors`, `getMonitor` | `pushToken`, `basic_auth_pass`, `bearer_token`, `oauth_client_secret`, `radiusPassword`, `radiusSecret`, `mqttPassword`, `rabbitmqPassword`, `tlsCert`/`tlsKey`/`tlsCa`, `databaseConnectionString`, `headers`, `grpcMetadata`, plus anything matching `/pass|secret|token|apikey|auth(oriz\|entic)|bearer|credential|private.?key|jwt/i` |
| `listDockerHosts` | `user:password@` inside a `dockerDaemon` URL |
| `getHeartbeats`, `listHeartbeats` | any column Uptime Kuma returns beyond the declared heartbeat fields (e.g. `response`, which can carry a service's response body) is dropped, and `user:password@` inside a URL quoted in the status message is scrubbed |
| `getSettings` | any secret-named field Uptime Kuma returns (e.g. `steamAPIKey`) |
| `getMonitorSummary` | nothing — it returns no credentials to begin with |
`hostname`, `port`, `url`, `authMethod`, `oauth_token_url`, `oauth_scopes` and usernames stay
visible: hiding useful configuration is how a redaction feature gets switched off.
To get the real values, either pass `includeSecrets: true` on the call:
```
listNotifications({ includeSecrets: true })
```
or enable it globally:
```
UPTIME_KUMA_INCLUDE_SECRETS=true
```
The per-call parameter wins over the environment variable in both directions, so a
permissive deployment can still ask one call to redact.
**Writing `***` back is safe.** `updateMonitor` and `updateNotification` restore the stored
value when a field arrives as the marker, and report which fields they preserved. This
matters most for `updateNotification`: Uptime Kuma replaces the notification row rather than
merging it, so without this a read-edit-write round trip would replace a working password
with three asterisks. If there is no stored value to restore, the call fails rather than
writing a credential that looks set and cannot work.
`updateDockerHost` gets the same protection for the credentials embedded in a `dockerDaemon`
URL: a `http://***:***@host:2375` read back from `listDockerHosts` has its userinfo restored
from the stored URL rather than persisted verbatim, so repointing a host without re-enterinLo que la gente pregunta sobre mcp-uptime-kuma
¿Qué es DavidFuchs/mcp-uptime-kuma?
+
DavidFuchs/mcp-uptime-kuma es mcp servers para el ecosistema de Claude AI. A Model Context Protocol (MCP) server for Uptime Kuma version 2. Tiene 38 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala mcp-uptime-kuma?
+
Puedes instalar mcp-uptime-kuma clonando el repositorio (https://github.com/DavidFuchs/mcp-uptime-kuma) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar DavidFuchs/mcp-uptime-kuma?
+
Nuestro agente de seguridad ha analizado DavidFuchs/mcp-uptime-kuma y le ha asignado un Trust Score de 74/100 (tier: OK). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene DavidFuchs/mcp-uptime-kuma?
+
DavidFuchs/mcp-uptime-kuma es mantenido por DavidFuchs. La última actividad registrada en GitHub es de today, con 7 issues abiertos.
¿Hay alternativas a mcp-uptime-kuma?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega mcp-uptime-kuma en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/davidfuchs-mcp-uptime-kuma)<a href="https://claudewave.com/repo/davidfuchs-mcp-uptime-kuma"><img src="https://claudewave.com/api/badge/davidfuchs-mcp-uptime-kuma" alt="Featured on ClaudeWave: DavidFuchs/mcp-uptime-kuma" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!