Feature request: Show diffs for MCP tool calls that modify content

Resolved 💬 4 comments Opened Mar 3, 2026 by DanielPBak Closed Apr 1, 2026

Problem

When Claude Code makes MCP tool calls that update existing content — e.g. editing a Linear ticket, updating a Notion doc, or modifying a Grafana dashboard — the entire content blob is displayed in the tool call parameters. This makes it very difficult to review what's actually changing, especially for large documents.

For example, updating a Linear issue description shows the full new description text rather than highlighting what was added/removed. The same applies to Notion page updates, Slack canvas edits, etc.

Proposed Solution

Show a diff view for MCP tool calls that modify existing content, similar to how the built-in Edit tool displays changes. This could work by:

  1. Detecting update/edit operations: MCP tools that modify existing resources (as opposed to creating new ones) could show a diff between the previous content and the new content.
  2. Before/after comparison: When an MCP tool call includes a large text parameter that replaces existing content, fetch or cache the previous version and display a unified diff.
  3. MCP protocol support: Consider extending the MCP protocol to allow servers to annotate parameters as "content that replaces existing content" so the client knows when to show a diff. Servers could optionally return the previous value alongside the new value, or the client could call a corresponding "read" method before the "update" to compute the diff.

Why This Matters

  • Reviewability: Users need to understand what Claude is changing before approving tool calls. A 500-line document with a 2-line change is effectively unreviewable as a raw blob.
  • Safety: MCP tools that modify shared resources (tickets, docs, dashboards) are exactly the kind of actions that warrant careful review. Diffs make review practical.
  • Consistency: The built-in Edit tool already provides excellent diff display. MCP-based edits should have parity.

Examples of MCP tools where this would help

  • linear.save_issue / linear.update_document — editing issue descriptions or documents
  • notion.notion-update-page — updating Notion page content
  • grafana.update_dashboard / grafana.update_alert_rule — modifying Grafana resources
  • slack.slack_send_message (for canvas edits) — editing Slack canvases
  • Any custom MCP server with CRUD operations on text content

View original on GitHub ↗

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