Inspiration
Cerveza Tools started several years ago as a small open-source project: a collection of React components and TypeScript functions for common homebrewing calculations. Over time, it became one of those side projects that mostly sat untouched.
While exploring ideas for the WebMCP Challenge, I realized it was a good project to bring back to life. The calculators already represented useful, deterministic domain capabilities that could be exposed to agents without asking a language model to perform the calculations itself.
That idea became Cerveza Tools Lab.
What it does
Cerveza Tools Lab is a shared brewing workspace where a brewer and an AI agent can work on the same batch.
Through WebMCP, the agent can read the current brew, use tools for hydrometer correction, alcohol, dilution, IBU and carbonation, and update the brew when requested. Changes made manually in the UI are also immediately available to the agent.
For example, if the measured gravity is higher than the target, the agent can read the values directly from the brew, calculate the required dilution and, after user approval, apply the adjustment.
How I built it
Cerveza Tools is my existing React and TypeScript library. During the challenge, I added optional WebMCP bindings to expose its calculation functions as agent-accessible tools.
Cerveza Tools Lab is the new application built for the challenge. It adds shared Current Brew state and contextual WebMCP tools, allowing the UI and the agent to work with the same data and underlying brewing logic.
Challenges and learnings
The main challenge was deciding where agent capabilities should live and keeping human and agent state synchronized.
Separating deterministic calculations from application context resulted in a simple architecture: Cerveza Tools knows how to calculate, while the Lab knows what the user is currently brewing.
My primary takeaway was that WebMCP becomes particularly beneficial when an application reveals both its existing functionalities and its current context. Instead of merely adding a chatbot on top, it facilitates the seamless collaboration between humans and agents within the same application.
Built With
- react
- typescript
- vite
- webmcp
Log in or sign up for Devpost to join the conversation.