Skip to content

Make multiple inspector tabs work correctly, avoid infinitely respawning MCP server #302

@ezyang

Description

@ezyang

This is actually I think reported in #293 but I think the original authors didn't understand the problem so I'm refiling the issue with a better name until someone renames the other issue.

When you have multiple inspector tabs open, you end up with a log that looks like this:

Stdio transport: command=/opt/homebrew/bin/uv, args=run,--with,mcp,mcp,run,codemcp/__main__.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'uv',
  args: 'run --with mcp mcp run codemcp/__main__.py',
  env: '{"HOME":"/Users/ezyang","LOGNAME":"ezyang","PATH":"/Users/ezyang/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/ezyang/Dev/codemcp/node_modules/.bin:/Users/ezyang/Dev/node_modules/.bin:/Users/ezyang/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/ezyang/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/ezyang/Dev/codemcp/.venv/bin:/Users/ezyang/.cargo/bin:/Users/ezyang/.cabal/bin:/Users/ezyang/.ghcup/bin:/Users/ezyang/.bun/bin:/opt/homebrew/bin/:/Users/ezyang/.nvm/versions/node/v22.12.0/bin:/Users/ezyang/.local/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"ezyang"}'
}
Stdio transport: command=/opt/homebrew/bin/uv, args=run,--with,mcp,mcp,run,codemcp/__main__.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'uv',
  args: 'run --with mcp mcp run codemcp/__main__.py',
  env: '{"HOME":"/Users/ezyang","LOGNAME":"ezyang","PATH":"/Users/ezyang/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/ezyang/Dev/codemcp/node_modules/.bin:/Users/ezyang/Dev/node_modules/.bin:/Users/ezyang/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/ezyang/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/ezyang/Dev/codemcp/.venv/bin:/Users/ezyang/.cargo/bin:/Users/ezyang/.cabal/bin:/Users/ezyang/.ghcup/bin:/Users/ezyang/.bun/bin:/opt/homebrew/bin/:/Users/ezyang/.nvm/versions/node/v22.12.0/bin:/Users/ezyang/.local/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"ezyang"}'
}
Stdio transport: command=/opt/homebrew/bin/uv, args=run,--with,mcp,mcp,run,codemcp/__main__.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'uv',
  args: 'run --with mcp mcp run codemcp/__main__.py',
  env: '{"HOME":"/Users/ezyang","LOGNAME":"ezyang","PATH":"/Users/ezyang/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/ezyang/Dev/codemcp/node_modules/.bin:/Users/ezyang/Dev/node_modules/.bin:/Users/ezyang/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/ezyang/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/ezyang/Dev/codemcp/.venv/bin:/Users/ezyang/.cargo/bin:/Users/ezyang/.cabal/bin:/Users/ezyang/.ghcup/bin:/Users/ezyang/.bun/bin:/opt/homebrew/bin/:/Users/ezyang/.nvm/versions/node/v22.12.0/bin:/Users/ezyang/.local/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"ezyang"}'
}
Stdio transport: command=/opt/homebrew/bin/uv, args=run,--with,mcp,mcp,run,codemcp/__main__.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'uv',
  args: 'run --with mcp mcp run codemcp/__main__.py',
  env: '{"HOME":"/Users/ezyang","LOGNAME":"ezyang","PATH":"/Users/ezyang/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/ezyang/Dev/codemcp/node_modules/.bin:/Users/ezyang/Dev/node_modules/.bin:/Users/ezyang/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/ezyang/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/ezyang/Dev/codemcp/.venv/bin:/Users/ezyang/.cargo/bin:/Users/ezyang/.cabal/bin:/Users/ezyang/.ghcup/bin:/Users/ezyang/.bun/bin:/opt/homebrew/bin/:/Users/ezyang/.nvm/versions/node/v22.12.0/bin:/Users/ezyang/.local/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"ezyang"}'
}
Stdio transport: command=/opt/homebrew/bin/uv, args=run,--with,mcp,mcp,run,codemcp/__main__.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'uv',
  args: 'run --with mcp mcp run codemcp/__main__.py',
  env: '{"HOME":"/Users/ezyang","LOGNAME":"ezyang","PATH":"/Users/ezyang/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/ezyang/Dev/codemcp/node_modules/.bin:/Users/ezyang/Dev/node_modules/.bin:/Users/ezyang/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/ezyang/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/ezyang/Dev/codemcp/.venv/bin:/Users/ezyang/.cargo/bin:/Users/ezyang/.cabal/bin:/Users/ezyang/.ghcup/bin:/Users/ezyang/.bun/bin:/opt/homebrew/bin/:/Users/ezyang/.nvm/versions/node/v22.12.0/bin:/Users/ezyang/.local/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"ezyang"}'
}

i.e. it is spawning the MCP client over and over. The net effect is that it's impossible to interact with the MCP client as the connection is always dropped. This occurs if you have two inspector tabs, if you close all but one the problem goes away. It would be good if it didn't do that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions