MCP Events Relay
Open source · Cloudflare + local CLI

Events arrive.
Agents respond.

Connect MCP Events to the agent sessions where you work. A durable relay keeps messages moving—even when your machine is offline.

Codex first. Any compatible MCP Events source.

delivery preview / illustrative
STANDING INSTRUCTION
“When a repository is created,
read it and write an overview.”
repo.createdVERIFIED
event_id  evt_8f21
source    your MCP server
↓ persisted  ↓ delivered  ↓ queued
Event queued into the assigned session.
The agent follows your instructions.
01
Your MCP serverSigned webhook events
02
Cloudflare relayVerify · persist · replay
03
Your local agentReceive · route · respond

A small bridge.
A useful connection.

Transport that stays out of your agent’s way.

Pick up where you left off

Events are stored before receipt is acknowledged. Reconnect to replay pending deliveries, with stable IDs and local deduplication.

One subscription, one destination

Watch multiple sources and events. Assign each subscription to a session with its own standing instructions, managed through MCP tools.

Credentials stay local

Your upstream MCP credentials stay on your machine. Dedicated environment identities authenticate the connection; the relay holds webhook verification secrets.

Start locally

Bring your server.
Keep your session.

Run the Worker locally, enroll an environment, and start the CLI daemon. Add its MCP tools to Codex to discover events and subscribe from your conversation.

Read the complete setup guide ↗
# Node 22.13+ · npm
git clone https://github.com/polvi-ish/mcp-events-relay
cd mcp-events-relay
npm ci
cp .dev.vars.example .dev.vars
npm run dev

# In another terminal, after enrollment
npm run cli -- daemon

# Register the MCP control interface
codex mcp add mcp-events-relay -- node \
  "$PWD/dist/relay.mjs" mcp
Built around MCP Events. Supports the draft webhook contract. Codex delivery requires a CLI with codex queue. Pending events are retained for seven days.Compatibility & limitations ↗