[FEATURE] Improve MCP tool call display formatting for better readability

Resolved 💬 5 comments Opened Oct 11, 2025 by weeluci Closed Jan 10, 2026

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

MCP tool calls currently display with verbose, hard-to-read formatting that wraps parameter values across multiple
lines, making it difficult to quickly understand what operation is being performed.

### Current Display
⏺ filesystem-elisara - edit_file (MCP)(path:
"/Users/shadow/Work/elisara/frontend/src/app/features/auth/login/login.compo
nent.spec.ts", edits: [{"oldText":" describe('Loading State', () => {\n
it('should show loading spinner when loading', (done) => {\n // Set
loading
state BEFORE subscribing so the observable emits\n store.setState({\n
auth: {\n user: null,\n token: null,\n loading:
true,\n
error: null\n }\n }) as any;\n\n // Now
subscribe...

Compare this to built-in Edit tool which cleanly shows the file path and changes.

Proposed Solution

Format MCP tool calls similarly to built-in tools with clean parameter display in the header, followed by the
actual output.

### Desired Display (like built-in Edit tool)
⏺ filesystem-elisara - edit_file (MCP)
⎿ Editing /Users/shadow/Work/elisara/frontend/src/app/features/auth/login/login.component.spec.ts
⎿ The file has been updated. Here's the result:

25→ it('should show loading spinner when loading', () => {
26→ // Use overrideSelector for synchronous testing
27→ store.overrideSelector(selectAuthLoading, true);
28→ store.refreshState();
29→
30→ fixture.detectChanges() as any;

Key improvements:

  • Clean, single-line tool invocation header
  • File path shown cleanly (not wrapped mid-word)
  • Parameters hidden from header - not shown in verbose JSON format
  • Actual diff/output displayed cleanly below (this already works well)

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

CLI commands and flags

Use Case Example

  • Dramatically improves readability when using MCP filesystem, database, and other MCP servers
  • Makes MCP tools have feature parity with built-in tools in terms of UX
  • Reduces visual clutter in conversation history by 80%+
  • Encourages adoption of MCP ecosystem by removing UX friction

Additional Context

  • Affects all MCP tool calls (filesystem, postgres, brave-search, etc.)
  • The actual output/results are already well-formatted - only the invocation header needs improvement
  • This is especially problematic for tools with large parameters (edit operations with multi-line strings, SQL

queries, etc.)

View original on GitHub ↗

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