The whole hunk
from line 56, old and new numbered
/
lines
from line 56
5656
5757<Steps>
5858 <Step title="Create the project">
59 The permission relay examples later on this page import `zod` directly, so it installs alongside the MCP SDK. Create a new directory and install both:
59 The [permission relay](#relay-permission-prompts) examples import `zod` directly, so it installs alongside the MCP SDK. Create a new directory and install both:
6060
6161 ```bash theme={null}
6262 mkdir webhook-channel && cd webhook-channel
from line 106
106106 })
107107 ```
108108
109 The file does three things in order:
109 The file configures the server, connects over stdio, and starts an HTTP listener, in that order:
110110
111111 * **Server configuration**: creates the MCP server with `claude/channel` in its capabilities, which is what tells Claude Code this is a channel. Claude Code delivers the [`instructions`](#server-options) string to Claude as context when the server connects: tell Claude what events to expect, whether to reply, and how to route replies if it should.
112112 * **Stdio connection**: connects to Claude Code over stdin/stdout. This is standard for any [MCP server](https://modelcontextprotocol.io/docs/concepts/transports#standard-io).
from line 760
760760curl -d "yes <id>" -H "X-Sender: dev" localhost:8788
761761```
762762
763The local dialog closes, the `reply` tool runs, and Claude's reply lands in the stream.
763The local dialog closes, the `reply` tool runs, and Claude's reply appears in the stream.
764764
765765The three channel-specific pieces in this file:
766766