Stdio MCP (Oracle SQLcl) dies after parallel reconnect and resource subscribe with Failed to enqueue message

Thanks @mohitjain — this matches what I see on my side.

Setup: SQLcl 26.2.0.181.2110, ~/bin/sqlcl-mcp wrapper around sql -mcp (stdout JSON-only filter). Original report was Cursor 3.13.21; still on current Cursor as of Aug 2026.

Double-start + resource subscribe (Aug 26, Cursor MCP logs):

  • 6:18:14 ET: createClient → stdio spawn → connected → Subscribed to 11 resources
  • 6:18:17 ET: second createClient while already connected
  • 6:18:24 ET: stopped connection / Server shutting down → immediate respawn (~10s after first start) → connected again → Subscribed to 11 resources again

Protocol on each connect: client requests 2025-11-25, SQLcl suggests 2024-11-05.

EverythingProvider timeouts after that (same session, before any deliberate tool load):
Starting ~6:20 PM ET, repeated Timeout waiting for EverythingProvider with command 'mcp.createClient', often 4 parallel createClient at the same timestamp on a ~5 minute cadence. So the stdio child looked degraded from reconnect/subscribe/orchestration alone, not only from tool calls.

Fatal crash reproduced tonight (~8:34 PM ET, Cursor):
I connected Oracle MCP to dev_db, then fired ~24 parallel MCP tool calls (sql_run / schema_information). Cursor MCP log sequence:

  • 8:34:15 ET: ORA-17008: Closed connection
  • 8:34:37 ET: SQLcl stderr Failed to enqueue message
  • 8:34:47 ET: Server shutting down; in-flight tools returned MCP error -32000: Connection closed
  • 8:34:50 ET: follow-up tool call Not connected
  • After that: more EverythingProvider timeouts and createClient … error=Client closed

Attached log: cursor-oracle-mcp-aug26-2026.log

Prior crash history (Cursor): 6 earlier Failed to enqueue message events in ~/logs/sqlcl-mcp-stderr.log where the last client initialize before the crash was cursor-vscode (Jul 27–29, Aug 4, Aug 16). Tonight adds a 7th with the full Cursor MCP log chain above.

Toggle workaround: Toggling oracle-db off then on in Cursor Settings does not recover. I tried it twice tonight (including right after the crash). Oracle MCP stays dead until I fully quit and reopen Cursor. After restart, MCP is clean again.

Tools-only: I searched Oracle SQLcl docs (25.4–26.2), oracle/skills sqlcl-mcp-server.md, and sql -help on 26.2. I only find sql -mcp and -R restrict levels. Nothing documents disabling resources.subscribe. Could you share the exact command/args/env for “SQLcl tools-only” on 26.2?

Related: Same EverythingProvider / parallel createClient pattern on GitLab stdio MCP: MCPService: Timeout waiting for EverythingProvider (mcp.createClient) while stdio MCP server stays healthy