[BUG] `claude mcp serve` Bash tool output is invisible in the MCP client's transcript

Resolved 💬 2 comments Opened May 6, 2026 by heinosasshallik Closed May 7, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When one Claude Code instance calls another via claude mcp serve and invokes the Bash tool, the result is completely invisible in the client's transcript — not collapsed, not truncated, just empty. Verbose mode (Ctrl+O) does not change this. The model receives the result correctly, so this is purely a client-side rendering bug.

The tool-call header line renders normally, but the result line below it is blank.

Both ends are first-party Claude Code, so this reproduces without any third-party MCP server.

What Should Happen?

The result of the Bash command should render under the tool-call line, the same way local Bash tool output renders.

Error Messages/Logs

No error is shown. The result line under the tool-call header is simply empty. Verbatim transcript from the failing case (user prompt → tool call → model's reply, with no result rendered between them):


❯ you can try run whoami on claude code bowser

● claude-code-bowser - Bash (MCP)(command: "whoami", description: "Print current username")

                                                                                  02:17 PM claude-opus-4-7
● The result came back to me as {"stdout":"hsass","stderr":"","interrupted":false,
  "isImage":false,"noOutputExpected":false} — i.e., the model is receiving it fine.


Note the gap between the tool-call line and the model's next message — that gap is where the Bash result should render but doesn't.

The model does receive the result — visible in the JSON the model itself quoted back in its reply:


{"stdout":"hsass","stderr":"","interrupted":false,"isImage":false,"noOutputExpected":false}


So the payload arrives end-to-end; the renderer just doesn't draw it.

Steps to Reproduce

This reproduces with Claude Code talking to itself locally — no second host needed.

  1. Register a claude mcp serve instance as an MCP server in your client:

``
claude mcp add self -- claude mcp serve
``

  1. Start Claude Code:

``
claude
``

  1. Verify the self server is connected:

``
/mcp
``

  1. Ask Claude to run a shell command via the MCP-exposed Bash tool, e.g.:

``
use the self Bash tool to run
whoami
``

  1. Observe the transcript. Optionally toggle verbose with Ctrl+O.

Expected: the username prints under the tool-call line.
Actual: the line is empty in both normal and verbose modes.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.131 (Claude Code)

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

Terminal is bash.

This is important because I cannot properly observe what the AI is doing.

View original on GitHub ↗

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