Skip to main content
MCP Events let an AI assistant connected to the Chatbase MCP server react to what happens on your AI agents, without anyone asking it to check. You describe once what to watch for and what to do, and the assistant runs that task every time it happens.
MCP Events is a very new feature built on a draft extension to the Model Context Protocol. Client support is still arriving and may change as the specification settles.

Supported clients

Other MCP clients will receive events as they add support for the extension.

Use it in ChatGPT

1

Connect Chatbase

Add the Chatbase connector to ChatGPT and approve access, as described in MCP Server.
2

Describe the trigger and the task

In a Work chat, name the AI agent, what to watch for and what to do. For example: “Whenever a new ticket is created on Acme Support, summarize it, suggest a priority and draft a first reply.”
3

Let it run

ChatGPT subscribes to the event and runs the task each time it happens.

Ideas

  • Triage new tickets: summarize each new ticket, suggest a priority and draft a first reply.
  • Draft replies: when a customer replies on a ticket, draft an answer from the full thread.
  • Close knowledge gaps: when the AI agent hands a conversation to a human, explain what it could not answer so you can add the missing source.
  • Brief the human: when a conversation escalates, give the person taking over a short summary before they reply.
  • Log calls: after each phone call, write a summary and the follow-ups.
  • Spot trends: collect the week’s escalations and group them by reason.

Events

Every event is scoped to one AI agent. A delivery carries ids only, never message text, names, emails or phone numbers. The assistant reads the details with the tool named below, using your permissions.
Sent for ordinary tickets from any channel, and for tickets the AI agent or a connected tool creates. Not sent for live chat or Outbound campaign tickets, or for tickets created directly inside a third-party platform.Payload: agentId, ticketNumber, channel, platform, conversationId, escalatedConversation. For a ticket on another platform, ticketNumber and channel are null and platform names it, for example zendesk. escalatedConversation is true when creating the ticket also handed the conversation to a human.
Sent only when the AI agent itself decides to hand off. Not sent when a human takes over from the dashboard, or when a platform such as Zendesk takes control.Payload: agentId, conversationId, reason (ticket or live_chat), ticketNumber. ticketNumber is null when the handoff went to a third-party platform.
Sent for customer replies on ordinary and Outbound campaign tickets, including automatic replies such as out-of-office emails. Not sent for the first message of a ticket, replies from your team, internal notes, or messages during a live chat with a human. On the Chat Bubble, WhatsApp, Messenger and Instagram, once a ticket is closed and the conversation is back with the AI agent, the customer’s next message goes to the AI agent instead.Payload: agentId, ticketNumber, messageId.
Sent once per handback: the conversation’s last open ticket was closed, or a live chat on another platform ended. Also sent when a human had taken over from the dashboard, so it can arrive without an earlier escalated event.Payload: agentId, conversationId.
Sent once per real phone call, never for voice chat in a web widget.Payload: agentId, conversationId, durationSeconds.
If a client subscribes to both chatbase.ticket.created and chatbase.conversation.escalated, a ticket the AI agent creates to hand over a conversation arrives only as chatbase.conversation.escalated, which carries the ticketNumber. The client never receives both for one ticket.

Good to know

  • Conversations in the Playground, Actions and Q&A never send events. Test from a real channel such as the Chat Bubble, email or WhatsApp.
  • Actions an assistant takes through the MCP tools also send events. For example, creating a ticket with chatbase_create_ticket sends chatbase.ticket.created.
  • Revoking an app under Settings → General → Connected apps ends all its subscriptions immediately.
  • If your role loses a permission an event needs, deliveries for that event stop.

Build your own client

The server implements the webhook delivery mode of the MCP Triggers & Events draft. Clients call three JSON-RPC methods on https://mcp.chatbase.co/api/mcp, using the same OAuth connection as the tools.

Subscribe

Send the event name, arguments with the agentId, and a delivery object with mode: "webhook", an https url and a secret you generate: whsec_ followed by 24 to 64 random bytes, base64-encoded.
The first time you subscribe a URL, Chatbase POSTs {"type":"verification","challenge":"..."} to it. Respond within 5 seconds with a 2xx and {"challenge":"..."} echoing the same value.
  • Lease: the response includes refreshBefore. Call events/subscribe again with the same parameters before then to renew. The lease is 1 minute to 24 hours, 24 hours by default. Send ttlMs: null for a subscription that lasts until the connection is revoked or expires, and the response returns refreshBefore: null.
  • Limits: 25 live subscriptions per connection. Repeating a subscribe with the same event, arguments and URL renews it rather than creating another.
  • URLs: https only, on a public address. Redirects are not followed.

Deliveries

Each event is a POST signed with Standard Webhooks headers (webhook-id, webhook-timestamp, webhook-signature), using your secret. Verify the signature before trusting the body.
Delivery is at least once and can arrive out of order. Deduplicate on eventId, and read the record with the tool rather than acting on the payload alone.