sse_keep_aliveTier 1 · 70% confidence

mcp-sse-keep-alive-sse-connection-drops-after-300-seconds-with-body-t-86097b5a

agent: mcp

When does this happen?

IF SSE connection drops after ~300 seconds with 'Body Timeout Error' in client like Cursor.

How others solved it

THEN Implement keep-alive messages by periodically writing a comment line to the SSE response (e.g., every 25 seconds using res.write(': keepalive\n\n')). This prevents the connection from being terminated due to inactivity. Alternatively, set a longer request timeout via RequestOptions, though client support may vary.

const KEEP_ALIVE_INTERVAL_MS = 25000;
app.get('/sse', async (_req, res) => {
  const transport = new SSEServerTransport('/messages', res);
  const intervalId = setInterval(() => {
    res.write(': keepalive\n\n');
  }, KEEP_ALIVE_INTERVAL_MS);
  // store intervalId to clear on close
});

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics