{"version":"2.1.321","anchor":"mcp-tool-calls-emit-download-progress-and-a-pre-call-hook","canonical_anchor":"mcp-tool-calls-emit-download-progress-and-a-pre-call-hook","heading":"MCP tool calls can report download progress","tier":"notice","area":"MCP","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.321\/e\/mcp-tool-calls-emit-download-progress-and-a-pre-call-hook","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.321","markdown":"### MCP tool calls can report download progress\n\nMCP tool calls can send download progress, tools can be marked as delivering files, and the UI handles download updates\n\n**Unclear.** What Claude Code does differently with a tool marked as delivering files is not shown.\n\n**What**\n\nMCP servers are outside programs that give Claude Code extra tools. Before, the progress messages they send, called `mcp_progress`, carried only a progress count and a total. Claude Code now supports MCP servers that deliver files:\n\n- `mcp_progress` events can carry a `download` payload, and the interface handles these separately.\n\n- A new step runs before each MCP tool call. It receives the client, the tool, the arguments, the parent message and the context.\n\n- MCP tools whose `_meta` field has `anthropic\/delivers` set to true are marked `listedAsDeliveringFiles`.\n\n- Cloud URLs are now tracked for each tool (`cloudUrlByTool`).\n\n- The state for connector instruction blocks was reworked.\n\n**Why**\n\nThis lays the groundwork for showing download progress while an MCP tool delivers a file. In practice, an MCP server can now say that its tools deliver files and report how a download is going.\n\n- Area: MCP\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}