From 9655d471f7df25fc2c48e4c8a34bac864beb8347 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Mon, 14 Apr 2025 17:13:11 -0400 Subject: [PATCH 1/3] Add periodic stderr messages. In everything.ts - add a 10 second interval for sending 'notifications/stderr' messages to the client This was created in order to test the display and clearing of stderr messages in the client. - see https://github.com/modelcontextprotocol/inspector/pull/286 --- src/everything/everything.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index cee1e73197..d0a2ffb3fe 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -114,8 +114,9 @@ export const createServer = () => { let subscriptions: Set = new Set(); let subsUpdateInterval: NodeJS.Timeout | undefined; - // Set up update interval for subscribed resources + let stdErrUpdateInterval: NodeJS.Timeout | undefined; + // Set up update interval for subscribed resources subsUpdateInterval = setInterval(() => { for (const uri of subscriptions) { server.notification({ @@ -154,6 +155,19 @@ export const createServer = () => { server.notification(message); }, 15000); + + // Set up update interval for stderr messages + stdErrUpdateInterval = setInterval(() => { + const shortTimestamp = new Date().toLocaleTimeString([], { + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); server.notification({ + method: "notifications/stderr", + params: { content: `${shortTimestamp}: A stderr message` }, + }); + }, 10000); + // Helper method to request sampling from client const requestSampling = async ( context: string, @@ -676,6 +690,7 @@ export const createServer = () => { const cleanup = async () => { if (subsUpdateInterval) clearInterval(subsUpdateInterval); if (logsUpdateInterval) clearInterval(logsUpdateInterval); + if (stdErrUpdateInterval) clearInterval(stdErrUpdateInterval); }; return { server, cleanup }; From 41fa29e21bf546f7098b9193c8b76ba48b46d7b5 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Mon, 14 Apr 2025 17:32:33 -0400 Subject: [PATCH 2/3] Fix formatting --- src/everything/everything.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index d0a2ffb3fe..1d47979a56 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -162,7 +162,8 @@ export const createServer = () => { hour: '2-digit', minute: '2-digit', second: '2-digit' - }); server.notification({ + }); + server.notification({ method: "notifications/stderr", params: { content: `${shortTimestamp}: A stderr message` }, }); From b8ecbe79de1cd4e73e29bf374139f5a651091eba Mon Sep 17 00:00:00 2001 From: cliffhall Date: Tue, 15 Apr 2025 10:52:34 -0400 Subject: [PATCH 3/3] Adjust intervals for outgoing demo messages - subscription updates: 10 seconds - logging messages: 20 seconds - stderr messages: 30 seconds --- src/everything/everything.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/everything/everything.ts b/src/everything/everything.ts index 1d47979a56..b16d8395f6 100644 --- a/src/everything/everything.ts +++ b/src/everything/everything.ts @@ -124,7 +124,7 @@ export const createServer = () => { params: { uri }, }); } - }, 5000); + }, 10000); let logLevel: LoggingLevel = "debug"; let logsUpdateInterval: NodeJS.Timeout | undefined; @@ -153,7 +153,7 @@ export const createServer = () => { }; if (!isMessageIgnored(message.params.level as LoggingLevel)) server.notification(message); - }, 15000); + }, 20000); // Set up update interval for stderr messages @@ -167,7 +167,7 @@ export const createServer = () => { method: "notifications/stderr", params: { content: `${shortTimestamp}: A stderr message` }, }); - }, 10000); + }, 30000); // Helper method to request sampling from client const requestSampling = async (