{"version":"2.1.312","anchor":"mcp-approval-tickets-relayed-through-permission-responses","canonical_anchor":"mcp-approval-tickets-relayed-through-permission-responses","heading":"Approval tickets from permission answers are passed on to MCP tool calls","tier":"notice","area":"MCP","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312\/e\/mcp-approval-tickets-relayed-through-permission-responses","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.312","markdown":"### Approval tickets from permission answers are passed on to MCP tool calls\n\nAn approval ticket returned with an allow decision is now stored and attached to the later MCP call as anthropic\/approvalTicket\n\n**What**\n\nMCP tools come from MCP servers, separate programs that give Claude extra tools. When a permission prompt is answered from a remote or SDK host with an allow decision, that answer can now carry an `approvalTicket`.\n\n- The ticket is stored for that tool call and server.\n\n- It is attached as `anthropic\/approvalTicket` on the later MCP call, only in the main conversation and only for the same server.\n\n- The ticket is removed from the stored answer.\n\n- The remote control layer keeps `approvalTickets` and a `takeApprovalTicket` hook, and clears them when the prompt is settled.\n\nThe same finding also changes the session event writer. It gains `keepsApiErrorRequestId`, `tickets`, `stateRowTypesWritten` and `streamedResponseId`, and loses `startRowWaits`, `timersBehindStartRows` and `personsMessageReceived`.\n\n**Why**\n\nAn MCP server can now receive proof that a host approved the call, in remote and SDK setups.\n\n- Area: MCP\n- Names: `anthropic\/approvalTicket`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}