Travel hiccups, sorted inside your AI.

CozyTrip is an MCP server. It sits inside the AI assistant you already use and walks a sample trip through a disruption, a PayPal Sandbox payment, and a three-way split.

Sample travel data. Sandbox test money. Drafts are not sent. No flights are booked.

The flight is one booking. The rest of the trip still has to be checked.

A cancellation moves the airport pickup. The hotel arrival may no longer match. Someone on the trip has often paid the driver already.

Those are four separate bookings in the sample: a flight, a hotel, a pickup, and a cruise. The total is USD 1,491.00.

CozyTrip keeps that list in the chat. It does not rebook any of them.

Close-up of a suitcase lock.
Photo: Eminent Luggage, Pexels.

See what the cancellation breaks. Then decide whether to pay for the drafts.

A preview comes first
The cancellation is a demo event, not a live airline feed. Nothing is recorded until the person confirms the simulation.
USD 9.90, shown before checkout
The price comes from the registered workflow. The model does not set it. No PayPal order exists until the person confirms.
Drafts after a verified capture
Three notes appear only after the receipt says the Sandbox capture passed. Each note is marked Draft. Not sent.
Recorded CozyTrip card: preview of a fictional flight cancellation. Sample data. Recorded CozyTrip card: the USD 9.90 after-sales quote. Sample data. Recorded CozyTrip card: payment verified and three drafts, each marked Draft. Not sent. Sample data.
Recorded CozyTrip cards. Sample data.

Split the pickup without paying the organizer again.

In the sample, Maya prepaid the USD 180 airport pickup. Leo and Ava each owe USD 60. Maya owes USD 0.00 and has no payment button.

Each share is its own PayPal Sandbox order. The money goes to the CozyTrip Team sandbox merchant, not to Maya.

Sandbox demo, not a real person-to-person transfer.

Recorded CozyTrip card: all shares paid. Leo and Ava USD 60.00 each, Maya owes USD 0.00. Sample data.
Recorded CozyTrip card. Sample data.

What actually runs

  1. Connect

    An MCP client calls https://mcp.cozytrip.dev/mcp with a bearer token. The page never holds that token.

  2. Read the sample, then the disruption

    import_orders with mode sample loads the fictional Seattle–San Francisco trip, 8–11 November 2026. detect_impact can show a preview first. A second call, after confirmation, records the simulation. No airline is contacted.

  3. PayPal Sandbox, captured on the server

    After the person confirms USD 9.90, the hosted payment service creates a PayPal Orders v2 Sandbox order, captures it on the server, and accepts webhooks only after the signature check. Coming back to the chat is not proof of payment.

  4. Verify, then draft

    verify_payment returns the three drafts only when the receipt has verificationState passed and chargeOutcome captured. Workers AI writes the prose from the booking facts. If the prose fails the checks, a template is used. The person sends the drafts. CozyTrip does not.

AI assistant → CozyTrip on Cloudflare Workers → private payment service → PayPal Sandbox

Workers AI drafts the notes. D1 stores the trip ledger and the person's own reports. Model: @cf/meta/llama-3.2-3b-instruct.

Watch the two-minute demo

The chat in the film is a replay. The cards are real CozyTrip cards. The trip is sample data. The PayPal step is Sandbox.

Public link: youtube.com/watch?v=15NOJoXXUUk · Music: Blue Skies by Silent Partner, YouTube Audio Library.

Connect your AI

Streamable HTTP. Send Authorization: Bearer, then a demo token. This page does not display tokens.

  • Judges: take a token from the repository README. It expires 2026-12-16 00:00 UTC.
  • Everyone else: open the GitHub repository and the Devpost page. This site does not collect email.

A new Sandbox checkout needs a PayPal Sandbox Personal buyer. Judges can use the buyer noted in the Devpost private testing instructions, or their own Sandbox Personal account. The buyer login stays on PayPal's page.

Documented path: remote MCP, a static bearer header, and MCP Apps.

  1. In the MCP config, set the URL to https://mcp.cozytrip.dev/mcp.
  2. Set Authorization to Bearer, then the token from an environment variable. Do not commit that token.
  3. Reload MCP. Start with: Use CozyTrip to organize my trip.

On the documented editor, the in-card PayPal control fell back to an external Sandbox link. Paying in that window does not deliver the drafts. Return to the chat and ask it to check the payment.

What this demo does not do

Does CozyTrip book the replacement flight?

No. The sample flight, hotel, pickup, and cruise stay sample data. Nothing is sent to those merchants.

Is the USD 9.90 a live charge?

No. Approved checkouts are PayPal Sandbox transactions. The test money is not a production payment.

Who receives the split?

The CozyTrip Team sandbox merchant. Maya is not paid again. Maya owes USD 0.00 in the sample because the pickup was already prepaid there.

Are the drafts delivered to the airline?

No. They are marked Draft. Not sent. A later control only records that the person says they sent them. That record is not a merchant response.

Does the card know a payment succeeded because the browser came back?

No. The server checks the capture. A return page, a popup, or a clicked link is not a receipt.

Start from the public project

The repository explains how to connect. This website does not take email addresses.