@davidfuchs/mcp-uptime-kuma 0.6.4 → 0.9.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.
@@ -1,6 +1,6 @@
1
1
  import { Socket } from 'socket.io-client';
2
2
  import type { LoggingLevel } from '@modelcontextprotocol/sdk/types.js';
3
- import type { MonitorBaseWithExtendedData, MonitorWithExtendedData, ApiResponse, LoginResponse, MonitorList, MonitorSummary, Heartbeat, GetSettingsResponse } from './types/index.js';
3
+ import type { MonitorBaseWithExtendedData, MonitorWithExtendedData, ApiResponse, LoginResponse, MonitorList, MonitorSummary, Heartbeat, GetSettingsResponse, Notification, Maintenance, StatusPage, DockerHost } from './types/index.js';
4
4
  /**
5
5
  * Uptime Kuma Socket.io API Client
6
6
  */
@@ -11,8 +11,14 @@ export declare class UptimeKumaClient {
11
11
  private heartbeatListCache;
12
12
  private uptimeCache;
13
13
  private avgPingCache;
14
+ private notificationListCache;
15
+ private tagListCache;
16
+ private maintenanceListCache;
17
+ private statusPageListCache;
18
+ private dockerHostListCache;
14
19
  private server?;
15
20
  private shouldLog;
21
+ private loginCredentials;
16
22
  constructor(url: string, server?: {
17
23
  sendLoggingMessage: (params: {
18
24
  level: LoggingLevel;
@@ -27,6 +33,14 @@ export declare class UptimeKumaClient {
27
33
  * Connect to the Uptime Kuma server
28
34
  */
29
35
  connect(): Promise<void>;
36
+ /**
37
+ * Re-authenticate after a reconnection to refresh all cached data.
38
+ * When the server restarts or the connection drops, Socket.IO reconnects
39
+ * the transport but the server no longer considers the client authenticated.
40
+ * Without re-emitting login, the server won't send monitorList or heartbeat
41
+ * events, leaving the cache permanently stale.
42
+ */
43
+ private reauthenticate;
30
44
  /**
31
45
  * Disconnect from the Uptime Kuma server
32
46
  */
@@ -131,6 +145,201 @@ export declare class UptimeKumaClient {
131
145
  tags?: string;
132
146
  status?: string;
133
147
  }): MonitorSummary[];
148
+ private setupNotificationListListeners;
149
+ private setupTagListListeners;
150
+ private setupMaintenanceListListeners;
151
+ private setupStatusPageListListeners;
152
+ private setupDockerHostListListeners;
153
+ /**
154
+ * Create a new monitor. If `tags` are supplied, they are applied after
155
+ * creation using the separate `addMonitorTag` socket event — the `add`
156
+ * socket handler does not process tags.
157
+ *
158
+ * @param monitorData - Monitor configuration (type-specific fields should be included)
159
+ * @returns Promise resolving to the API response with the new monitorID
160
+ */
161
+ createMonitor(monitorData: Record<string, unknown>): Promise<ApiResponse & {
162
+ monitorID?: number;
163
+ }>;
164
+ /**
165
+ * Update an existing monitor. If `tags` are supplied, they are reconciled
166
+ * against the monitor's current tag set using `addMonitorTag` /
167
+ * `deleteMonitorTag` — the `editMonitor` socket handler does not process
168
+ * tags. Tags whose name is not yet in the catalog are auto-created via
169
+ * `addTag` before binding.
170
+ *
171
+ * @param monitorData - Monitor configuration including the id field
172
+ * @returns Promise resolving to the API response
173
+ */
174
+ updateMonitor(monitorData: Record<string, unknown>): Promise<ApiResponse & {
175
+ monitorID?: number;
176
+ }>;
177
+ /**
178
+ * Fetch the tag catalog synchronously from the server. Uptime Kuma does
179
+ * not push `tagList` events — it only responds to the `getTags` request —
180
+ * so relying on the push-populated cache returns stale (often empty) data.
181
+ * This method also refreshes `tagListCache` so subsequent cache reads work.
182
+ */
183
+ private fetchTagList;
184
+ /**
185
+ * Bind a tag to a monitor (socket: `addMonitorTag`).
186
+ */
187
+ private addMonitorTag;
188
+ /**
189
+ * Unbind a tag from a monitor (socket: `deleteMonitorTag`).
190
+ */
191
+ private deleteMonitorTag;
192
+ /**
193
+ * Reconcile a monitor's tags against the desired list. Auto-creates any
194
+ * tag name that isn't yet in the catalog. Tag identity is `(name, value)`.
195
+ */
196
+ private reconcileMonitorTags;
197
+ /**
198
+ * Delete a monitor
199
+ *
200
+ * @param monitorID - The ID of the monitor to delete
201
+ * @returns Promise resolving to the API response
202
+ */
203
+ deleteMonitor(monitorID: number): Promise<ApiResponse>;
204
+ /**
205
+ * Get the cached notification list
206
+ */
207
+ getNotificationList(): Notification[];
208
+ /**
209
+ * Add or update a notification channel
210
+ *
211
+ * @param notification - Notification configuration
212
+ * @param notificationID - If provided, updates existing; otherwise creates new
213
+ * @returns Promise resolving to the API response with the notification id
214
+ */
215
+ addNotification(notification: Record<string, unknown>, notificationID?: number): Promise<ApiResponse & {
216
+ id?: number;
217
+ }>;
218
+ /**
219
+ * Delete a notification channel
220
+ *
221
+ * @param notificationID - The ID of the notification to delete
222
+ * @returns Promise resolving to the API response
223
+ */
224
+ deleteNotification(notificationID: number): Promise<ApiResponse>;
225
+ /**
226
+ * Get the cached docker host list
227
+ */
228
+ getDockerHostList(): DockerHost[];
229
+ /**
230
+ * Add or update a docker host
231
+ *
232
+ * @param dockerHost - Docker host configuration (name, dockerType, dockerDaemon)
233
+ * @param dockerHostID - If provided, updates existing; otherwise creates new
234
+ * @returns Promise resolving to the API response with the docker host id
235
+ */
236
+ addDockerHost(dockerHost: Record<string, unknown>, dockerHostID?: number): Promise<ApiResponse & {
237
+ id?: number;
238
+ }>;
239
+ /**
240
+ * Delete a docker host. Any monitors referencing it will have their docker_host
241
+ * field cleared by Uptime Kuma.
242
+ *
243
+ * @param dockerHostID - The ID of the docker host to delete
244
+ * @returns Promise resolving to the API response
245
+ */
246
+ deleteDockerHost(dockerHostID: number): Promise<ApiResponse>;
247
+ /**
248
+ * Test connectivity to a docker host without persisting it. Returns a friendly
249
+ * message containing the number of containers when reachable.
250
+ *
251
+ * @param dockerHost - Docker host configuration to test (name, dockerType, dockerDaemon)
252
+ * @returns Promise resolving to the API response
253
+ */
254
+ testDockerHost(dockerHost: Record<string, unknown>): Promise<ApiResponse>;
255
+ /**
256
+ * Get the cached tag list
257
+ */
258
+ getTagList(): Array<{
259
+ id: number;
260
+ name: string;
261
+ color: string;
262
+ }>;
263
+ /**
264
+ * Create a new tag
265
+ *
266
+ * @param name - Tag name
267
+ * @param color - Tag color (hex string, e.g. '#ff0000')
268
+ * @returns Promise resolving to the created tag object
269
+ */
270
+ addTag(name: string, color: string): Promise<ApiResponse & {
271
+ tag?: {
272
+ id: number;
273
+ name: string;
274
+ color: string;
275
+ };
276
+ }>;
277
+ /**
278
+ * Delete a tag
279
+ *
280
+ * @param tagID - The ID of the tag to delete
281
+ * @returns Promise resolving to the API response
282
+ */
283
+ deleteTag(tagID: number): Promise<ApiResponse>;
284
+ /**
285
+ * Get the cached maintenance window list
286
+ */
287
+ getMaintenanceList(): Maintenance[];
288
+ /**
289
+ * Create a new maintenance window
290
+ *
291
+ * @param maintenanceData - Maintenance window configuration
292
+ * @returns Promise resolving to the API response with the maintenance ID
293
+ */
294
+ createMaintenance(maintenanceData: Record<string, unknown>): Promise<ApiResponse & {
295
+ maintenanceID?: number;
296
+ }>;
297
+ /**
298
+ * Get the cached status page list
299
+ */
300
+ getStatusPageList(): StatusPage[];
301
+ /**
302
+ * Get full details of a single status page, including publicGroupList with monitors
303
+ * and any active incidents. Uses the public HTTP API (`/api/status-page/{slug}`),
304
+ * which returns the same data the status page UI renders — richer than the
305
+ * socket `getStatusPage` event, which only returns config.
306
+ *
307
+ * @param slug - The status page slug
308
+ * @returns Promise resolving to the status page config, groups, and incidents
309
+ */
310
+ getStatusPage(slug: string): Promise<ApiResponse & {
311
+ config?: StatusPage;
312
+ publicGroupList?: unknown[];
313
+ incidents?: unknown[];
314
+ }>;
315
+ /**
316
+ * Create a new (empty) status page with the given title and slug
317
+ *
318
+ * Note: This creates a blank status page. Use updateStatusPage afterwards to
319
+ * set description, theme, groups, monitors, etc.
320
+ *
321
+ * @param title - Display title of the status page
322
+ * @param slug - URL slug (lowercase letters, digits, and dashes only)
323
+ * @returns Promise resolving to the API response
324
+ */
325
+ createStatusPage(title: string, slug: string): Promise<ApiResponse>;
326
+ /**
327
+ * Update an existing status page's config and group/monitor list
328
+ *
329
+ * @param slug - The status page slug (immutable identifier)
330
+ * @param config - Status page configuration (title, description, theme, published, etc.)
331
+ * @param publicGroupList - Ordered groups, each with a name, weight, and monitorList `[{id}]`
332
+ * @param imgDataUrl - Optional icon as data URL (pass empty string to keep existing)
333
+ * @returns Promise resolving to the API response
334
+ */
335
+ updateStatusPage(slug: string, config: Record<string, unknown>, publicGroupList?: Array<Record<string, unknown>>, imgDataUrl?: string): Promise<ApiResponse>;
336
+ /**
337
+ * Delete a status page
338
+ *
339
+ * @param slug - The status page slug
340
+ * @returns Promise resolving to the API response
341
+ */
342
+ deleteStatusPage(slug: string): Promise<ApiResponse>;
134
343
  /**
135
344
  * Get the socket instance (for advanced usage)
136
345
  */
@@ -1 +1 @@
1
- {"version":3,"file":"uptime-kuma-client.d.ts","sourceRoot":"","sources":["../src/uptime-kuma-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAEV,2BAA2B,EAC3B,uBAAuB,EAGvB,WAAW,EACX,aAAa,EAEb,WAAW,EACX,cAAc,EACd,SAAS,EAET,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AA2B1B;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,WAAW,CAAgE;IACnF,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,MAAM,CAAC,CAA4F;IAC3G,OAAO,CAAC,SAAS,CAAmC;gBAGlD,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE;QAAE,kBAAkB,EAAE,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,EAClG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO;IAO9C;;OAEG;YACW,OAAO;IAWrB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAoBlB;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8C5H,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAsB3C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBrD;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBtD;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,yBAAyB,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,uBAAuB,GAAG,SAAS,GAAG,2BAA2B,GAAG,SAAS;IAwBtL;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;QACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,yBAAyB,CAAC,EAAE,CAAC,CAAC;KAC/B,GAAG,WAAW,CAAC,CAAC,CAAC;IAqFlB;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,GAAE,MAAU,GAAG;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,CAAA;KAAE;IAUjF;;;;;;OAMG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,GAAG,SAAS,EAAE;IAUlF;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,cAAc,EAAE;IA2GpB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;CAG3B"}
1
+ {"version":3,"file":"uptime-kuma-client.d.ts","sourceRoot":"","sources":["../src/uptime-kuma-client.ts"],"names":[],"mappings":"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"}