@davidfuchs/mcp-uptime-kuma 0.3.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +209 -143
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -20
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +7 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +99 -28
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +44 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +64 -48
- package/dist/types.js.map +1 -1
- package/dist/uptime-kuma-client.d.ts +43 -3
- package/dist/uptime-kuma-client.d.ts.map +1 -1
- package/dist/uptime-kuma-client.js +144 -10
- package/dist/uptime-kuma-client.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,104 +1,116 @@
|
|
|
1
1
|
# mcp-uptime-kuma
|
|
2
2
|
|
|
3
|
-
A Model Context Protocol (MCP) server for [Uptime Kuma](https://github.com/louislam/uptime-kuma) *version 2
|
|
3
|
+
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.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
|
|
9
|
+

|
|
10
|
+

|
|
11
|
+

|
|
12
|
+
|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
4
16
|
|
|
5
17
|
## Features
|
|
6
18
|
|
|
7
|
-
- **Uptime Kuma Integration**: Real-time access to monitors and
|
|
19
|
+
- **Uptime Kuma Integration**: Real-time access to monitors, heartbeats, uptime, and responsiveness metrics from Uptime Kuma via a Socket.IO connection. This MCP server is immediately notified of status changes in Uptime Kuma and caches this information for fast retrieval.
|
|
8
20
|
- **Context-Friendly**: Carefully controls the amount of data returned to avoid overwhelming the LLM context window. Tools default to returning only essential fields and recent heartbeats, with options to request more when needed.
|
|
9
21
|
- **Multiple Transports**: Supports both stdio (for local integration) and streamable HTTP (for remote access).
|
|
10
|
-
- **MCP SDK**: Uses the official `@modelcontextprotocol/sdk` package
|
|
11
|
-
- **Comprehensive Tools**: Retrieve monitor configurations and status data (heartbeats)
|
|
12
22
|
|
|
13
23
|
## Available Tools
|
|
14
24
|
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
| Tool | Purpose |
|
|
26
|
+
|------|---------|
|
|
27
|
+
| `getMonitorSummary` | Get a quick overview of all monitors with their current status |
|
|
28
|
+
| `listMonitors` | Get the full list of all monitors with configurations |
|
|
29
|
+
| `getMonitor` | Get detailed configuration for a specific monitor by ID |
|
|
30
|
+
| `pauseMonitor` | Pause a monitor to stop performing checks |
|
|
31
|
+
| `resumeMonitor` | Resume a paused monitor to restart checks |
|
|
32
|
+
| `listHeartbeats` | Get status check history for all monitors |
|
|
33
|
+
| `getHeartbeats` | Get status check history for a specific monitor |
|
|
34
|
+
| `getSettings` | Get Uptime Kuma server settings |
|
|
17
35
|
|
|
18
|
-
|
|
19
|
-
- `keywords` (string, optional): Space-separated keywords to filter monitors by pathName (case-insensitive). All keywords must match for a monitor to be included.
|
|
20
|
-
- **Output**: Array of monitor summaries with:
|
|
21
|
-
- Monitor ID, name, pathName
|
|
22
|
-
- Active and maintenance state
|
|
23
|
-
- Most recent heartbeat status (0=DOWN, 1=UP, 2=PENDING, 3=MAINTENANCE)
|
|
24
|
-
- Status message from the most recent heartbeat
|
|
25
|
-
- Total count of matching monitors
|
|
36
|
+
## Example Conversation
|
|
26
37
|
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+

|
|
39
|
+
*Conversation in [LibreChat](https://github.com/danny-avila/LibreChat) where the `mcp-uptime-kuma` server is providing real-time information from Uptime Kuma.*
|
|
29
40
|
|
|
30
|
-
|
|
31
|
-
- `monitorID` (number): The ID of the monitor to retrieve
|
|
32
|
-
- `includeAdditionalFields` (boolean, optional): Include all additional fields from Uptime Kuma (default: false)
|
|
33
|
-
- **Output**: Monitor configuration object with details like URL, type, check interval, notification settings, etc.
|
|
41
|
+
## Quick Start
|
|
34
42
|
|
|
35
|
-
|
|
36
|
-
Retrieves the full list of all monitors the user has access to.
|
|
43
|
+
Most folks will want to configure mcp-uptime-kuma using stdio as follows.
|
|
37
44
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"mcpServers": {
|
|
48
|
+
"uptime-kuma": {
|
|
49
|
+
"command": "npx",
|
|
50
|
+
"args": ["-y", "@davidfuchs/mcp-uptime-kuma"],
|
|
51
|
+
"env": {
|
|
52
|
+
"UPTIME_KUMA_URL": "http://your-uptime-kuma-instance:3001",
|
|
53
|
+
"UPTIME_KUMA_USERNAME": "your_username",
|
|
54
|
+
"UPTIME_KUMA_PASSWORD": "your_password",
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
41
60
|
|
|
42
|
-
|
|
43
|
-
Retrieves heartbeats (status checks) for a specific monitor.
|
|
61
|
+
If authentication is disabled on your Uptime Kuma instance, you can remove the username/password environment variables. See the [Usage Instructions](#usage-instructions) section for more details on authentication methods.
|
|
44
62
|
|
|
45
|
-
|
|
46
|
-
- `monitorID` (number): The ID of the monitor to get heartbeats for
|
|
47
|
-
- `maxHeartbeats` (number, optional): Maximum number of most recent heartbeats to return (1-100). Default: 1
|
|
48
|
-
- **Output**: Object containing:
|
|
49
|
-
- `monitorID`: The monitor ID
|
|
50
|
-
- `heartbeats`: Array of heartbeat objects with status, response time, timestamps, etc.
|
|
51
|
-
- `count`: Number of heartbeats returned
|
|
63
|
+
## Usage Instructions
|
|
52
64
|
|
|
53
|
-
###
|
|
54
|
-
Retrieves the heartbeats for all monitors.
|
|
65
|
+
### Prerequisites
|
|
55
66
|
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
- **Output**: Object containing:
|
|
59
|
-
- `heartbeats`: Map of monitor IDs to their heartbeat arrays
|
|
60
|
-
- `monitorCount`: Number of monitors
|
|
61
|
-
- `totalHeartbeatCount`: Total number of heartbeats across all monitors
|
|
67
|
+
- Node.js (v18 or higher)
|
|
68
|
+
- An Uptime Kuma instance (version 2)
|
|
62
69
|
|
|
63
|
-
###
|
|
64
|
-
Retrieves the current Uptime Kuma server settings.
|
|
70
|
+
### Authentication Methods
|
|
65
71
|
|
|
66
|
-
|
|
67
|
-
- **Output**: Settings object containing:
|
|
68
|
-
- `serverTimezone`: Server timezone setting
|
|
69
|
-
- `checkUpdate`: Whether to check for updates
|
|
70
|
-
- `searchEngineIndex`: Search engine indexing setting
|
|
71
|
-
- `entryPage`: Entry page configuration
|
|
72
|
-
- `dnsCache`: DNS cache setting
|
|
73
|
-
- `keepDataPeriodDays`: Data retention period in days
|
|
74
|
-
- `tlsExpiryNotifyDays`: TLS expiry notification days
|
|
75
|
-
- `trustProxy`: Trust proxy setting
|
|
76
|
-
- `nscd`: NSCD setting
|
|
77
|
-
- `disableAuth`: Authentication disabled status
|
|
78
|
-
- `primaryBaseURL`: Primary base URL (optional)
|
|
72
|
+
This MCP server supports three authentication methods for connecting to your Uptime Kuma instance.
|
|
79
73
|
|
|
80
|
-
|
|
74
|
+
> **A note about 2FA:** If you're using 2FA, it's recommended that you go straight for the JWT authentication approach and avoid username/password authentication, as your 2FA token will need to be refreshed every time you initialize the MCP server.
|
|
75
|
+
>
|
|
76
|
+
> Even with the JWT method, you may run into issues with token expiry, but as of this writing the JWT returned by Uptime Kuma does not appear to expire.
|
|
81
77
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- To check if something is **up or down**, use the heartbeat tools, not the monitor tools
|
|
85
|
-
- Use **getMonitorSummary** for a quick overview of all monitors and their current status
|
|
86
|
-
- By default, monitor tools return only essential fields. Set `includeAdditionalFields=true` to get all available data
|
|
87
|
-
- By default, heartbeat tools return only the most recent heartbeat. Use `maxHeartbeats` to retrieve more historical data
|
|
78
|
+
#### 1. Anonymous Authentication
|
|
79
|
+
If your Uptime Kuma instance has authentication disabled, you can connect without providing any credentials. Only the `UPTIME_KUMA_URL` environment variable is required.
|
|
88
80
|
|
|
89
|
-
|
|
81
|
+
- **Required Variables:**
|
|
82
|
+
- `UPTIME_KUMA_URL`: The URL of your Uptime Kuma instance
|
|
90
83
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- Environment variables for configuration (see Configuration section)
|
|
84
|
+
#### 2. Username/Password Authentication
|
|
85
|
+
Standard authentication using your Uptime Kuma credentials. This method uses the `UPTIME_KUMA_USERNAME` and `UPTIME_KUMA_PASSWORD` environment variables.
|
|
94
86
|
|
|
95
|
-
|
|
87
|
+
- **Required Variables:**
|
|
88
|
+
- `UPTIME_KUMA_URL`: The URL of your Uptime Kuma instance
|
|
89
|
+
- `UPTIME_KUMA_USERNAME`: Your Uptime Kuma username
|
|
90
|
+
- `UPTIME_KUMA_PASSWORD`: Your Uptime Kuma password
|
|
91
|
+
|
|
92
|
+
- **Optional Variable:**
|
|
93
|
+
- `UPTIME_KUMA_2FA_TOKEN`: Your 2FA token (only required if two-factor authentication is enabled on your account)
|
|
96
94
|
|
|
97
|
-
|
|
95
|
+
#### 3. JWT Token Authentication
|
|
96
|
+
Token-based authentication using a JWT token from Uptime Kuma. This method uses the `UPTIME_KUMA_JWT_TOKEN` environment variable and takes precedence over username/password if both are provided.
|
|
98
97
|
|
|
99
|
-
|
|
98
|
+
- **Required Variables:**
|
|
99
|
+
- `UPTIME_KUMA_URL`: The URL of your Uptime Kuma instance
|
|
100
|
+
- `UPTIME_KUMA_JWT_TOKEN`: Your JWT token (see instructions below for how to obtain it)
|
|
100
101
|
|
|
101
|
-
|
|
102
|
+
##### How to Find Your JWT Token:
|
|
103
|
+
|
|
104
|
+
1. Log into your Uptime Kuma instance in your web browser
|
|
105
|
+
2. Open your browser's Developer Tools (F12 or right-click → Inspect)
|
|
106
|
+
3. Navigate to the **Storage** tab (Firefox) or **Application** tab (Chrome/Edge)
|
|
107
|
+
4. Under **Local Storage** or **Session Storage**, find your Uptime Kuma domain
|
|
108
|
+
5. Look for a key named `token` - the value is your JWT token (it should start with 'ey...')
|
|
109
|
+
6. Copy the token value and use it as `UPTIME_KUMA_JWT_TOKEN`
|
|
110
|
+
|
|
111
|
+
### Setting up mcp-uptime-kuma using the stdio transport
|
|
112
|
+
|
|
113
|
+
For many MCP clients, you can configure the server as follows:
|
|
102
114
|
|
|
103
115
|
**Option 1: Username/Password Authentication**
|
|
104
116
|
```json
|
|
@@ -110,7 +122,7 @@ For Claude Code, VS Code, or other MCP clients, you can configure the server as
|
|
|
110
122
|
"env": {
|
|
111
123
|
"UPTIME_KUMA_URL": "http://your-uptime-kuma-instance:3001",
|
|
112
124
|
"UPTIME_KUMA_USERNAME": "your_username",
|
|
113
|
-
"UPTIME_KUMA_PASSWORD": "your_password"
|
|
125
|
+
"UPTIME_KUMA_PASSWORD": "your_password",
|
|
114
126
|
}
|
|
115
127
|
}
|
|
116
128
|
}
|
|
@@ -133,11 +145,11 @@ For Claude Code, VS Code, or other MCP clients, you can configure the server as
|
|
|
133
145
|
}
|
|
134
146
|
```
|
|
135
147
|
|
|
136
|
-
See the [
|
|
148
|
+
See the [How to Find Your JWT Token](#how-to-find-your-jwt-token) section for instructions on how to obtain it.
|
|
137
149
|
|
|
138
150
|
If you're using LibreChat (librechat.yaml), you can configure it like this:
|
|
139
151
|
|
|
140
|
-
**
|
|
152
|
+
**Option 1: Username/Password Authentication (LibreChat):**
|
|
141
153
|
```yaml
|
|
142
154
|
mcpServers:
|
|
143
155
|
uptime-kuma:
|
|
@@ -145,107 +157,156 @@ mcpServers:
|
|
|
145
157
|
args: ["-y", "@davidfuchs/mcp-uptime-kuma"]
|
|
146
158
|
customUserVars:
|
|
147
159
|
UPTIME_KUMA_URL:
|
|
148
|
-
title: "Uptime Kuma URL"
|
|
149
|
-
description: "The URL to log into Uptime Kuma."
|
|
150
|
-
UPTIME_KUMA_USERNAME:
|
|
151
|
-
title: "Uptime Kuma Username"
|
|
152
|
-
description: "The username to log into Uptime Kuma."
|
|
153
|
-
UPTIME_KUMA_PASSWORD:
|
|
154
|
-
title: "Uptime Kuma Password"
|
|
155
|
-
description: "The password to log into Uptime Kuma."
|
|
156
|
-
env:
|
|
157
|
-
UPTIME_KUMA_URL: "{{UPTIME_KUMA_URL}}"
|
|
158
|
-
UPTIME_KUMA_USERNAME: "{{UPTIME_KUMA_USERNAME}}"
|
|
159
|
-
UPTIME_KUMA_PASSWORD: "{{UPTIME_KUMA_PASSWORD}}"
|
|
160
|
+
title: "Uptime Kuma URL"
|
|
161
|
+
description: "The URL to log into Uptime Kuma."
|
|
162
|
+
UPTIME_KUMA_USERNAME:
|
|
163
|
+
title: "Uptime Kuma Username"
|
|
164
|
+
description: "The username to log into Uptime Kuma."
|
|
165
|
+
UPTIME_KUMA_PASSWORD:
|
|
166
|
+
title: "Uptime Kuma Password"
|
|
167
|
+
description: "The password to log into Uptime Kuma."
|
|
168
|
+
env:
|
|
169
|
+
UPTIME_KUMA_URL: "{{UPTIME_KUMA_URL}}"
|
|
170
|
+
UPTIME_KUMA_USERNAME: "{{UPTIME_KUMA_USERNAME}}"
|
|
171
|
+
UPTIME_KUMA_PASSWORD: "{{UPTIME_KUMA_PASSWORD}}"
|
|
160
172
|
serverInstructions: true
|
|
161
|
-
startup: false
|
|
173
|
+
startup: false
|
|
162
174
|
```
|
|
163
175
|
|
|
164
|
-
**
|
|
176
|
+
**Option 2: JWT Token Authentication (LibreChat)**
|
|
165
177
|
```yaml
|
|
166
178
|
mcpServers:
|
|
167
|
-
uptime-kuma:
|
|
168
|
-
command: npx
|
|
169
|
-
args: ["-y", "@davidfuchs/mcp-uptime-kuma"]
|
|
170
|
-
customUserVars:
|
|
171
|
-
UPTIME_KUMA_URL:
|
|
172
|
-
title: "Uptime Kuma URL"
|
|
173
|
-
description: "The URL to log into Uptime Kuma."
|
|
174
|
-
UPTIME_KUMA_JWT_TOKEN:
|
|
175
|
-
title: "Uptime Kuma JWT Token"
|
|
176
|
-
description: "JWT token for Uptime Kuma authentication."
|
|
179
|
+
uptime-kuma:
|
|
180
|
+
command: npx
|
|
181
|
+
args: ["-y", "@davidfuchs/mcp-uptime-kuma"]
|
|
182
|
+
customUserVars:
|
|
183
|
+
UPTIME_KUMA_URL:
|
|
184
|
+
title: "Uptime Kuma URL"
|
|
185
|
+
description: "The URL to log into Uptime Kuma."
|
|
186
|
+
UPTIME_KUMA_JWT_TOKEN:
|
|
187
|
+
title: "Uptime Kuma JWT Token"
|
|
188
|
+
description: "JWT token for Uptime Kuma authentication."
|
|
177
189
|
env:
|
|
178
|
-
UPTIME_KUMA_URL: "{{UPTIME_KUMA_URL}}"
|
|
179
|
-
UPTIME_KUMA_JWT_TOKEN: "{{UPTIME_KUMA_JWT_TOKEN}}"
|
|
190
|
+
UPTIME_KUMA_URL: "{{UPTIME_KUMA_URL}}"
|
|
191
|
+
UPTIME_KUMA_JWT_TOKEN: "{{UPTIME_KUMA_JWT_TOKEN}}"
|
|
180
192
|
serverInstructions: true
|
|
181
|
-
startup: false
|
|
193
|
+
startup: false
|
|
182
194
|
```
|
|
183
195
|
|
|
184
|
-
See the [
|
|
196
|
+
See the [How to Find Your JWT Token](#how-to-find-your-jwt-token) section for instructions on how to obtain it.
|
|
185
197
|
|
|
186
198
|
If you're the only one using the LibreChat server, you can remove `customUserVars` and set the environment variables directly in the `env` section. You can also remove `startup: false` - that's only in there because without it, LibreChat tries to start the mcp-uptime-kuma MCP server immediately on startup, which fails because the user-provided credentials aren't available yet.
|
|
187
199
|
|
|
188
|
-
###
|
|
200
|
+
### Setting up mcp-uptime-kuma using the streamable HTTP transport
|
|
189
201
|
|
|
190
202
|
The recommended way to run the MCP server using streamable HTTP is to run it as a Docker container.
|
|
191
203
|
|
|
192
|
-
A docker-compose file is provided in the Github repository.
|
|
204
|
+
A [docker-compose.yml](docker-compose.yml) file is provided in the Github repository. Download it and update the included environment variables as needed for your Uptime Kuma deployment, and run:
|
|
193
205
|
|
|
194
206
|
`docker compose up -d`
|
|
195
207
|
|
|
196
|
-
The MCP endpoint will be available on your Docker host at port 3000 (configurable via `PORT` environment variable).
|
|
208
|
+
The MCP endpoint will be available on your Docker host at port 3000 (configurable via `PORT` environment variable). If you'd prefer to run it directly on your host machine, see the Development Usage section below.
|
|
197
209
|
|
|
198
|
-
|
|
210
|
+
## Detailed Tool Descriptions
|
|
199
211
|
|
|
200
|
-
|
|
212
|
+
### getMonitorSummary
|
|
213
|
+
Retrieves a summarized list of all monitors with essential information and their current status.
|
|
201
214
|
|
|
202
|
-
|
|
215
|
+
- **Input**:
|
|
216
|
+
- `keywords` (string, optional): Space-separated keywords to filter monitors by pathName (case-insensitive). All keywords must match for a monitor to be included.
|
|
217
|
+
- **Output**: Array of monitor summaries with:
|
|
218
|
+
- Monitor ID, name, pathName
|
|
219
|
+
- Active and maintenance state
|
|
220
|
+
- Most recent heartbeat status (0=DOWN, 1=UP, 2=PENDING, 3=MAINTENANCE)
|
|
221
|
+
- Status message from the most recent heartbeat
|
|
222
|
+
- Uptime percentages for different periods (24h, 720h, 1y)
|
|
223
|
+
- Average ping in milliseconds
|
|
224
|
+
- Total count of matching monitors
|
|
203
225
|
|
|
204
|
-
###
|
|
226
|
+
### getMonitor
|
|
227
|
+
Retrieves detailed information about a specific monitor by its ID.
|
|
205
228
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
229
|
+
- **Input**:
|
|
230
|
+
- `monitorID` (number): The ID of the monitor to retrieve
|
|
231
|
+
- `includeAdditionalFields` (boolean, optional): Include all additional fields from Uptime Kuma (default: false)
|
|
232
|
+
- **Output**: Monitor configuration object with details like URL, type, check interval, notification settings, etc.
|
|
209
233
|
|
|
210
|
-
###
|
|
234
|
+
### listMonitors
|
|
235
|
+
Retrieves the full list of all monitors the user has access to.
|
|
236
|
+
|
|
237
|
+
- **Input**:
|
|
238
|
+
- `includeAdditionalFields` (boolean, optional): Include all additional fields from Uptime Kuma (default: false)
|
|
239
|
+
- **Output**: Array of monitor objects with count
|
|
240
|
+
|
|
241
|
+
### getHeartbeats
|
|
242
|
+
Retrieves heartbeats (status checks) for a specific monitor.
|
|
243
|
+
|
|
244
|
+
- **Input**:
|
|
245
|
+
- `monitorID` (number): The ID of the monitor to get heartbeats for
|
|
246
|
+
- `maxHeartbeats` (number, optional): Maximum number of most recent heartbeats to return (1-100). Default: 1
|
|
247
|
+
- **Output**: Object containing:
|
|
248
|
+
- `monitorID`: The monitor ID
|
|
249
|
+
- `heartbeats`: Array of heartbeat objects with status, response time, timestamps, etc.
|
|
250
|
+
- `count`: Number of heartbeats returned
|
|
211
251
|
|
|
212
|
-
|
|
252
|
+
### listHeartbeats
|
|
253
|
+
Retrieves the heartbeats for all monitors.
|
|
213
254
|
|
|
214
|
-
|
|
255
|
+
- **Input**:
|
|
256
|
+
- `maxHeartbeats` (number, optional): Maximum number of most recent heartbeats per monitor (1-100). Default: 1
|
|
257
|
+
- **Output**: Object containing:
|
|
258
|
+
- `heartbeats`: Map of monitor IDs to their heartbeat arrays
|
|
259
|
+
- `monitorCount`: Number of monitors
|
|
260
|
+
- `totalHeartbeatCount`: Total number of heartbeats across all monitors
|
|
261
|
+
|
|
262
|
+
### getSettings
|
|
263
|
+
Retrieves the current Uptime Kuma server settings.
|
|
264
|
+
|
|
265
|
+
- **Input**: None
|
|
266
|
+
- **Output**: Settings object containing:
|
|
267
|
+
- `serverTimezone`: Server timezone setting
|
|
268
|
+
- `checkUpdate`: Whether to check for updates
|
|
269
|
+
- `searchEngineIndex`: Search engine indexing setting
|
|
270
|
+
- `entryPage`: Entry page configuration
|
|
271
|
+
- `dnsCache`: DNS cache setting
|
|
272
|
+
- `keepDataPeriodDays`: Data retention period in days
|
|
273
|
+
- `tlsExpiryNotifyDays`: TLS expiry notification days
|
|
274
|
+
- `trustProxy`: Trust proxy setting
|
|
275
|
+
- `nscd`: NSCD setting
|
|
276
|
+
- `disableAuth`: Authentication disabled status
|
|
277
|
+
- `primaryBaseURL`: Primary base URL (optional)
|
|
215
278
|
|
|
216
|
-
|
|
217
|
-
|
|
279
|
+
### pauseMonitor
|
|
280
|
+
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.
|
|
218
281
|
|
|
219
|
-
|
|
282
|
+
- **Input**:
|
|
283
|
+
- `monitorID` (number): The ID of the monitor to pause
|
|
284
|
+
- **Output**: Object containing:
|
|
285
|
+
- `ok`: Boolean indicating success
|
|
286
|
+
- `msg`: Optional status message
|
|
220
287
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
UPTIME_KUMA_PASSWORD=your_password
|
|
224
|
-
UPTIME_KUMA_2FA_TOKEN=your_2fa_token # Optional, only if 2FA is enabled
|
|
288
|
+
### resumeMonitor
|
|
289
|
+
Resumes a paused monitor, restarting its checks and notifications.
|
|
225
290
|
|
|
226
|
-
|
|
227
|
-
|
|
291
|
+
- **Input**:
|
|
292
|
+
- `monitorID` (number): The ID of the monitor to resume
|
|
293
|
+
- **Output**: Object containing:
|
|
294
|
+
- `ok`: Boolean indicating success
|
|
295
|
+
- `msg`: Optional status message
|
|
228
296
|
|
|
229
|
-
|
|
230
|
-
PORT=3000 # Only for HTTP transport (default: 3000)
|
|
231
|
-
```
|
|
297
|
+
## Developing
|
|
232
298
|
|
|
233
|
-
|
|
234
|
-
- **Username/Password**: Standard authentication using your Uptime Kuma credentials. If 2FA is enabled on your account, also provide `UPTIME_KUMA_2FA_TOKEN`.
|
|
235
|
-
- **JWT Token**: If you have a JWT token from Uptime Kuma, you can use `UPTIME_KUMA_JWT_TOKEN` instead of username/password. This takes precedence if both are provided.
|
|
299
|
+
To run locally, clone the repository and follow these steps:
|
|
236
300
|
|
|
237
|
-
|
|
301
|
+
### Install dependencies
|
|
238
302
|
|
|
239
|
-
|
|
303
|
+
```bash
|
|
304
|
+
npm install
|
|
305
|
+
```
|
|
240
306
|
|
|
241
|
-
|
|
242
|
-
2. Open your browser's Developer Tools (F12 or right-click → Inspect)
|
|
243
|
-
3. Navigate to the **Storage** tab (Firefox) or **Application** tab (Chrome/Edge)
|
|
244
|
-
4. Under **Local Storage** or **Session Storage**, find your Uptime Kuma domain
|
|
245
|
-
5. Look for a key named `token` - the value is your JWT token (it should start with 'ey...')
|
|
246
|
-
6. Copy the token value and use it as `UPTIME_KUMA_JWT_TOKEN`
|
|
307
|
+
### Create the environment configuration
|
|
247
308
|
|
|
248
|
-
|
|
309
|
+
Copy [.env.example](.env.example) to `.env` and configure the required environment variables for your Uptime Kuma instance (URL and authentication method).
|
|
249
310
|
|
|
250
311
|
## Building
|
|
251
312
|
|
|
@@ -323,13 +384,18 @@ mcp-uptime-kuma/
|
|
|
323
384
|
│ ├── index.ts # Main entry point with transport selection
|
|
324
385
|
│ ├── server.ts # Core MCP server configuration with tools
|
|
325
386
|
│ ├── uptime-kuma-client.ts # WebSocket client for Uptime Kuma API
|
|
326
|
-
│
|
|
327
|
-
|
|
387
|
+
│ ├── types.ts # TypeScript type definitions
|
|
388
|
+
│ └── version.ts # Runtime version information
|
|
389
|
+
├── .github/ # GitHub workflows and configurations
|
|
390
|
+
├── .vscode/ # VS Code workspace settings
|
|
328
391
|
├── docker-compose.yml # Docker Compose configuration
|
|
329
392
|
├── Dockerfile # Docker image definition
|
|
393
|
+
├── .dockerignore # Docker ignore file
|
|
394
|
+
├── .env.example # Example environment configuration
|
|
395
|
+
├── .gitignore # Git ignore file
|
|
330
396
|
├── package.json # Project dependencies and scripts
|
|
397
|
+
├── package-lock.json # Locked dependency versions
|
|
331
398
|
├── tsconfig.json # TypeScript configuration
|
|
332
|
-
├── .env # Environment configuration (create this)
|
|
333
399
|
├── LICENSE # License file
|
|
334
400
|
└── README.md # This file
|
|
335
401
|
```
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AA4KvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,13 +3,14 @@ import 'dotenv/config';
|
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
5
5
|
import express from 'express';
|
|
6
|
+
import rateLimit from 'express-rate-limit';
|
|
6
7
|
import { createServer } from './server.js';
|
|
7
8
|
/**
|
|
8
9
|
* Main entry point for @davidfuchs/mcp-uptime-kuma
|
|
9
10
|
* Supports both stdio (default) and streamable-http transports via CLI flags
|
|
10
11
|
*/
|
|
11
12
|
// Validate required environment variables
|
|
12
|
-
function validateEnvironment(
|
|
13
|
+
function validateEnvironment() {
|
|
13
14
|
const url = process.env.UPTIME_KUMA_URL;
|
|
14
15
|
const username = process.env.UPTIME_KUMA_USERNAME;
|
|
15
16
|
const password = process.env.UPTIME_KUMA_PASSWORD;
|
|
@@ -19,13 +20,12 @@ function validateEnvironment(readWriteEnabled) {
|
|
|
19
20
|
console.error('Error: UPTIME_KUMA_URL environment variable is required');
|
|
20
21
|
process.exit(1);
|
|
21
22
|
}
|
|
22
|
-
return { url, username, password, token, jwtToken
|
|
23
|
+
return { url, username, password, token, jwtToken };
|
|
23
24
|
}
|
|
24
25
|
// Parse command-line arguments
|
|
25
26
|
function parseArgs() {
|
|
26
27
|
const args = process.argv.slice(2);
|
|
27
28
|
let transport = 'stdio';
|
|
28
|
-
let readWriteEnabled = false;
|
|
29
29
|
for (let i = 0; i < args.length; i++) {
|
|
30
30
|
if (args[i] === '-t' || args[i] === '--transport') {
|
|
31
31
|
const value = args[i + 1];
|
|
@@ -38,40 +38,35 @@ function parseArgs() {
|
|
|
38
38
|
process.exit(1);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
else if (args[i] === '--read-write') {
|
|
42
|
-
readWriteEnabled = true;
|
|
43
|
-
}
|
|
44
41
|
else if (args[i] === '-h' || args[i] === '--help') {
|
|
45
42
|
console.log(`Usage: mcp-uptime-kuma [options]
|
|
46
43
|
|
|
47
44
|
Options:
|
|
48
45
|
-t, --transport <type> Transport type: 'stdio' (default) or 'streamable-http'
|
|
49
|
-
--read-write Enable read-write operations (default: read-only)
|
|
50
46
|
-h, --help Show this help message
|
|
51
47
|
|
|
52
48
|
Examples:
|
|
53
|
-
mcp-uptime-kuma # Run with stdio transport
|
|
54
|
-
mcp-uptime-kuma
|
|
55
|
-
mcp-uptime-kuma -t
|
|
56
|
-
mcp-uptime-kuma -t streamable-http # Run with streamable HTTP transport (read-only, port 3000)
|
|
57
|
-
mcp-uptime-kuma -t streamable-http --read-write # Run HTTP with read-write enabled
|
|
49
|
+
mcp-uptime-kuma # Run with stdio transport
|
|
50
|
+
mcp-uptime-kuma -t stdio # Run with stdio transport
|
|
51
|
+
mcp-uptime-kuma -t streamable-http # Run with streamable HTTP transport (port 3000)
|
|
58
52
|
PORT=8080 mcp-uptime-kuma -t streamable-http # Run HTTP on custom port
|
|
59
53
|
`);
|
|
60
54
|
process.exit(0);
|
|
61
55
|
}
|
|
62
56
|
}
|
|
63
|
-
return { transport
|
|
57
|
+
return { transport };
|
|
64
58
|
}
|
|
65
59
|
// Run with the stdio transport
|
|
66
60
|
async function runStdio(config) {
|
|
67
61
|
try {
|
|
68
|
-
const server = await createServer(config);
|
|
62
|
+
const { server, authenticateClient } = await createServer(config);
|
|
69
63
|
const transport = new StdioServerTransport();
|
|
70
64
|
await server.connect(transport);
|
|
71
|
-
|
|
65
|
+
// Now authenticate after transport is connected so we can log properly
|
|
66
|
+
await authenticateClient();
|
|
72
67
|
}
|
|
73
68
|
catch (error) {
|
|
74
|
-
|
|
69
|
+
process.stderr.write(`Fatal error in stdio transport: ${error}\n`);
|
|
75
70
|
process.exit(1);
|
|
76
71
|
}
|
|
77
72
|
}
|
|
@@ -79,8 +74,21 @@ async function runStdio(config) {
|
|
|
79
74
|
async function runHttp(config) {
|
|
80
75
|
const app = express();
|
|
81
76
|
app.use(express.json());
|
|
77
|
+
// Rate limiting configuration
|
|
78
|
+
const limiter = rateLimit({
|
|
79
|
+
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
80
|
+
max: 100, // Limit each IP to 100 requests per windowMs
|
|
81
|
+
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
|
|
82
|
+
legacyHeaders: false, // Disable the `X-RateLimit-*` headers
|
|
83
|
+
message: 'Too many requests from this IP, please try again later.',
|
|
84
|
+
});
|
|
85
|
+
// Apply rate limiter to all routes
|
|
86
|
+
app.use(limiter);
|
|
82
87
|
// Create the MCP server once (reused across requests)
|
|
83
|
-
const server = await createServer(config);
|
|
88
|
+
const { server, authenticateClient } = await createServer(config);
|
|
89
|
+
// For HTTP transport, we need to connect once to authenticate
|
|
90
|
+
// Create a temporary transport just for authentication
|
|
91
|
+
let authenticated = false;
|
|
84
92
|
// Handle MCP requests
|
|
85
93
|
app.post('/mcp', async (req, res) => {
|
|
86
94
|
try {
|
|
@@ -93,6 +101,11 @@ async function runHttp(config) {
|
|
|
93
101
|
transport.close();
|
|
94
102
|
});
|
|
95
103
|
await server.connect(transport);
|
|
104
|
+
// Authenticate on first request
|
|
105
|
+
if (!authenticated) {
|
|
106
|
+
await authenticateClient();
|
|
107
|
+
authenticated = true;
|
|
108
|
+
}
|
|
96
109
|
await transport.handleRequest(req, res, req.body);
|
|
97
110
|
}
|
|
98
111
|
catch (error) {
|
|
@@ -118,14 +131,14 @@ async function runHttp(config) {
|
|
|
118
131
|
console.log(`mcp-uptime-kuma server running on http://localhost:${port}/mcp`);
|
|
119
132
|
console.log(`Health check available at http://localhost:${port}/health`);
|
|
120
133
|
}).on('error', (error) => {
|
|
121
|
-
|
|
134
|
+
process.stderr.write(`Server error: ${error}\n`);
|
|
122
135
|
process.exit(1);
|
|
123
136
|
});
|
|
124
137
|
}
|
|
125
138
|
// Main entry point
|
|
126
139
|
async function main() {
|
|
127
|
-
const { transport
|
|
128
|
-
const config = validateEnvironment(
|
|
140
|
+
const { transport } = parseArgs();
|
|
141
|
+
const config = validateEnvironment();
|
|
129
142
|
if (transport === 'stdio') {
|
|
130
143
|
await runStdio(config);
|
|
131
144
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;;GAGG;AAEH,0CAA0C;AAC1C,SAAS,mBAAmB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { UptimeKumaClient } from './uptime-kuma-client.js';
|
|
2
3
|
import type { UptimeKumaConfig } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Creates and configures the MCP server with tools, resources, and prompts
|
|
6
|
+
* Note: Authentication must be done separately after connecting the transport
|
|
5
7
|
*/
|
|
6
|
-
export declare function createServer(config: UptimeKumaConfig): Promise<
|
|
8
|
+
export declare function createServer(config: UptimeKumaConfig): Promise<{
|
|
9
|
+
server: McpServer;
|
|
10
|
+
client: UptimeKumaClient;
|
|
11
|
+
authenticateClient: () => Promise<void>;
|
|
12
|
+
}>;
|
|
7
13
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAmb9J"}
|