Allow MCP tool responses to include structured display formats

Resolved 💬 2 comments Opened Mar 3, 2026 by dylanbstorey Closed Mar 31, 2026

Problem

MCP tool responses are plain text. Tools that modify files (e.g., search-and-replace editors) return raw diffs or JSON, which renders poorly in the terminal compared to Claude's own native Edit tool output — which gets formatted diff display with syntax highlighting.

There's no way for an MCP tool to say "this response contains a diff" or "this response contains a table" and have the client render it appropriately. Every tool author ends up formatting their own ASCII tables and text diffs, which are always worse than what the client could render natively.

Use Case

An MCP server that manages markdown documents (creating, editing, transitioning through workflow phases) returns diffs after edits and tabular data for listing operations. In VS Code or the Desktop app, native Edit diffs look great. But MCP tool diffs are just dumped as plain text — even though they represent the exact same kind of operation.

This applies broadly to any MCP tool that:

  • Edits files and wants to show what changed
  • Returns tabular/list data
  • Produces structured output that benefits from client-native rendering

Request

Allow MCP tool responses to include optional display format hints alongside the content. For example:

  • diff — render using the client's native diff viewer (same as Edit tool output)
  • table — render as a formatted table
  • markdown — render as formatted markdown rather than monospace text

The client can ignore hints it doesn't support and fall back to plain text. This keeps backward compatibility while letting tools that produce structured data get proper rendering where the client supports it.

View original on GitHub ↗

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