@davidfuchs/mcp-uptime-kuma 0.5.3 → 0.6.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 CHANGED
@@ -33,7 +33,7 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [U
33
33
  | `getHeartbeats` | Get status check history for a specific monitor |
34
34
  | `getSettings` | Get Uptime Kuma server settings |
35
35
 
36
- ### Enhanced Filtering
36
+ ### Filtering
37
37
 
38
38
  Both `getMonitorSummary` and `listMonitors` support powerful filtering options:
39
39
 
@@ -61,6 +61,8 @@ Both `getMonitorSummary` and `listMonitors` support powerful filtering options:
61
61
 
62
62
  ## Quick Start
63
63
 
64
+ ### Using npx (stdio transport)
65
+
64
66
  Most folks will want to configure mcp-uptime-kuma using stdio as follows.
65
67
 
66
68
  ```json
@@ -81,6 +83,76 @@ Most folks will want to configure mcp-uptime-kuma using stdio as follows.
81
83
 
82
84
  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.
83
85
 
86
+ ### Using Docker (streamable HTTP transport)
87
+
88
+ For remote access or containerized deployments, you can run mcp-uptime-kuma as a Docker container using the streamable HTTP transport.
89
+
90
+ **Option 1: Using Docker Compose**
91
+
92
+ Create a `docker-compose.yml` file:
93
+
94
+ ```yaml
95
+ services:
96
+ mcp-uptime-kuma:
97
+ image: davidfuchs/mcp-uptime-kuma:latest
98
+ container_name: mcp-uptime-kuma
99
+ environment:
100
+ - UPTIME_KUMA_URL=http://your-uptime-kuma-instance:3001
101
+ - UPTIME_KUMA_USERNAME=your_username # Optional
102
+ - UPTIME_KUMA_PASSWORD=your_password # Optional
103
+ # OR use JWT token authentication:
104
+ # - UPTIME_KUMA_JWT_TOKEN=your_jwt_token
105
+ - PORT=3000 # Optional, defaults to 3000
106
+ ports:
107
+ - "3000:3000"
108
+ command: ["-t", "streamable-http"]
109
+ restart: unless-stopped
110
+ ```
111
+
112
+ Then run:
113
+
114
+ ```bash
115
+ docker compose up -d
116
+ ```
117
+
118
+ **Option 2: Using Docker Run**
119
+
120
+ ```bash
121
+ docker run -d \
122
+ --name mcp-uptime-kuma \
123
+ -p 3000:3000 \
124
+ -e UPTIME_KUMA_URL=http://your-uptime-kuma-instance:3001 \
125
+ -e UPTIME_KUMA_USERNAME=your_username \
126
+ -e UPTIME_KUMA_PASSWORD=your_password \
127
+ davidfuchs/mcp-uptime-kuma:latest \
128
+ -t streamable-http
129
+ ```
130
+
131
+ The MCP endpoint will be available at `http://mcp-uptime-kuma:3000/mcp` on your Docker host.
132
+
133
+ **Configuring Your MCP Client**
134
+
135
+ After starting the Docker container, configure your MCP client to connect to it:
136
+
137
+ ```json
138
+ {
139
+ "mcpServers": {
140
+ "uptime-kuma": {
141
+ "url": "http://mcp-uptime-kuma:3000/mcp"
142
+ }
143
+ }
144
+ }
145
+ ```
146
+
147
+ Or for LibreChat (librechat.yaml):
148
+
149
+ ```yaml
150
+ mcpServers:
151
+ uptime-kuma:
152
+ url: "http://mcp-uptime-kuma:3000/mcp"
153
+ serverInstructions: true
154
+ ```
155
+
84
156
  ## Usage Instructions
85
157
 
86
158
  ### Prerequisites
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAuPvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -2,8 +2,12 @@
2
2
  import 'dotenv/config';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
5
+ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
5
6
  import express from 'express';
7
+ import cors from 'cors';
6
8
  import rateLimit from 'express-rate-limit';
9
+ import { randomUUID } from 'node:crypto';
10
+ import NodeCache from 'node-cache';
7
11
  import { createServer } from './server.js';
8
12
  /**
9
13
  * Main entry point for @davidfuchs/mcp-uptime-kuma
@@ -74,6 +78,13 @@ async function runStdio(config) {
74
78
  async function runHttp(config) {
75
79
  const app = express();
76
80
  app.use(express.json());
81
+ // CORS configuration for MCP client compatibility
82
+ app.use(cors({
83
+ origin: process.env.ALLOWED_ORIGIN || '*', // Configure via environment variable
84
+ exposedHeaders: ['mcp-session-id'],
85
+ allowedHeaders: ['Content-Type', 'mcp-session-id', 'mcp-protocol-version'],
86
+ // MUST include 'mcp-protocol-version' otherwise preflight check will error out
87
+ }));
77
88
  // Rate limiting configuration
78
89
  const limiter = rateLimit({
79
90
  windowMs: 15 * 60 * 1000, // 15 minutes
@@ -86,26 +97,59 @@ async function runHttp(config) {
86
97
  app.use(limiter);
87
98
  // Create the MCP server once (reused across requests)
88
99
  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
100
+ // Store transports by session ID
101
+ const transportCache = new NodeCache({
102
+ stdTTL: 3600, // 1-hour expiry
103
+ checkperiod: 0,
104
+ useClones: false, // MUST include this to store references instead of cloning objects
105
+ // otherwise the StreamableHTTPServerTransport object will be broken!
106
+ });
91
107
  let authenticated = false;
92
- // Handle MCP requests
108
+ // Handle POST requests for client-to-server communication
93
109
  app.post('/mcp', async (req, res) => {
94
110
  try {
95
- // Create a new transport for each request to prevent request ID collisions
96
- const transport = new StreamableHTTPServerTransport({
97
- sessionIdGenerator: undefined,
98
- enableJsonResponse: true,
99
- });
100
- res.on('close', () => {
101
- transport.close();
102
- });
103
- await server.connect(transport);
104
- // Authenticate on first request
105
- if (!authenticated) {
106
- await authenticateClient();
107
- authenticated = true;
111
+ // Check for existing session ID
112
+ const sessionId = req.headers['mcp-session-id'];
113
+ let transport;
114
+ // Check if the session ID exists in the transport cache; if so reuse the transport
115
+ if (sessionId) {
116
+ transport = transportCache.get(sessionId);
117
+ }
118
+ if (!transport && isInitializeRequest(req.body)) {
119
+ // Create a new transport only for new initialization request
120
+ transport = new StreamableHTTPServerTransport({
121
+ sessionIdGenerator: () => randomUUID(),
122
+ onsessioninitialized: (sessionId) => {
123
+ // Store the transport by session ID
124
+ transportCache.set(sessionId, transport);
125
+ },
126
+ });
127
+ // Clean up transport when closed
128
+ transport.onclose = () => {
129
+ if (sessionId)
130
+ transportCache.del(sessionId);
131
+ };
132
+ // Connect the transport to the MCP server
133
+ await server.connect(transport);
134
+ // Authenticate on first connection
135
+ if (!authenticated) {
136
+ await authenticateClient();
137
+ authenticated = true;
138
+ }
139
+ }
140
+ else if (!transport) {
141
+ // Invalid request - no valid session ID and not an initialization request
142
+ res.status(400).json({
143
+ jsonrpc: '2.0',
144
+ error: {
145
+ code: -32000,
146
+ message: 'Bad Request: No valid session ID provided',
147
+ },
148
+ id: null,
149
+ });
150
+ return;
108
151
  }
152
+ // Handle the request
109
153
  await transport.handleRequest(req, res, req.body);
110
154
  }
111
155
  catch (error) {
@@ -122,6 +166,25 @@ async function runHttp(config) {
122
166
  }
123
167
  }
124
168
  });
169
+ // Reusable handler for GET and DELETE requests
170
+ const handleSessionRequest = async (req, res) => {
171
+ const sessionId = req.headers['mcp-session-id'];
172
+ let transport;
173
+ // Check if the session ID exists in the transport cache; if so reuse the transport
174
+ if (sessionId) {
175
+ transport = transportCache.get(sessionId);
176
+ }
177
+ if (!sessionId || !transport) {
178
+ res.status(400).send('Invalid or missing session ID');
179
+ return;
180
+ }
181
+ // Handle the request
182
+ await transport.handleRequest(req, res);
183
+ };
184
+ // Handle GET requests for server-to-client notifications via SSE
185
+ app.get('/mcp', handleSessionRequest);
186
+ // Handle DELETE requests for session termination
187
+ app.delete('/mcp', handleSessionRequest);
125
188
  // Health check endpoint
126
189
  app.get('/health', (req, res) => {
127
190
  res.json({ status: 'ok', server: 'mcp-uptime-kuma' });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.5.3";
1
+ export declare const VERSION = "0.6.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.5.3';
1
+ export const VERSION = '0.6.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidfuchs/mcp-uptime-kuma",
3
- "version": "0.5.3",
3
+ "version": "0.6.0",
4
4
  "mcpName": "io.github.DavidFuchs/mcp-uptime-kuma",
5
5
  "description": "A Model Context Protocol (MCP) server for Uptime Kuma version 2, supporting both stdio and streamable HTTP transports.",
6
6
  "type": "module",
@@ -46,10 +46,13 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.22.0",
49
+ "@types/cors": "^2.8.19",
50
+ "cors": "^2.8.5",
49
51
  "dotenv": "^17.2.3",
50
52
  "express": "^4.21.2",
51
53
  "express-rate-limit": "^8.2.1",
52
54
  "fuzzysort": "^3.1.0",
55
+ "node-cache": "^5.1.2",
53
56
  "socket.io-client": "^4.8.1",
54
57
  "zod": "^3.24.1"
55
58
  },