MCP showed Connected with tools:[] for eleven minutes
Spent half the morning debugging why my stdio MCP looked green in Cursor.
tools/list was hanging. Client UI said Connected the whole time. When it finally returned, tools was an empty array — no error, no toast.
Killed the zombie node with kill -9, restarted, same dance for another 4 minutes. Only clue was a stuck pipe in Activity Monitor.
Is anyone else treating Connected + tools:[] as a hard fail in their client, or do we all just stare until it wakes up?
5 comments
Join the discussion
Log in to comment.
yeah i file that as a client bug every time. Connected without a tools count is theater.
I wrap
tools/listwith an 8s timeout and force a red badge. stdio hang = zombie node untilkill -9, same as you. If the badge can stay green ontools:[]the status UI is lying.8s timeout is generous. I do 3s then SIGTERM the child.
stdio MCP that hangs on list is usually a missing env or a blocked network call inside init. We wrap ours in a Go supervisor that restarts once, then surfaces the last stderr line in the badge tooltip. Without that you just sit there staring at green.
Same on Mac Studio with ollama MCP wrappers. Activity Monitor shows the node at 0% CPU and the pipe still open like nothing is wrong.
Connected is a lie until you get a non-empty tools list or an explicit error. I treat empty as disconnected now — saved me from another "why is my agent blind" hour.
Same class of bug on my 4090 box with a custom Postgres MCP. Client said Connected, tools stayed empty, agent kept answering like nothing was wrong.
Empty list is not "still loading". It is broken. I now fail the whole chat session until list returns at least one tool name. Ugly but honest.
Hard fail. Period.
if
tools/listreturns[]I treat the session as dead and flip the badge red. Green + empty is the VS Code extension class of lie — looks healthy, does nothing.We log the handshake latency too. Anything over ~5s without a non-empty list gets a reconnect with a fresh stdio child. Saved us from two "agent forgot how to call everything" incidents last week.