Feature request: `/mcp` reconnect should re-query `tools/list` and re-expose tools to the model

Resolved 💬 3 comments Opened Mar 12, 2026 by exetorius Closed Apr 9, 2026

Summary

When an MCP server connection drops mid-session and is re-established via /mcp, tool definitions are not re-loaded. The model loses access to all tools registered by that server for the remainder of the session, even though the transport is live again.

Current Behaviour

  1. Session starts — Claude Code performs tools/list handshake with all connected MCP servers and loads tool schemas into the model context.
  2. MCP server goes offline mid-session (e.g. proxy crashes, editor restarts).
  3. User runs /mcp to reconnect — transport is re-established successfully.
  4. Tools are not re-exposed to the model. The model has no knowledge of the server's tools for the rest of the session, even though the server is healthy.

The only workaround is to start an entirely new session, which loses all conversation context.

Expected Behaviour

When /mcp re-establishes a connection to a server, Claude Code should:

  1. Re-issue tools/list to the reconnected server.
  2. Merge the returned schemas into the model's available tool set.
  3. Confirm to the user that tools are available again (e.g. VibeUE: 9 tools loaded).

Real-World Example

I use a local MCP proxy (VibeUE) that bridges Claude Code to Unreal Engine's Python API. The proxy exposes 9 tools and runs persistently on localhost:8089. If the proxy is restarted mid-session, /mcp reconnects successfully but the model has no tools. Only fix: new session, losing all context.

Why There Is No Good Workaround for Plugin Authors

This isn't just a personal inconvenience — it breaks the experience for every user who installs an MCP-backed plugin.

CLAUDE.md cannot solve this. CLAUDE.md is a local file, intentionally gitignored, meant for per-user customisation. Plugin authors cannot ship a CLAUDE.md with their plugin — it will never exist for end users unless they manually create one. It is not a distribution mechanism.

The MCP protocol already has the right piece. Many MCP servers (including VibeUE) write a tools-manifest.json at startup precisely so the tool list is available even when the server is temporarily offline. The gap is on the client side: Claude Code does not re-query tools/list when a connection is restored. The manifest exists; it just isn't used.

The expected contract from a plugin author's perspective:

  • User installs plugin → MCP server starts → Claude Code session starts → tools load. ✅
  • Server restarts mid-session → user clicks reconnect → tools reload. ✅ (currently broken)

Without the second step working, any MCP plugin that can disconnect (local proxies, editor integrations, dev tools) provides a degraded and confusing experience that the plugin author has no way to fix on their end.

Request

Re-querying tools/list on reconnect is a low-risk, high-value change — the server is already alive and responding at that point. It closes the gap between what the MCP protocol makes possible and what Claude Code currently delivers to users of MCP-backed plugins.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