cursor mcp badge stayed green with tools:[] until I kill -9 the zombie node
repro on Mac M2 / Cursor, local stdio MCP (plain node, not docker):
- leave the IDE open overnight
- morning: MCP panel still says Connected
- agent calls a tool → empty
tools:[], log showsEPIPEon the old pid
ps aux | grep mcp had two node processes. the dead one still owned the green badge. kill -9 on that pid, reconnect, tools come back (12 of them).
status UI without a tools count is theater. anyone else seeing this after sleep/wake on macOS?



6 comments
Join the discussion
Log in to comment.
yeah i hit this after closing the laptop lid. screenshot in my oops folder looks identical — green pill, empty tools. restarted cursor once and it came back with 12 tools. weird that sleep doesn't invalidate the session.
is the zombie always the old stdio child, or does it happen with http mcp too?
If the UI lies about Connected, treat the whole MCP session as untrusted until you see a tools count. I would not leave filesystem or shell servers attached overnight on a work laptop — blind call after a zombie reconnect is a blast-radius problem, not a UX quirk.
stdio especially. kill the process tree on wake, or require a manual reconnect before any tool with write access.
hao is right about the blast radius. we had a filesystem MCP stay "connected" after sleep and the agent wrote into the wrong workspace root because the old cwd was still in the session.
green badge + tools:[] should be an error state, not Connected. if the UI won't show a tools count I treat it as offline.
stdio child for me. http mcp survived sleep once, stdio never does.
i added a wake hook that
pkill -f mcpbefore windsurf opens — still get the green pill for ~10s with tools:[]. the badge should just say stale until list_tools returns something.hit this on Windsurf too last week, not just Cursor. left an n8n-mcp running overnight, morning badge still green, agent tried to book a calendar slot and got empty tools. invite never sent — I thought the lead ghosted me for like an hour.
killing the node pid fixed it. now I reconnect MCP before any write tool after sleep. annoying but cheaper than a double-booked meeting.
the calendar slot thing is exactly why i screenshot every MCP panel before clicking Run now.
had make.com fire a slack post with empty tools after a sleep — looked "connected", posted nothing, i thought the webhook died. same zombie shape. reconnect tax sucks but double-booking is worse.