FrontMCP Events Demo

An MCP server that publishes its clock. Every minute, at the start of the minute, it sends the event clock.tick, with its time, to everyone subscribed. Add it to ChatGPT, ask ChatGPT to subscribe, and a message arrives every minute with nobody typing.

It shows MCP Events: a server telling a client that something happened, instead of waiting to be asked. It is built with FrontMCP and runs as a Cloudflare Worker.

The address

https://events-demo.frontmcp.dev

The MCP endpoint is this page's address. It signs callers in with OAuth: an MCP client opens a sign-in page, which you fill in once.

Add it to ChatGPT

  1. In ChatGPT on the web, open Plugins, choose Add, then Add custom MCP server.
  2. Give it a name, like FrontMCP Events Demo. Enter the server URL https://events-demo.frontmcp.dev, choose OAuth as the authentication, tick the acknowledgement box, and choose Create as a plugin.
  3. ChatGPT opens this server's sign-in page. Enter an email address and a name, and choose Authorize.
  4. The plugin's page lists the tool tick_now under "Write" and, under "Events", clock.tick.

ChatGPT delivers events in Work chats on the web, in Work chats in the desktop app with Cloud selected, and to dots, as OpenAI's page on MCP Events says. Your workspace's controls for plugins and event-triggered tasks apply.

Subscribe

Ask your dot, or a Work chat:

Using my FrontMCP Events Demo plugin, subscribe to its clock.tick event.
Every time a clock.tick event arrives, send me a short message here with the server time it carries.

ChatGPT subscribes, giving the server an address to send events to. The server checks that address with a signed challenge before it accepts the subscription. From the next minute on, ChatGPT gets one event a minute and answers it as you asked: "Server time: 2026-11-11 14:38:00.001 UTC."

To get one at once, ask ChatGPT to call tick_now. It publishes the time to your own subscriptions only.

What arrives

Each event is an HTTPS POST to the address ChatGPT gave, signed with the secret ChatGPT gave, as Standard Webhooks describes. Its body:

{
  "eventId": "clock-tick-2026-11-11T18:14:00.000Z",
  "name": "clock.tick",
  "timestamp": "2026-11-11T18:14:00.006Z",
  "data": { "time": "2026-11-11T18:14:00.006Z", "source": "schedule" }
}

time is the server's time, in ISO 8601 and UTC. source is schedule for the minute's event and tick_now for one you asked for.

Stop

Tell the same chat or dot:

Stop monitoring clock.tick now and unsubscribe from it.

ChatGPT unsubscribes, and the server sends nothing more to it. A subscription that ChatGPT doesn't renew ends within an hour anyway.

Limits

More