Inspiration

Travel in India often depends on buses, and buses run late. When one does, the real problem isn't the delay itself. It's everything after it: the hotel check-in, the plans for the day and the cost of fixing it. We wanted an assistant that can plan an affordable trip, and then help when the plan breaks, without ever changing a booking behind your back.

What it does

PLAN MY TRIP is an India-first AI travel companion. Through an Alexa+-style conversation you can:

  • Plan an affordable trip from your origin, destination, dates and budget in INR
  • Retrieve a saved trip and its itinerary
  • Report a disruption, such as a delayed or missed bus, and see its impact on hotel check-in and other plans
  • Prepare a recovery action, such as notifying the hotel or rebooking, as a preview you can review
  • Approve or reject that action, and see whether it succeeded, failed or was cancelled

Nothing executes without explicit approval. Preparing an action only stages it in a pending_approval state.

How we built it

My part is the Alexa+ integration component: a self-hosted Model Context Protocol (MCP) server in Python.

  • Implements MCP spec 2025-11-25 over Streamable HTTP at /mcp
  • Exposes five tools: plan_trip, get_saved_trip, assess_disruption, prepare_recovery_action and approve_recovery_action
  • Calls the main application's API for all business logic, so trip planning, budgets and recovery rules are not duplicated
  • A browser-based Alexa+ simulation page acts as a real MCP client: it initializes a session, lists tools and calls them
  • A mock backend with seeded demo data let us build and test the integration independently
  • Automated tests cover the MCP protocol, input validation, approval safety, backend failures and tool logic

The main app uses React + Vite, Python FastAPI, SQLite and AI tool calling. We built with AI-assisted development tools, including Google Antigravity, and then reviewed and tested the code ourselves.

Honest note: the Alexa+ partner tools are gated, so this is a simulation of the Alexa+ experience. It is not a connection to a real Alexa+ device. The server follows the open MCP standard, so it could be registered with Alexa+ once access exists.

Challenges we ran into

  • Designing a safe approval flow. The assistant must never change real bookings by mistake, so we split "prepare" and "approve" into separate steps and tested that approval can't be bypassed.
  • Building before the backend existed. We used a mock API and kept the backend URL in configuration, so switching to the real API is a settings change.
  • Handling failures gracefully. Backend timeouts and unavailable responses return clear, safe errors instead of crashing.
  • Making a browser client work with MCP sessions. We had to configure CORS so a web page can read the MCP session headers.

Accomplishments that we're proud of

  • A real MCP server, not a custom API with an MCP label, speaking protocol version 2025-11-25 over Streamable HTTP
  • A human-in-the-loop safety design: every recovery action is a preview first, and approval is a separate, tested step
  • A test suite that covers protocol behavior, bad inputs, approval safety and backend failures
  • An end-to-end bus-delay scenario: report the delay, see the impact, prepare a fix, approve it and see the result

What we learned

  • How MCP lets an AI assistant discover and call tools in a standard way
  • Why validating inputs and requiring human approval matter when an AI can act on real-world bookings
  • How to test a protocol-level integration, not only the functions behind it

What's next for PLAN MY TRIP

  • Connect all tools to the live main application and share one demo trip across both apps
  • Add fare and option comparison for recovery choices
  • Tighten security settings for deployment, such as restricting allowed origins

Built With

Share this project:

Updates

posted an update —

PLAN MY TRIP v1.0 — Architecture Polish & Voice Companion Milestone

We're excited to post an update on how PLAN MY TRIP has evolved over the course of the hackathon! We’ve transitioned from initial planning concepts to a fully functional, multimodal travel companion.


Key Improvements & Newly Integrated Features:

  1. Hands-Free Alexa+ Voice Companion:

    • Integrated continuous speech recognition with natural wake-word detection ("Hello Alexa").
    • Added speech sanitization to turn dense itineraries and technical status logs into crisp, conversational 1–2 sentence voice replies (<160 characters).
    • Enabled audio barge-in interruption so users can seamlessly speak mid-response.
  2. Autonomous Disruption Recovery & MCP Tooling:

    • Implemented Model Context Protocol (MCP) tools for real-time schedule tracking (assess_disruption, prepare_recovery_action).
    • The agent automatically detects transit delays, evaluates route alternatives, and prepares instant recovery options.
  3. Strict Human-in-the-Loop Safety Gate:

    • Autonomous actions (ticket cancellations, bus switches, hotel notices) are never blindly executed.
    • Every critical adjustment generates an interactive review card requiring explicit user confirmation (Approve & Confirm vs. Reject).
  4. Production Stability & Persistence:

    • Switched backend storage to SQLite with WAL (Write-Ahead Logging) mode for concurrent access and persistent state across server restarts.
    • Full end-to-end testing completed across voice input, live trip switching, and fallback safety behaviors.

What's Next on the Roadmap:

  • Multi-lingual Indian regional voice recognition (Hindi, Telugu, Kannada, Tamil).
  • Direct real-time webhook feeds with live airline (DGCA/FlightRadar) and railway (IRCTC) APIs.
  • Collaborative trip editing for group travels with shared voice permissions.

Thank you for following our journey! Feel free to leave questions or feedback in the comments.

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

Submission history