What it is

HoldSlot is a booking desk for interview / clinic-style slots. A person and an in-browser agent share the same screen.

The agent can search open slots and place a hold. The hold is visible on the board with a timer. Confirm is a human-only button. There is no confirm tool. The agent cannot complete a booking.

Live: https://holdslot-cyan.vercel.app
Repo: https://github.com/devtechedge/holdslot
Demo: https://www.youtube.com/watch?v=AnjYWBRFELY

Why WebMCP

Agents are bad at calendars. They click the wrong cell, double-book, or submit while the person looks away.

WebMCP lets the page own the tools:

  • search_slots — open slots by day and duration
  • hold_slot — hold for 3 minutes (does not book)
  • list_holds — current holds and time left
  • release_hold — drop a hold
  • get_board — full board snapshot
  • request_confirm — ask the human to confirm (does not confirm)

The UI updates when a tool runs. The person always sees the hold, the timer, and the confirm step.

What people and agents do together

  • Agent: search and hold while you watch
  • You: reject a bad hold, or press Confirm booking
  • Both: same URL, same state

How it is built

Static HTML / CSS / JS on Vercel. document.modelContext.registerTool(...) on load. In-memory slots. Works in ChatGPT’s in-app browser or Chrome with chrome://flags/#enable-webmcp-testing.

What I learned

Page-owned tools beat “agent, please click the button.” The useful part of WebMCP is a shared, visible contract: the agent can hold, the human still owns the commitment.

Built With

Share this project:

Updates

Submission history