Inspiration
I kept noticing the same complaint everywhere: chat is being added to every product right now, and it's usually worse than what it replaced. I read a long thread of UX researchers and designers talking about this. One comment summed it up well: the chatbot needs to be able to display UI, because typing a response is painful when you could have just been given a dropdown or a clickable list. Chat takes a spatial, structured task and forces it through a slow text bottleneck.
So I decided to build it.
What it does
CrystalUI is a headless library that reads a site's WebMCP tools and turns a typed request into a guided, clickable interaction instead of a conversation. You type something like "merge these two shapes" once. One AI call figures out which tool that matches. After that there's no more guessing from the model. A fixed sequence of steps plays out: click the first shape, drag it into place, click the second shape, confirm. The AI decides once, and the human does the rest with a mouse.
To test this against something real, I forked Excalidraw and registered 14 WebMCP tools against its actual drawing functions: creating shapes, merging them, connecting them with arrows, exporting, changing styles. Any WebMCP-compatible agent can call these tools directly, with or without Crystal loaded. Crystal sits on top of the same tool.
I also added a check that stops the AI from making things up when no tool actually fits the request. If there's no clean way to accomplish what the user asked using the tools available, it says so instead of guessing.
Log in or sign up for Devpost to join the conversation.