@cplace/mcp-server 1.10.8 โ†’ 1.10.9

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/dist/index.js CHANGED
@@ -18,6 +18,7 @@ import { primeCustomConstraintTypeCache } from './tools/type-management.js';
18
18
  import { debugLogWithTag } from './logger.js';
19
19
  import { parseUrlCredentials, hasEmbeddedCredentials } from './url-parsing.js';
20
20
  import { loadExternalPlugins } from './plugin-loader.js';
21
+ import { cleanupIdleSessions } from './session-cleanup.js';
21
22
  import { readFileSync } from 'fs';
22
23
  import { join } from 'path';
23
24
  import { fileURLToPath } from 'url';
@@ -25,8 +26,17 @@ const __filename = fileURLToPath(import.meta.url);
25
26
  const __dirname = join(__filename, '..');
26
27
  const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
27
28
  dotenv.config();
28
- const SESSION_IDLE_TIMEOUT_MS = 30 * 60 * 1000;
29
- const CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
29
+ function parsePositiveIntEnv(name, defaultMs) {
30
+ const raw = process.env[name];
31
+ if (!raw)
32
+ return defaultMs;
33
+ const parsed = parseInt(raw, 10);
34
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : defaultMs;
35
+ }
36
+ const SESSION_IDLE_TIMEOUT_MS = parsePositiveIntEnv('SESSION_IDLE_TIMEOUT_MS', 30 * 60 * 1000);
37
+ const CLEANUP_INTERVAL_MS = parsePositiveIntEnv('CLEANUP_INTERVAL_MS', 5 * 60 * 1000);
38
+ const SSE_KEEPALIVE_MS = parsePositiveIntEnv('SSE_KEEPALIVE_MS', 15 * 1000);
39
+ const SSE_MAX_STREAM_LIFETIME_MS = parsePositiveIntEnv('SSE_MAX_STREAM_LIFETIME_MS', 60 * 60 * 1000);
30
40
  function ensureTrailingSlash(url) {
31
41
  if (!url)
32
42
  return url;
@@ -169,22 +179,6 @@ function createSessionServer(cplaceUrl, apiToken) {
169
179
  registerProfileManagementTools(sessionServer, () => ({ apiToken, cplaceUrl }), registry);
170
180
  return { server: sessionServer, client: sessionClient };
171
181
  }
172
- function cleanupIdleSessions(sessions) {
173
- const now = Date.now();
174
- let cleanedCount = 0;
175
- for (const [sessionId, session] of Object.entries(sessions)) {
176
- const idleTime = now - session.lastActivityAt.getTime();
177
- if (idleTime > SESSION_IDLE_TIMEOUT_MS) {
178
- const idleMinutes = Math.round(idleTime / 60000);
179
- debugLogWithTag('MCP', `โฐ Session ${sessionId} timed out after ${idleMinutes} minutes of inactivity`);
180
- session.transport.close();
181
- cleanedCount++;
182
- }
183
- }
184
- if (cleanedCount > 0) {
185
- debugLogWithTag('MCP', `๐Ÿงน Initiated cleanup of ${cleanedCount} idle session(s)`);
186
- }
187
- }
188
182
  function startHttpServer() {
189
183
  const app = express();
190
184
  const port = process.env.PORT || 3000;
@@ -202,7 +196,8 @@ function startHttpServer() {
202
196
  client: sessionClient,
203
197
  credentials: { cplaceUrl, apiToken },
204
198
  createdAt: now,
205
- lastActivityAt: now
199
+ lastActivityAt: now,
200
+ activeStreamCount: 0
206
201
  };
207
202
  },
208
203
  enableDnsRebindingProtection: false,
@@ -225,11 +220,15 @@ function startHttpServer() {
225
220
  client: sessionClient,
226
221
  credentials: { cplaceUrl, apiToken },
227
222
  createdAt: now,
228
- lastActivityAt: now
223
+ lastActivityAt: now,
224
+ activeStreamCount: 0
229
225
  };
230
226
  };
