Inspiration
Contractor scheduling data is fragmented. One provider exposes explicit slots, another has business hours and calendar events, and another only has workforce information. Agents need a consistent way to find suitable appointments without pretending that every availability answer is equally reliable.
What it does
Schedule-Rank-WebMCP-Adapter gives service-provider websites a shared WebMCP scheduling interface. An agent can discover a provider's services and service areas, request available times, and make an appointment request through predictable tools.
The adapter also assigns an evidence tier to availability:
- CONFIRMED — explicit bookable slots
- DERIVED — calculated from business hours and existing appointments
- INFERRED — based on partial structured data such as workforce schedules
- UNCERTAIN — based primarily on formatted free text
- UNAVAILABLE — insufficient scheduling evidence
The tier measures the reliability of the scheduling evidence, not the quality or reputation of the contractor.
Why WebMCP
Scheduling is an action-oriented workflow. Visual page scraping forces agents to reinterpret every provider website and can hide the difference between a real slot and a plausible time. WebMCP lets each page expose structured, typed capabilities directly.
This creates a better experience for both people and agents: customers can compare relevant providers without repeatedly searching and filling forms, while businesses can keep their existing scheduling backend and expose only the capabilities they already support.
How it works
The shared JavaScript scheduler registers three tools using document.modelContext.registerTool(...):
get_business_servicesfind_times_for_appointmentbook_appointment
Provider-specific adapters supply their own backend data and functions. The shared layer normalizes those different representations and classifies their evidence strength. Three hosted examples demonstrate explicit-slot, calendar-derived, and workforce-inferred scheduling systems.
What people and agents can do together
An agent can discover which providers offer the requested service, discard providers outside the customer's postcode, query suitable times, and explain the evidence behind each result. The person retains control over the final provider and appointment choice, particularly before a booking action.
Testing
The three public provider demos were tested in ChatGPT's Codex in-app browser. Each registered all three WebMCP tools with valid JSON Schemas and no console errors. get_business_services was invoked successfully for every provider and returned provider-specific services, service areas, and timezone information.
Additional demos:
- https://tomishninja.github.io/MCPDemos/sparkys-electrical/
- https://tomishninja.github.io/MCPDemos/rapid-plumbing/
Built with Codex
Codex assisted with JavaScript development, provider examples, documentation, debugging tool registration and schema problems, live WebMCP browser verification, and preparing the hackathon materials.
Limitations
This is a prototype using demonstration provider data rather than live contractor systems. Availability confidence is deterministic and based on exposed scheduling capabilities. Production-grade holds, release, revalidation, idempotency, and externally sourced contractor reputation remain future work.
Built With
- css
- github
- html
- javascript
- openai-codex
- webmcp