Inspiration
I work at andbeyond.com, a luxury travel company, and this idea was born from that experience.
I also really like to travel to new places. So I built this tool thinking about myself. When you are traveling, it is great to have something that gives you itineraries almost instantly.
What it does
You tell buki where you are and how you feel, in your own words.
Buki doesnt guess the parts it doesnt know. If you did not say how much time you have, or how far you want to walk, it asks to you. Then it uses Google Maps to find real places near you, check if they are open, and calculate the real walking route between them.
You get a intinerary you can follow.
If one stops doesnt work, buki looks for real replacement nearby that still fits your route. It shows you the change first. You decide.
How I built it
React, Typescript & Vite. Mobile first, because you use this while you are standing on the street.
Buki registers 11 WebMCP tools with document.modelContext.registerTool. So an agent can use the same app you are looking at. There is no separate agent mode. When the agent sets the origin, the map moves. When the agent builds the route, you see the route.
The LLM only reads what you wrote and turns it into constraints. It never invents a place or a distance. All of that comes from Google Maps.
Challenges we ran into
The agent saw 1 tool instead of 11. I registered the tools one by one with await. ChatGPT read the list before it finished and told me the page only had one tool. The tools were fine. The timing was the problem.
The agent was clicking instead of using the tools. I put Buki next to ChatGPT Desktop and it used the mouse to click my interface. It worked, but it proved nothing. I had to tell it directly: use the tools, never click.
A problem with no error. Every stop showed "Status unavailable". Nothing failed. isOpen() needs utcOffsetMinutes and I didnt ask for that field, so the code that removes closed places was doing nothing. Buki could send you to a closed museum. One line fixed it.
I decided not to guess. It is easier to invent a duration when the person does not give one. I did not want hat. f you dont say how much time you have, it asks. A plan built on a wrong assumption is worse than one question.
What I learned
WebMCP isnt just an API for your weate with the agent. The dificult questions were not technical. They were about trust, what can the agent do alone and what needs the person say yes?
What's next for Buki
Multi-day itineraries, public transport, and saving a walk to use it later. I would like it to be good enough to use it myself next time I travel.
Built With
- google-maps-platform
- google-places
- google-routes-api
- model-context-protocol
- openrouter
- react
- serverless
- typescript
- vercel
- vite
- vitest
- webmcp

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