Slack Agent Builder Challenge · RTS + MCP

HANDOFF — zero-context-loss incident handoffs for Slack.

On-call shift changes lose 15–30 minutes per handoff to re-orientation. HANDOFF watches the incident thread live, keeps a running summary, drafts a structured handoff card on /handoff, pings the incoming on-call from its built-in schedule, and escalates to the team lead if the handoff goes unacknowledged.

Live running summary

Uses Slack's Real-Time Search to pull thread state on every new message and edits a single pinned summary block in place — no message spam.

/handoff drafts the card

Structured Block Kit card with what happened, actions taken, open items, and an Acknowledge button — sent to the incoming on-call.

Acknowledge or escalate

If the incoming responder doesn't acknowledge within the timeout, HANDOFF resolves the team's lead via the escalate MCP tool and posts a visible in-thread notice tagging them.

MCP tools for any client

get_on_call and escalate are exposed as an OAuth-protected MCP server — connect ChatGPT, Claude, Cursor. Data lives in HANDOFF's own schedule tables, no external on-call vendor required.

Endpoints

POST /api/public/slack/events
Slack Events API (message events in watched threads)
POST /api/public/slack/commands
Slash command endpoint (/handoff, /handoff status)
POST /api/public/slack/interactions
HANDOFF acknowledgment button
POST /api/public/cron/escalations
pg_cron sweep — escalates unacknowledged handoffs
POST /mcp
OAuth-protected MCP server (built-in on-call tools)