# A2ui Diff — MCP tool `findutils:a2ui_diff`

Computes a structural diff between two A2UI JSONL payloads: surfaces added/removed, components added/removed/changed (by id), data-model path-level changes. Use this to understand what an agent turn changed in a surface, or to verify that a refactor kept behaviour identical.

- Category: developer
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, no API keys, 120 req/min per IP)
- Reference page: https://findutils.com/mcp/a2ui-diff/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/"
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "a2ui_diff",
      "arguments": {
        "before": "{\"version\":\"v0.9\",\"createSurface\":{\"surfaceId\":\"s\",\"catalogId\":\"x\"}}",
        "after": "{\"version\":\"v0.9\",\"createSurface\":{\"surfaceId\":\"s\",\"catalogId\":\"x\"}}\n{\"version\":\"v0.9\",\"surfaceUpdate\":{\"surfaceId\":\"s\",\"components\":[],\"root\":\"\"}}"
      }
    }
  }'
```

Example arguments (verified):

```json
{
  "before": "{\"version\":\"v0.9\",\"createSurface\":{\"surfaceId\":\"s\",\"catalogId\":\"x\"}}",
  "after": "{\"version\":\"v0.9\",\"createSurface\":{\"surfaceId\":\"s\",\"catalogId\":\"x\"}}\n{\"version\":\"v0.9\",\"surfaceUpdate\":{\"surfaceId\":\"s\",\"components\":[],\"root\":\"\"}}"
}
```

Decoded `before` argument (readability only — send it as a string):

```json
{
  "version": "v0.9",
  "createSurface": {
    "surfaceId": "s",
    "catalogId": "x"
  }
}
```

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
