[Regression] MCP HTTP server tools return "No such tool available" in 2.1.109 (worked in 2.1.104)
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/claudeThis issue has 4 comments on GitHub. Read the full discussion on GitHub ↗