[FEATURE] Display MCP tool name and arguments in the VS Code extension chat

Open 💬 0 comments Opened Jul 5, 2026 by eEricZeng

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When Claude invokes an MCP tool in the VS Code extension, the chat UI shows
only the server name and a generic method label (e.g. MyServer [some_method]).
It does not surface which specific tool was called, nor the arguments passed to it.

By contrast, the Claude Code CLI (terminal) displays both the resolved tool name
and a summary of its input arguments for every tool call. This makes the
extension strictly less transparent than the CLI for the same session.

Built-in tools in the extension already render an input block AND an output block,
but MCP tools render output only — the arguments appear nowhere in the UI:

Bash ← input IS shown
IN git status
OUT On branch main ...

SomeServer [fetch] ← input is NOT shown
OUT { ...response... }

Proposed Solution

  1. Render the resolved MCP tool name, not just the server/method wrapper.
  2. Render a summary of the JSON arguments — collapsible/expandable for large

payloads — consistent with how the CLI already presents them and how built-in
tools like Bash show their input (an IN block alongside OUT).

Alternative Solutions

  • Use the CLI instead, which already shows tool name + arguments — but that

defeats the purpose of working in the extension.

  • Read --debug / --verbose logs out-of-band — works, but it is not real-time

and not on the chat surface where the reasoning is happening.

  • If verbosity is a concern, gate it behind a setting (e.g. an "expand MCP tool

inputs" toggle) or make the argument block collapsed-by-default rather than
always expanded, instead of hiding the inputs entirely.

Priority

Critical - Blocking my work

Feature Category

MCP server integration

Use Case Example

A developer has an MCP server that exposes a query tool (e.g. a database
server). Claude runs it and returns an unexpected row count. In the extension
the developer only sees db [query] followed by the output — the actual query
string is never displayed, so they cannot tell whether Claude passed the wrong
filter or the data itself is off. To diagnose, they must switch to the CLI or
dig through --verbose logs.

With this feature, the same call would show the tool name and its arguments
inline:

db [query]
IN SELECT id, email FROM users WHERE active = true LIMIT 5
OUT (5 rows)

and the developer would immediately see whether the wrong argument was the cause.
This is especially important for gateway-style MCP servers that route many tools
through a single method, where today every call looks identical in the UI.

Additional Context

This re-files #28732, which was auto-closed as stale by the bot without
maintainer triage and then locked. Filing fresh per the bot's instruction to
open a new issue and reference the previous one.

Reproduces with any stdio MCP server that exposes named tools taking arguments;
not specific to any particular server.

View original on GitHub ↗