Inspiration Hotel management involves constant operational work: checking room availability, making reservations, updating room status, checking guests in and out, and monitoring occupancy and revenue. We built InnPilot because we wanted to explore a different question: what if a hotel management system was designed to be used by both people and AI agents? Instead of adding an AI chatbot that only answers questions, we wanted the agent to interact with the actual hotel system through structured capabilities.
WebMCP gave us the opportunity to make InnPilot's hotel operations directly discoverable and usable by agents while keeping the application responsible for enforcing its business rules.
Our goal was simple: make hotel software something an agent can actually operate, not just talk about.
What it does InnPilot is a multi-tenant hotel management platform for hotel owners, managers, and staff. Through WebMCP, InnPilot exposes real hotel operations as structured tools that agents can use directly.
An agent can: View hotel rooms and their current housekeeping status Check room availability for specific dates Filter availability by room type Create reservations List and filter reservations Check guests in and out Cancel reservations or mark no-shows Update room status, including Cleaning, Maintenance, and Out of Service Retrieve occupancy information Retrieve revenue and financial performance The tools are designed around hotel-domain actions rather than generic database operations. For example, an agent doesn't get a generic "write reservation" function. It gets a purpose-built innpilot_create_reservation tool with a defined schema and hotel-specific validation.
This also means the agent cannot simply bypass InnPilot's rules. Overlapping reservations are rejected, and rooms under maintenance or out of service cannot be booked.
The result is a collaboration model where: Human intent → AI agent → WebMCP tool → InnPilot business logic → Result
How we built it InnPilot is a web-based multi-tenant hotel management application. We integrated WebMCP by registering structured tools that expose important hotel capabilities to agents. Each tool provides:
A unique tool name A clear description explaining when it should be used A structured input schema An execution handler connected to InnPilot's existing application logic We deliberately exposed domain-level operations such as innpilot_check_room_availability, innpilot_create_reservation, innpilot_set_room_status, innpilot_get_occupancy, and innpilot_get_revenue. This allows the agent to interact with InnPilot through well-defined capabilities instead of trying to navigate buttons, forms, or pages. The underlying application continues to perform validation and enforce hotel rules, so WebMCP becomes a reliable agent interface to the existing product rather than a separate parallel system.
Challenges we ran into: The biggest challenge was making agent interaction reliable enough for real hotel operations. Reservations aren't just simple database writes. Availability depends on dates, existing reservations, room status, and operational constraints.
We had to make sure that: Availability reflects the requested stay rather than only the room's current status Existing and legacy bookings are considered Maintenance and out-of-service rooms cannot be sold Reservation creation rejects conflicting bookings Reservation status transitions are handled correctly Tool inputs are strictly validated Agents receive useful results after each operation Another challenge was deciding what should become a tool. We learned that exposing too much low-level functionality can make an agent interface harder to use. We focused instead on meaningful hotel actions that map directly to tasks a manager or staff member would actually perform.
Accomplishments that we're proud of We're proud that InnPilot is more than a WebMCP proof of concept. We connected WebMCP to an actual hotel management workflow with real operational state and business rules.
An agent can go from: Finding an available room → creating a reservation → managing the reservation lifecycle → updating housekeeping → checking occupancy → analyzing revenue. We're particularly proud of the validation layer.
If an agent tries to book an occupied room or create an overlapping reservation, InnPilot doesn't blindly execute the request. The application rejects the operation according to its hotel rules.
That demonstrates what we believe agent-native applications should look like: agents get powerful capabilities, but the application remains responsible for correctness.
What we learned WebMCP changed the way we think about web applications. We learned that a website can be designed not only as a visual interface for humans, but also as a structured capability layer for agents.
The most useful agent tools are not necessarily complex. A small collection of well-designed, domain-specific tools can allow an agent to accomplish an entire workflow when those tools compose naturally.
We also learned that agent-native design requires more than exposing functions. Tool descriptions, schemas, validation, error handling, and business rules all become part of the experience.
Most importantly, we learned that human + agent collaboration can be a product feature in itself.
What's next for InnPilot We're continuing to develop InnPilot as an agent-native hotel PMS. Next, we want to expand the range of workflows that hotel staff can delegate to agents while keeping humans in control of important decisions. We see opportunities for agents to coordinate more complex workflows across reservations, housekeeping, restaurant operations, conferences, payments, reporting, and hotel administration.
Our bigger vision goes beyond InnPilot. Today, most websites are built primarily for humans to navigate. We believe the next generation of the web can expose structured capabilities that agents can discover and operate safely. InnPilot is our exploration of what happens when a real-world business application is built for both humans and agents from the start.
Built With
- ai-integration
- date-fns
- eslint
- firebase
- firebase-authentication
- firebase-sdk
- firestore
- hotel-management
- management
- multi-tenant
- node.js
- property
- react
- react-router
- tailwind-css
- typescript
- vercel
- vite
- vitest
- webmcp
Log in or sign up for Devpost to join the conversation.