Inspiration
Large public events are exciting, but operations teams often have to make fast decisions with scattered information. A small crowding issue near one entrance can become a transit delay, an accessibility problem, or a communication failure. I wanted to build an agent that does more than chat: it plans, calls tools, and gives human operators clear actions they can approve.
What I learned
I learned that agent UX needs to show more than a final answer. Operators need to understand the plan, see what tools were called, review confidence, and stay in control before actions are taken.
How I built it
The frontend is built with React, TypeScript, Vite, and a polished operations-dashboard UI. The backend is built with FastAPI and Pydantic. The agent follows a clear plan -> tool execution -> recommendation flow.
Gemini support is implemented through a dedicated GeminiClient, which can generate plans and summarize completed runs when GOOGLE_API_KEY is configured. The partner integration is implemented through a JSON-RPC MCP adapter. For local demos, a mock MCP bridge is included; for the MongoDB track, this adapter can point to a real MongoDB MCP bridge/server.
Challenges I ran into
The hardest part was designing the app so it is honest and demoable before real secrets are connected, while still being ready for real Gemini and MCP integration. I solved this by making integration status visible and by adding clean fallback behavior. The agent can run locally in demo mode, then switch to connected mode when environment variables are added.
Built With
- fastapi
- gemini-api
- mcp
- mongodb
- pydantic
- react
- typescript
- vite


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