231
- const cleanupTimer = setInterval(() => cleanupIdleSessions(sessions), CLEANUP_INTERVAL_MS);
232
- debugLogWithTag('MCP', `๐Ÿ• Session cleanup timer started (interval: ${CLEANUP_INTERVAL_MS / 60000} minutes, idle timeout: ${SESSION_IDLE_TIMEOUT_MS / 60000} minutes)`);
227
+ const counters = { expiredSessions: 0, goneResponses: 0 };
228
+ const cleanupTimer = setInterval(() => {
229
+ counters.expiredSessions += cleanupIdleSessions(sessions, SESSION_IDLE_TIMEOUT_MS);
230
+ }, CLEANUP_INTERVAL_MS);
231
+ debugLogWithTag('MCP', `๐Ÿ• Session cleanup timer started (interval: ${CLEANUP_INTERVAL_MS / 60000} min, idle timeout: ${SESSION_IDLE_TIMEOUT_MS / 60000} min, SSE keepalive: ${SSE_KEEPALIVE_MS / 1000}s, max stream lifetime: ${SSE_MAX_STREAM_LIFETIME_MS / 60000} min)`);
233
232
  process.on('SIGTERM', () => clearInterval(cleanupTimer));
234
233
  process.on('SIGINT', () => clearInterval(cleanupTimer));
