Inspiration
Six years ago, I cofounded a cafe where much of our revenue has come from bulk orders for events. Event organizers often request customizations, from dietary restrictions to names printed on party favours.
But the specifications for these customizations can be difficult to collect. Organizers may not yet know exactly who is attending, what each guest needs, or which details a vendor requires. That uncertainty creates a lot of manual back and forth.
An intermediate source of truth gives agents somewhere to coordinate this information. I built Tokuchu to explore how WebMCP could connect an event’s attendee information with the requirements of a personalized purchase.
What it does
Tokuchu is a WebMCP-native application that helps your agent manage event participants and their needs. Its sister website, Customworks, is a Shopify storefront with WebMCP tools for configuring personalized merchandise and preparing a checkout.
An organizer can ask ChatGPT’s browser to create an event and add attendees, then browse Customworks for a suitable gift. The store supplies the product’s customization requirements, which the agent brings back to Tokuchu.
Tokuchu reconciles those requirements with attendee information and relevant shared event details. It identifies missing answers and validates the resulting values against the store’s constraints. After approval, the agent can prepare one personalized item per complete attendee, leave incomplete attendees pending, and save the checkout in Tokuchu.
The organizer completes payment through Shopify. Tokuchu also supports scoped vendor access to fulfillment information, so a vendor can report an issue without receiving unrelated attendee data.
How we built it
I built Tokuchu with Next.js and TypeScript, with PostgreSQL persistence and deployment on Render. Its event, attendee, and vendor pages expose WebMCP tools appropriate to each page’s role.
On Customworks, I added merchant tools to the Shopify storefront. get_customization returns a product’s required fields, constraints, and variants. add_customized_to_cart accepts the configured items and creates a separate personalized cart line for each included attendee.
Tokuchu stores the product contract alongside the event’s records. Its validation and reconciliation logic produces a fulfillment manifest, and approvals reference a specific revision of that information.
The main website entry uses ChatGPT’s browser. Tokuchu also has an interface that people and browser agents can manipulate, including an in-app chatbox that invokes its managed workflow. The final demo shows an agent entering prompts into that chatbox. A separate local Stagehand runner provides another way to exercise the cross-site WebMCP flow.
Challenges we ran into
It took time to configure the WebMCP tools and page instructions so ChatGPT could reliably discover and use them. Testing different scenarios also revealed edge cases that the data model did not yet account for, particularly when attendee information was incomplete or needed to be mapped to a product’s requirements.
Working through those cases meant checking both what the agent understood and how Tokuchu recorded the resulting information.
Accomplishments that we're proud of
I’m proud of building two live websites that work together to turn attendee information into personalized orders. Setting up Customworks also gave me practical experience with agentic e-commerce, including how product customization connects to Shopify’s cart and checkout.
The store is configured to support real orders once test mode is turned off. An agent can prepare much of the personalized order through the browser, with the organizer reviewing the checkout before payment. That brings the project closer to the kind of ordering workflow I would want to use at our own cafe.
What we learned
I learned how much the initial setup of a website matters for agents. The page metadata and instructions directed toward them need to be clear and available when they first arrive, so they can understand what the site offers and how to navigate it.
Making those entry points easy to discover can be just as impactful as refining the individual tools. A useful capability becomes much easier to work with when the agent can find it and understand when to use it.
What's next for Tokuchu
I’d love to continue experimenting with storefronts that provide useful information for agents to process, and explore how their requirements can inform what an event organizer asks attendees.
I’d also like to develop an iteration of Tokuchu that helps us process orders at our own cafe, using what I’ve learned here to reduce the back and forth around bulk orders and customizations.
Built With
- customily
- docker
- next.js
- node.js
- openai-agents-sdk
- openai-api
- playwright
- postgresql
- react
- render
- resend
- shopify
- shopify-ucp
- stagehand
- typescript
- webmcp
Log in or sign up for Devpost to join the conversation.