[Regression] MCP HTTP server tools return "No such tool available" in 2.1.109 (worked in 2.1.104)

Resolved 💬 4 comments Opened Apr 16, 2026 by chaehyun2 Closed May 12, 2026

Summary

After upgrading to Claude Code 2.1.109, tools served by an MCP HTTP server registered via --mcp-config are intermittently unreachable — Claude attempts to call them but receives "No such tool available: <tool>". The same configuration works correctly in 2.1.104 and earlier.

The Happy CLI (happy) wraps Claude Code and uses an MCP HTTP server to expose a change_title tool that auto-updates the chat session title. As a downstream effect, session titles no longer get set on 2.1.109.

Versions

  • Broken: 2.1.109 (installed 2026-04-16)
  • Last known good: 2.1.104 (installed 2026-04-12)
  • Also good: 2.1.92 (installed 2026-04-07)
  • OS: macOS 15.4 (Apple Silicon)
  • Install method: Native installer (~/.local/share/claude/versions/)

Reproduction

Launch arguments (captured from the wrapper CLI log):

claude \
  --append-system-prompt "ALWAYS when you start a new chat - you must call a tool \"mcp__happy__change_title\" to set a chat title. ..." \
  --mcp-config '{"mcpServers":{"happy":{"type":"http","url":"http://127.0.0.1:54273/"}}}' \
  --allowedTools mcp__happy__change_title \
  --settings ~/path/to/session-hook.json

The MCP server logs confirm it starts and is reachable:

[happyMCP] server:start sessionId=cmo0q616p0y4ho714o2r0xga2
[happyMCP] server:ready url=http://127.0.0.1:54273/

Claude then attempts to call the tool and the call fails:

{
  "name": "mcp__happy__change_title",
  "content": "<tool_use_error>Error: No such tool available: mcp__happy__change_title</tool_use_error>"
}

Observed pattern

Across recent sessions:

| Date | Claude version | Sessions w/ MCP tool calls | Successful tool calls | "No such tool" errors |
|---|---|---|---|---|
| 2026-04-14 | 2.1.104 | 1 (1493 messages) | 4 | 0 |
| 2026-04-16 (early) | 2.1.109 | 1 (1418 messages) | 0 | 0 (Claude stopped trying after first failures) |
| 2026-04-16 (today) | 2.1.109 | 1 (642 messages) | 11 | 8 |

Failures appear non-deterministic — some sessions get the tool list correctly, others never see it. Once a session encounters "No such tool" the model often stops retrying for the rest of the session.

Expected behavior

Tools advertised by an HTTP MCP server registered via --mcp-config should be consistently discoverable for the duration of the session, as in 2.1.104.

Hypothesis

Looks like a race condition or change in MCP HTTP transport initialization timing between 2.1.104 and 2.1.109 — the server is up but the model's tool list query either misses it or sees an empty list on first connection.

Workaround

Downgrading to 2.1.104 restores the prior behavior:

ln -sfn ~/.local/share/claude/versions/2.1.104 ~/.local/bin/claude

View original on GitHub ↗

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