Mirror of https://github.com/modelcontextprotocol/experimental-ext-triggers-events — Incubation space for the MCP Triggers & Events Working Group
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Peter Alexander 58df0af65b
Revise Events design sketch: gap model, replay bounding, identity hardening, decisions table
- Unify cursor expiry into in-band `truncated: true` (drop -32014 CursorExpired): poll result body, push re-sends notifications/events/active mid-stream, webhook refresh response + {"type":"gap"} control envelope; client never re-subscribes for a gap
- Add `maxAge` (seconds) to bound replay across all modes; servers may decline by truncating to now
- Heartbeat carries cursor (push) and refresh response carries the safe-watermark cursor (webhook) so the client's position advances during quiet periods
- Webhook now requires an authenticated principal (key is (principal, url, name, params)); drop body `id` (route via X-MCP-Subscription-Id); add Non-event webhook bodies subsection (gap/terminated/verification with `type` discriminator)
- Drop subscription `id` from poll/stream (one sub per request; correlate via JSON-RPC id / requestId)
- Rewrite Summary as a how-it-works overview; add Key Design Decisions table; add OQ5 (task state changes as events) and OQ6 (endpoint verification + asymmetric server signing)
- Consistency pass across diagrams, examples, error lists, and appendix step references
2026-04-30 23:02:10 +01:00
.github Initial commit: WG scaffolding (README, CONTRIBUTING, LICENSE, CODEOWNERS) 2026-04-09 16:53:28 +01:00
docs Revise Events design sketch: gap model, replay bounding, identity hardening, decisions table 2026-04-30 23:02:10 +01:00
.gitignore Initial commit: WG scaffolding (README, CONTRIBUTING, LICENSE, CODEOWNERS) 2026-04-09 16:53:28 +01:00
CONTRIBUTING.md Initial commit: WG scaffolding (README, CONTRIBUTING, LICENSE, CODEOWNERS) 2026-04-09 16:53:28 +01:00
LICENSE Initial commit: WG scaffolding (README, CONTRIBUTING, LICENSE, CODEOWNERS) 2026-04-09 16:53:28 +01:00
README.md Initial commit: WG scaffolding (README, CONTRIBUTING, LICENSE, CODEOWNERS) 2026-04-09 16:53:28 +01:00

Triggers & Events Working Group

⚠️ Experimental — This repository is an incubation space for the Triggers & Events Working Group. Contents are exploratory and do not represent official MCP specifications or recommendations.

Mission

The Triggers & Events Working Group exists to define how MCP servers proactively notify clients of state changes. Today, clients learn about server-side updates by polling or holding an SSE connection open. This WG will specify a standardized callback mechanism — webhooks or similar — that lets servers push notifications when new data is available, with defined ordering guarantees that hold across all transports.

See the full Working Group Charter for scope, authority, and operations.

Scope

In Scope

  • Specification work: SEPs defining the trigger/callback mechanism, subscription lifecycle, delivery semantics, and event ordering guarantees
  • Reference implementations: SDK components demonstrating server-initiated notifications and client-side callback handling
  • Cross-cutting concerns: Coordination with the Transports WG on transport-specific delivery behavior, and with the Agents WG where task completion notifications intersect with event triggers
  • Documentation: Specification sections covering event-driven patterns and migration guidance from polling-based approaches

Out of Scope

  • Changes to the transport wire format or session model (owned by the Transports WG)
  • General-purpose pub/sub infrastructure beyond what the MCP protocol requires
  • Modifications to existing notification primitives (notifications/resources/updated, notifications/tools/list_changed, etc.) that do not relate to proactive server-initiated delivery
Group Overlap
Transports WG Delivery and ordering guarantees depend on transport capabilities; callback semantics must be coherent across stdio, Streamable HTTP, and future transports
Agents WG SEP-1686 (Tasks) identifies webhook-style task completion notifications as a future consideration; this WG owns that mechanism

Leadership

Role Name Organization GitHub
Lead Clare Liguori Amazon Web Services @clareliguori
Lead Peter Alexander Anthropic @pja-ant

Repository Contents

This repository will hold proposals, reference implementations, and experimental findings as the WG's work progresses. See CONTRIBUTING.md for how to participate.