Relay — AI Incident Commander for Slack Inspiration Incident management in Slack usually devolves into chaos: a SEV-1 is declared, and suddenly engineers are scrambling across threads, searching issue trackers, trying to figure out what happened last time, and updating external status pages—all while the site is down. We realized that true incident response doesn't need just another chatbot; it needs a coordinator. We were inspired by the concept of an AI "Orchestrator" that can autonomously retrieve past context, decompose a crisis into actionable tasks, delegate them to tools via the Model Context Protocol (MCP), and keep stakeholders informed in real-time. Relay was born to be that calm, intelligent incident commander living right inside your Slack workspace.
What it does @Relay is a Slack-native AI Incident Commander that transforms a single SEV-1 declaration message into a fully coordinated, multi-agent incident response. Instead of a simple chatbot, Relay orchestrates multiple specialized AI agents:
Context Agent: Uses Real-Time Search and Gemini 2.5 to pull summaries of past, related incidents and discussions. Router Agent: Decomposes the incident brief and context into an actionable checklist, routing tasks to external tools via a custom MCP server. Digest & Postmortem Agents: Provide live status tracking to executives and automatically generate structured postmortems once the incident is resolved. How we built it We built Relay using a multi-agent architecture to ensure separation of concerns and high reliability. The application is built on Node.js and TypeScript, utilizing the Slack Bolt SDK (via Socket Mode) to interface seamlessly with Slack.
For the intelligence layer, we integrated Gemini 2.5 Flash (via @google/genai). It powers our Orchestrator, Context, Router, and Digest agents. We used the Model Context Protocol (MCP) SDK to build a custom task-tracking server backed by SQLite. This allowed us to cleanly separate the LLM reasoning from the external side-effects (like creating and updating tasks in a database). The Bolt app acts as the host and spawns the MCP server as a child process, communicating via standard MCP protocols.
Challenges we ran into One of the biggest challenges was ensuring the multi-agent handoffs were deterministic and reliable. When an incident is active, you can't afford for an LLM to hallucinate a task creation confirmation. We solved this by strictly enforcing JSON schemas for the Router Agent and building a real, custom MCP server. The Orchestrator only reports success after the MCP tool call returns a concrete ID from the SQLite database. Another challenge was managing Slack's event lifecycle and Socket Mode connections while coordinating asynchronous agent workflows.
Accomplishments that we're proud of We are incredibly proud of successfully implementing a real multi-agent orchestration pattern within the constraints of a hackathon. We didn't just build a wrapper around an LLM; we built a system where agents talk to other agents and execute real actions through a standardized protocol (MCP). We also managed to build a custom MCP server from scratch to handle task persistence, proving the extensibility and power of the protocol.
What we learned We learned a tremendous amount about the Model Context Protocol (MCP) and how it provides a safe, structured way for LLMs to interact with external systems. We also gained deep insights into designing multi-agent architectures—specifically, the importance of having a central "Orchestrator" agent rather than letting agents call each other chaotically.
What's next for Relay — AI Incident Commander In the future, we plan to extend Relay's MCP capabilities to connect with actual enterprise tools like Jira, PagerDuty, and Linear. We also want to implement more advanced context retrieval using vector databases to pull from internal wikis (like Confluence or Notion) during an incident, giving the Context Agent even more firepower.
Built With
- gemini-2.5
- google-genai
- model-context-protocol
- node.js
- slack-api
- slack-bolt
- sqlite
- typescript

Log in or sign up for Devpost to join the conversation.