235
234
  app.use(cors({
@@ -255,8 +254,10 @@ function startHttpServer() {
255
254
  app.get('/authorize', oauthNotSupported);
256
255
  app.get('/health', (req, res) => {
257
256
  const now = Date.now();
258
- const sessionAges = Object.values(sessions).map(s => now - s.createdAt.getTime());
259
- const sessionIdleTimes = Object.values(sessions).map(s => now - s.lastActivityAt.getTime());
257
+ const sessionValues = Object.values(sessions);
258
+ const sessionAges = sessionValues.map(s => now - s.createdAt.getTime());
259
+ const sessionIdleTimes = sessionValues.map(s => now - s.lastActivityAt.getTime());
260
+ const activeStreams = sessionValues.reduce((sum, s) => sum + s.activeStreamCount, 0);
260
261
  const oldestSessionAgeMinutes = sessionAges.length > 0
261
262
  ? Math.round(Math.max(...sessionAges) / 60000)
262
263
  : 0;
@@ -268,9 +269,20 @@ function startHttpServer() {
268
269
  version: packageJson.version,
269
270
  buildTime: process.env.BUILD_TIME || 'unknown',
270
271
  timestamp: new Date().toISOString(),
271
- activeSessions: Object.keys(sessions).length,
272
+ activeSessions: sessionValues.length,
273
+ activeStreams,
272
274
  oldestSessionAgeMinutes,
273
- maxIdleTimeMinutes
275
+ maxIdleTimeMinutes,
276
+ config: {
277
+ sessionIdleTimeoutMs: SESSION_IDLE_TIMEOUT_MS,
278
+ cleanupIntervalMs: CLEANUP_INTERVAL_MS,
279
+ sseKeepaliveMs: SSE_KEEPALIVE_MS,
280
+ sseMaxStreamLifetimeMs: SSE_MAX_STREAM_LIFETIME_MS
281
+ },
282
+ counters: {
283
+ expiredSessions: counters.expiredSessions,
284
+ goneResponses: counters.goneResponses
285
+ }
274
286
  });
275
287
  });
276
288
  const handlePostRequest = async (req, res) => {
@@ -296,6 +308,7 @@ function startHttpServer() {
296
308
  sessionInfo.lastActivityAt = new Date();
297
309
  }
298
310
  else if (sessionId && !sessions[sessionId]) {
311
+ counters.goneResponses++;
299
312
  debugLogWithTag('MCP', `โŒ Session not found or expired: ${sessionId}`);
300
313
  res.status(410).json({
301
314
  jsonrpc: '2.0',
@@ -348,7 +361,51 @@ function startHttpServer() {
348
361
  return;
349
362
  }
350
363
  const sessionInfo = sessions[sessionId];
364
+ sessionInfo.lastActivityAt = new Date();
351
365
  debugLogWithTag('MCP', `๐Ÿ”„ Handling ${req.method} request for session: ${sessionId} (${new URL(sessionInfo.credentials.cplaceUrl).hostname})`);
366
+ if (req.method === 'GET') {
367
+ sessionInfo.activeStreamCount++;
368
+ let cleaned = false;
369
+ const cleanup = () => {
370
+ if (cleaned)
371
+ return;
372
+ cleaned = true;
373
+ clearInterval(keepaliveTimer);
374
+ clearTimeout(maxLifetimeTimer);
375
+ sessionInfo.activeStreamCount = Math.max(0, sessionInfo.activeStreamCount - 1);
376
+ sessionInfo.lastActivityAt = new Date();
377
+ };
378
+ const keepaliveTimer = setInterval(() => {
379
+ if (res.writableEnded || res.destroyed) {
380
+ cleanup();
381
+ return;
382
+ }
383
+ try {
384
+ res.write(':\n\n');
385
+ }
386
+ catch {
387
+ cleanup();
388
+ try {
389
+ res.end();
390
+ }
391
+ catch { }
392
+ }
393
+ }, SSE_KEEPALIVE_MS);
394
+ const maxLifetimeTimer = setTimeout(() => {
395
+ if (cleaned)
396
+ return;
397
+ debugLogWithTag('MCP', `โณ SSE stream for session ${sessionId} hit max lifetime (${SSE_MAX_STREAM_LIFETIME_MS / 60000} min); forcing close`);
398
+ cleanup();
399
+ try {
400
+ res.end();
401
+ }
402
+ catch { }
403
+ }, SSE_MAX_STREAM_LIFETIME_MS);
404
+ res.on('close', cleanup);
405
+ res.on('finish', cleanup);
406
+ req.on('close', cleanup);
407
+ req.on('aborted', cleanup);
408
+ }
352
409
  await sessionInfo.transport.handleRequest(req, res);
353
410
  };
354
411
  app.get('/mcp', handleSessionRequest);
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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"}
@@ -0,0 +1,11 @@
1
+ export interface CleanupSession {
2
+ lastActivityAt: Date;
3
+ activeStreamCount: number;
4
+ transport: {
5
+ close: () => void | Promise<void>;
6
+ };
7
+ }
8
+ export declare function cleanupIdleSessions<T extends CleanupSession>(sessions: {
9
+ [sessionId: string]: T;
10
+ }, idleTimeoutMs: number, now?: number): number;
11
+ //# sourceMappingURL=session-cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-cleanup.d.ts","sourceRoot":"","sources":["../src/session-cleanup.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,IAAI,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAClD;AAUD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAC1D,QAAQ,EAAE;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,EACpC,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAmB,GACvB,MAAM,CAoBR"}
@@ -0,0 +1,20 @@
1
+ import { debugLogWithTag } from './logger.js';
2
+ export function cleanupIdleSessions(sessions, idleTimeoutMs, now = Date.now()) {
3
+ let cleanedCount = 0;
4
+ for (const [sessionId, session] of Object.entries(sessions)) {
5
+ if (session.activeStreamCount > 0)
6
+ continue;
7
+ const idleTime = now - session.lastActivityAt.getTime();
8
+ if (idleTime > idleTimeoutMs) {
9
+ const idleMinutes = Math.round(idleTime / 60000);
10
+ debugLogWithTag('MCP', `โฐ Session ${sessionId} idle-timed-out after ${idleMinutes} minutes`);
11
+ session.transport.close();
12
+ cleanedCount++;
13
+ }
14
+ }
15
+ if (cleanedCount > 0) {
16
+ debugLogWithTag('MCP', `๐Ÿงน Initiated cleanup of ${cleanedCount} idle session(s)`);
17
+ }
18
+ return cleanedCount;
19
+ }
20
+ //# sourceMappingURL=session-cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-cleanup.js","sourceRoot":"","sources":["../src/session-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqB9C,MAAM,UAAU,mBAAmB,CACjC,QAAoC,EACpC,aAAqB,EACrB,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC;YAAE,SAAS;QAE5C,MAAM,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YACjD,eAAe,CAAC,KAAK,EAAE,aAAa,SAAS,yBAAyB,WAAW,UAAU,CAAC,CAAC;YAE7F,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,eAAe,CAAC,KAAK,EAAE,2BAA2B,YAAY,kBAAkB,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cplace/mcp-server",
3
- "version": "1.10.8",
3
+ "version": "1.10.9",
4
4
  "description": "MCP server that provides Claude Desktop with tools to interact with cplace APIs",
5
5
  "main": "dist/public-api.js",
6
6
  "types": "dist/public-api.d.ts",