claude-code - 💡(How to fix) Fix [Regression] MCP HTTP server tools return "No such tool available" in 2.1.109 (worked in 2.1.104) [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#49152Fetched 2026-04-17 08:49:24
View on GitHub
Comments
2
Participants
2
Timeline
7
Reactions
0
Author
Timeline (top)
labeled ×5commented ×2

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.

Error Message

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

Root Cause

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.

Fix Action

Workaround

Downgrading to 2.1.104 restores the prior behavior:

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

Code Example

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

---

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

---

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

---

ln -sfn ~/.local/share/claude/versions/2.1.104 ~/.local/bin/claude
RAW_BUFFERClick to expand / collapse

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:

DateClaude versionSessions w/ MCP tool callsSuccessful tool calls"No such tool" errors
2026-04-142.1.1041 (1493 messages)40
2026-04-16 (early)2.1.1091 (1418 messages)00 (Claude stopped trying after first failures)
2026-04-16 (today)2.1.1091 (642 messages)118

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

extent analysis

TL;DR

Downgrade to Claude Code version 2.1.104 to restore the previous behavior where tools served by an MCP HTTP server are consistently discoverable.

Guidance

  • Verify that the MCP server is correctly configured and reachable by checking the server logs for the "server:ready" message.
  • Confirm that the --mcp-config flag is correctly set and the mcpServers object contains the expected configuration for the Happy CLI.
  • Test the Happy CLI tool independently to ensure it is functioning as expected and responding to requests.
  • Consider setting up additional logging or debugging to capture more information about the timing of the MCP HTTP transport initialization and the model's tool list query.

Example

No code snippet is provided as the issue appears to be related to the interaction between Claude Code and the MCP HTTP server, and the provided information does not include specific code that can be modified to resolve the issue.

Notes

The issue appears to be specific to version 2.1.109 of Claude Code, and downgrading to 2.1.104 is the only known workaround at this time. The root cause of the issue is suspected to be a race condition or change in MCP HTTP transport initialization timing, but further investigation is needed to confirm this.

Recommendation

Apply the workaround by downgrading to version 2.1.104, as it is the only known solution that restores the previous behavior. This is a temporary fix until the root cause of the issue can be identified and addressed in a future version of Claude Code.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

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.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [Regression] MCP HTTP server tools return "No such tool available" in 2.1.109 (worked in 2.1.104) [2 comments, 2 participants]