claude-code - 💡(How to fix) Fix MCP tool calls display generic 'Called <server>' instead of tool name and params since ~2.1.105 [1 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#48005Fetched 2026-04-15 06:36:04
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Participants
Timeline (top)
labeled ×5

Since approximately v2.1.105, MCP tool calls in the terminal UI display a generic collapsed format instead of the rich format that was shown previously.

Before (~2.1.104):

plugin:server - toolname (MCP)(param: "value")

After (2.1.105+):

Called plugin:server

The rich format showed the specific tool function name, the (MCP) type label, and inline parameter values — all useful context for MCP tools where the server namespace alone doesn't tell you what was called. The new collapsed format loses all of this.

Root Cause

This appears to be driven by the tengu_sotto_voce and tengu_swann_brevity: "focused" GrowthBook feature flags, which were rolled out server-side and activate a quieter rendering mode in 2.1.105+. The userFacingName() in client.ts still generates the full ${client.name} - ${displayName} (MCP) string, but the sotto voce rendering path overrides it with the generic format.

Code Example

plugin:server - toolname (MCP)(param: "value")

---

Called plugin:server
RAW_BUFFERClick to expand / collapse

Description

Since approximately v2.1.105, MCP tool calls in the terminal UI display a generic collapsed format instead of the rich format that was shown previously.

Before (~2.1.104):

plugin:server - toolname (MCP)(param: "value")

After (2.1.105+):

Called plugin:server

The rich format showed the specific tool function name, the (MCP) type label, and inline parameter values — all useful context for MCP tools where the server namespace alone doesn't tell you what was called. The new collapsed format loses all of this.

Root Cause

This appears to be driven by the tengu_sotto_voce and tengu_swann_brevity: "focused" GrowthBook feature flags, which were rolled out server-side and activate a quieter rendering mode in 2.1.105+. The userFacingName() in client.ts still generates the full ${client.name} - ${displayName} (MCP) string, but the sotto voce rendering path overrides it with the generic format.

Why This Matters for MCP Tools

The collapsed format makes sense for built-in tools (Read, Edit, Grep) where the tool name is self-evident from context. But for MCP/plugin tools:

  • A server may expose 10+ tools — knowing which tool was called matters (e.g., send vs reply vs history on a messaging server)
  • Parameter values provide immediate feedback (e.g., seeing who a message was sent to)
  • Without this, users must expand every tool call or enable full verbose mode to understand what happened

Reproduction

  1. Install any MCP server with multiple tools (e.g., a messaging plugin, database plugin)
  2. Run Claude Code 2.1.105+
  3. Call any MCP tool
  4. Observe Called <server-name> instead of <server-name> - <tool> (MCP)(<params>)

Compare with the same setup on 2.1.104 or earlier — the rich format is shown.

Suggested Fix

Either:

  • Exclude MCP tools from sotto voce / brevity rendering (always show userFacingName + params for MCP tools)
  • Add a user-facing setting to opt out of sotto voce mode (the GrowthBook override CLAUDE_INTERNAL_FC_OVERRIDES is ant-internal only and stripped from the public build)
  • Show at minimum the tool function name (not just the server namespace) in the collapsed format

Environment

  • macOS (Darwin 25.1.0)
  • Claude Code 2.1.107
  • Multiple MCP plugin servers configured

extent analysis

TL;DR

Exclude MCP tools from sotto voce/brevity rendering to restore the rich format for tool calls in the terminal UI.

Guidance

  • Identify the tengu_sotto_voce and tengu_swann_brevity feature flags in the GrowthBook configuration and consider overriding them to disable the quieter rendering mode for MCP tools.
  • Modify the client.ts file to conditionally use the userFacingName() function to generate the full tool name string, including the (MCP) label and parameter values, when the tool is an MCP tool.
  • Consider adding a user-facing setting to opt out of sotto voce mode, allowing users to choose between the rich and collapsed formats.
  • Verify the fix by running the reproduction steps and observing the restored rich format for MCP tool calls.

Example

// client.ts
if (isMCPTool(tool)) {
  return `${client.name} - ${displayName} (MCP)(${params})`;
} else {
  // use the collapsed format
  return `Called ${client.name}`;
}

Notes

The suggested fix assumes that the userFacingName() function is still generating the correct full tool name string, but is being overridden by the sotto voce rendering path. The fix may need to be adapted based on the specific implementation details of the client.ts file and the GrowthBook feature flags.

Recommendation

Apply a workaround by modifying the client.ts file to conditionally use the userFacingName() function, as this is a more targeted fix that addresses the specific issue with MCP tools, rather than disabling the quieter rendering mode entirely.

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…

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 MCP tool calls display generic 'Called <server>' instead of tool name and params since ~2.1.105 [1 participants]