Skip to main content
ClaudeWave

A Model Context Protocol (MCP) server for Uptime Kuma version 2.

MCP ServersRegistry oficial38 estrellas17 forksTypeScriptMITActualizado today
ClaudeWave Trust Score
74/100
· OK
Passed
  • Open-source license (MIT)
  • Recently active
  • Clear description
Last scanned: 6/11/2026
Install in Claude Code / Claude Desktop
Method: NPX · -p
Claude Code CLI
claude mcp add mcp-uptime-kuma -- npx -y -p
claude_desktop_config.json (Claude Desktop)
{
  "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>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
UPTIME_KUMA_URLUPTIME_KUMA_USERNAMEUPTIME_KUMA_PASSWORDUPTIME_KUMA_2FA_TOKENUPTIME_KUMA_JWT_TOKEN
Casos de uso

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

![GitHub Stars](https://img.shields.io/github/stars/DavidFuchs/mcp-uptime-kuma?style=flat)
![GitHub Last Commit](https://img.shields.io/github/last-commit/DavidFuchs/mcp-uptime-kuma?style=flat)
![GitHub Repo Size](https://img.shields.io/github/repo-size/DavidFuchs/mcp-uptime-kuma?style=flat)

![GitHub Actions - npmjs](https://img.shields.io/github/actions/workflow/status/DavidFuchs/mcp-uptime-kuma/publish-npm.yml?style=flat&label=npmjs%20build&link=https://www.npmjs.com/package/@davidfuchs/mcp-uptime-kuma)
![npmjs Version](https://img.shields.io/npm/v/%40davidfuchs%2Fmcp-uptime-kuma?style=flat&label=npmjs%20package%20version)
![npmjs Downloads](https://img.shields.io/npm/d18m/%40davidfuchs%2Fmcp-uptime-kuma?style=flat&label=npmjs%20downloads&color=blue)

![GitHub Actions - DockerHub](https://img.shields.io/github/actions/workflow/status/DavidFuchs/mcp-uptime-kuma/publish-docker.yml?style=flat&label=docker%20build&link=https://www.npmjs.com/package/@davidfuchs/mcp-uptime-kuma)
![Docker Version](https://img.shields.io/docker/v/davidfuchs/mcp-uptime-kuma?style=flat&label=docker%20image%20version)
![Docker Pulls](https://img.shields.io/docker/pulls/davidfuchs/mcp-uptime-kuma?style=flat)

## 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

![MCP server answering questions about Uptime Kuma monitors](.github/images/screenshot-1.png)
*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-enterin

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

Featured on ClaudeWave: DavidFuchs/mcp-uptime-kuma
[![Featured on ClaudeWave](https://claudewave.com/api/badge/davidfuchs-mcp-uptime-kuma)](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

Alternativas a mcp-uptime-kuma