Feature Request: Improve MCP tool call rendering in terminal

Resolved 💬 3 comments Opened May 12, 2026 by AaronEmpedrado Closed May 16, 2026

Problem

MCP tool calls with large string parameters (e.g., multi-line code) render as a single unformatted block pushed to the far right of the terminal. This makes them nearly unreadable compared to built-in tools.

Built-in tools (Bash, Read, Write, Edit) get:

  • Collapsible output sections (ctrl+o to expand)
  • Clean formatting with proper line breaks
  • Summary lines showing key info

MCP tools get:

  • All parameters dumped inline on a single wrapped line
  • No collapsing, no formatting
  • Escaped newlines (\n) instead of actual line breaks
  • Long string params push content to the rightmost column

Example: an MCP tool that executes a script

The code parameter contains a ~40-line Python script. In the terminal it renders as:

⏺ mcp-server - execute_script (MCP)(code: "\ndef main(**kwargs):\n    from datetime
                                       import datetime\n    import json\n\n
                                       ACCOUNT_ID = \"abc123\"\n\n    def
                                       fetch_records(account_id):\n
                                       \"\"\"Fetch active records for account.\"\"\"\n
                                       results = Record.objects(\n
                                       account=account_id,\n
                                       status=\"ACTIVE\"\n        )\n
                                       print(f\"Found {len(results)} records\")\n
                                       ... (continues for many wrapped lines)

This is functionally unreadable. The entire code block becomes visual noise that you have to scroll past.

Proposed Solution

Apply the same rendering treatment to MCP tools that built-in tools already get:

  1. Collapsible input parameters: Large string params (especially multi-line ones) should be collapsed by default with a summary line, expandable with ctrl+o
  2. Code formatting: String parameters containing newlines should render as formatted code blocks, not escaped inline strings
  3. Collapsible output: MCP tool results should use the same collapsible rendering as Bash output

Bonus (lower priority)

  • Allow MCP tool schemas to include display hints (e.g., marking a parameter as "x-display": "code" to trigger code block rendering)
  • Allow a parameter to be marked as "x-collapsed": true in the schema

Workarounds Considered

  • PreToolUse hooks: Can modify updatedInput but this changes both display AND execution — can't truncate for display only
  • PostToolUse hooks: Run after display, can't modify what was shown
  • Writing code to a file first: Adds an extra step but the messy MCP call display still appears
  • Settings/config: No options exist for MCP tool rendering

None of these solve the core problem.

Impact

Any MCP tool that accepts large structured input (code, JSON configs, templates) is affected. As MCP adoption grows, more tools will hit this — it's not specific to any single plugin.

View original on GitHub ↗

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