Draft SEP that adds an Events extension to the Model Context Protocol. A client subscribes to upstream events like a Slack message, a repo push or a PagerDuty incident, and the agent reacts when one arrives instead of waiting for a cron job or a user message.
Until now an MCP server only spoke when a client asked it something, so an agent learned about anything new by polling or by keeping an SSE connection open. SEP-3415 defines io.modelcontextprotocol/events, an extension that lets the server tell the client when something happens upstream. The point is that an agent can act on it with nobody at the keyboard. It comes out of the Triggers & Events Working Group (led by Clare Liguori of AWS and Peter Alexander of Anthropic). It started as a design sketch in the incubation repo and was rewritten as a SEP for the 2026-07-28 protocol.
A server lists its event types with events/list. Each type has a name, an inputSchema for subscription arguments such as filters, a payloadSchema for the event data, and the delivery modes it supports. There are three modes, and none is mandatory. With poll (events/poll) the client asks for new events on a cursor. With push (events/stream) events arrive over one long-lived request. With webhook (events/subscribe) the client registers an HTTPS callback, and the server POSTs to it with Standard Webhooks signatures on a subscription that has a TTL. Cursors are opaque, so a client can pick up where it stopped after a disconnect. truncated: true tells it that some events were skipped, and eventId lets it drop duplicates.
The status is the thing to watch. The PR is still a draft, the error codes are provisional and the open questions are unresolved. Implementations are already shipping anyway: ChatGPT supports MCP Events with webhook delivery only, and the AI SDK has an experimental client.experimental_events API in @ai-sdk/mcp, also webhook-only.