Desktop app (Code tab): MCP connector tool list stays stale in existing and chip-spawned sessions after the server adds a tool; connector off/on does not refresh it

Status Open
Reported on v2.1.289
Maintainer reply None cached
Activity 1 comment · opened Oct 7, 2026

Environment

  • Claude desktop app 2.19675.1, Code tab (local CCD sessions)
  • Claude Code 2.1.289
  • macOS 15.7.9
  • Connector: a claude.ai custom connector (remote HTTP MCP server with OAuth), enabled for the session via the Connectors menu. Its tools appear as deferred tools named mcp__<connector-uuid>__<tool> and are loaded with ToolSearch.

What happened

  1. Server side: at 11:21Z on 2026-10-06 the MCP server deployed a new tool (create_temporary_api_key), registered unconditionally with server.registerTool(...) alongside the existing 21 tools. tools/list on the live server returns 22.
  2. Session A (started 2026-10-05, before the deploy): session_connectors_status reports the connector connected with tool_count: 21. ToolSearch "select:mcp__<uuid>__create_temporary_api_key" finds nothing. Calling set_session_connector_enabled with enabled: false then enabled: true (applied at turn end, as the tool describes) and checking on the next turn: still 21. reconnect_session_connector refuses because the status is connected, not failed.
  3. Session B (a chip-task session spawned from Session A about 13 hours after the deploy, in its own worktree): also tool_count: 21; the same off/on toggle leaves it at 21 on the following turn.
  4. Session C (a brand-new session started from the sidebar about 16 hours after the deploy): tool_count: 22, the new tool resolves and its schema loads.

Expected

  • A newly started session, including a chip-task child, should call tools/list on the connector and get its current tools. Session B was started 13 hours after the server changed and still received the old list, so the spawned session appears to inherit the parent's cached tool list.
  • Turning the connector off and on for a session should re-fetch the tool list; the tool's description says the connector is re-dialed and its tools are available from the next turn, but the count did not change.
  • reconnect_session_connector could allow re-dialing a connected server, or a "refresh tools" action could exist.
  • Ideally live sessions would honor notifications/tools/list_changed.

Impact

Agents in long-lived or spawned sessions conclude a tool "does not exist" when it has shipped. Here the agent could not use a feature deployed that morning, tried both documented refresh paths, and the work had to be handed to a manually created session. The spawned-session case is the surprising one, since a chip task is presented as a fresh session.

Minimal repro

  1. Enable a remote MCP connector in a Code-tab session; note tool_count from session_connectors_status.
  2. Add a tool on the server (unconditional registration; confirm tools/list returns the new count).
  3. In the existing session, toggle the connector off and on with set_session_connector_enabled; next turn, tool_count is unchanged.
  4. Spawn a chip task from that session; in the child, tool_count is also unchanged.
  5. Start a new session from the sidebar; tool_count matches the server.

Workaround

Start a new top-level session from the sidebar and hand the work to it, or reconnect the connector in claude.ai Settings → Connectors.

🤖 Generated with Claude Code

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