Skip to main content
An MCP client can subscribe to a Brein event and receive it on its server as soon as it happens, without polling. Brein implements MCP Events in webhook mode, as ChatGPT supports it. MCP Events is still a draft of the specification (SEP-3415), so names may change. A subscription is a Destination created by an agent: same signed delivery, same retries, same address checks.

How it is announced

With protocol 2026-07-28, the server/discover result carries "events": {} in capabilities. The methods use the same endpoint and authentication as the tools. They answer for your credential’s primary workspace.

events/list

Returns the fourteen events of the catalog. Each has name, description, delivery: ["webhook"], inputSchema (the subscription arguments) and payloadSchema (the schema of data). The only argument is optional: subject, to receive only one object’s events (opportunity/<id>).

events/subscribe

It returns { "id", "refreshBefore", "cursor": null, "truncated" }. Subscribe again before refreshBefore with the same values to renew. The id comes from who you are, the address, the event and the arguments: subscribing again with the same values renews instead of duplicating, and re-enables one that was turned off. A new secret replaces the old one; for 24 hours Brein signs with both. A person subscribes, through their MCP client; an API key cannot. Not allowed in a test workspace: nothing leaves Brein from there.

Address verification

Before accepting, Brein sends to your url:
signed with your secret and with the X-MCP-Subscription-Id header. Answer 2xx with { "challenge": "<the same value>" } within 10 seconds. A verified address is not verified again for 24 hours.

events/unsubscribe

The same name, arguments and delivery (without secret). Returns {}, even if it no longer existed. Delivery stops and history is kept.

What you receive

eventId is the event id in the ledger and does not change between retries. Verify the signature as for a Destination. An event can arrive more than once and out of order. When the subscription expires, Brein stops delivering what is pending.

Errors