TravasoMCP
Agent setup

Copy this into your agent.

Connect Cursor, Claude, Codex, or any coding agent to Travaso hotel search, checkout links, booking attribution, and commission tracking.

Step 1

Copy your access token

tk_live_travaso_REPLACE_WITH_YOUR_TOKEN

Treat this like a password. Use it as a Bearer token or as x-travaso-agent-token for clients that cannot set Authorization headers.

Step 2

Pick your integration path

Use MCP for Cursor, Claude Code, Claude API, Codex, and any client that can call a remote Streamable HTTP MCP server. Use the REST examples only when your platform cannot speak MCP yet.

Pasting the agent brief into a plain chat is not enough unless that chat runtime has this MCP server installed.

  • Endpoint: https://elitetravelsales.com/api/backend/mcp
  • Auth: Authorization: Bearer <token>
  • Tools: quote, checkout, status, cancel
Client snippets

Cursor, Claude, and MCP clients

These are safe to hand to a developer or coding agent. Keep the token server-side and never commit a real key into a public repo.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "travaso": {
      "url": "https://elitetravelsales.com/api/backend/mcp",
      "headers": {
        "Authorization": "Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN"
      }
    }
  }
}
Claude Code

Terminal install

claude mcp add --transport http travaso https://elitetravelsales.com/api/backend/mcp \
  --header "Authorization: Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN"
Claude API

MCP connector block

{
  "mcp_servers": [
    {
      "type": "url",
      "name": "travaso",
      "url": "https://elitetravelsales.com/api/backend/mcp",
      "authorization_token": "tk_live_travaso_REPLACE_WITH_YOUR_TOKEN"
    }
  ],
  "tools": [
    {
      "type": "mcp_toolset",
      "mcp_server_name": "travaso"
    }
  ]
}
Smoke test

Run one hotel quote through MCP

curl -X POST https://elitetravelsales.com/api/backend/mcp \
  -H "Authorization: Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "search_competitive_hotel_quotes",
      "arguments": {
        "location": "Boston",
        "checkIn": "2026-07-25",
        "checkOut": "2026-07-26",
        "adults": 1,
        "rooms": 1,
        "firstName": "John",
        "lastName": "T",
        "email": "[email protected]",
        "phoneNumber": "+15555550100",
        "maxResults": 3
      }
    }
  }'
Coding-agent handoff

Paste this into Cursor, Claude, Codex, or a dev ticket

You are integrating Travaso hotel commerce into this codebase.

Goal:
- Let users search live hotels, compare the public Booking.com-style price against Travaso cost, and create a tracked checkout link.
- Attribute every quote, checkout, booking, commission, and payout status to this Travaso agent key.

Use MCP first:
- Endpoint: https://elitetravelsales.com/api/backend/mcp
- Header: Authorization: Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN
- Important: a prompt does not install tools by itself. Configure the MCP client first; if the runtime cannot use MCP, call the REST fallback endpoints from server-side code.
- Tools:
  1. search_competitive_hotel_quotes: quote hotels and return recommendationId values.
  2. create_offer_checkout_link: create a Stripe checkout URL from a selected recommendationId.
  3. get_offer_status: check payment, booking, earning, and payout readiness.
  4. cancel_offer: cancel eligible offers only when the operator explicitly asks.

Required UX:
- Ask for destination, check-in, check-out, adults, rooms, traveler name, email, and phone before quoting.
- Show 2-4 options with public price, Travaso cost/sell price, potential profit, and why each option fits.
- Do not create checkout until the traveler approves a specific option.
- After checkout, store offerId and use get_offer_status for follow-up.
- Explain that commission is tracked, but payout is not unlocked until the stay is finished.

Acceptance criteria:
- The integration never exposes this token in client-side code.
- Server-side code uses the MCP server or the REST fallback endpoints.
- The checkout URL is displayed exactly as returned by Travaso.
- Errors from tools are shown as recoverable booking/availability messages.
Runtime agent prompt

Paste this into the hotel-selling agent

You are a Travaso hotel booking agent.

When a traveler asks for hotels:
1. Use search_competitive_hotel_quotes with destination, dates, guests, budget, and traveler contact info.
2. Present 2-4 strong hotel options and explain why each one fits.
3. After the traveler chooses, call create_offer_checkout_link with the selected recommendationId.
4. Send the checkoutUrl to the traveler and tell them the booking is not complete until payment is finished.
5. Use get_offer_status later to confirm payment, booking status, earning status, and payout readiness.

Rules:
- Never create checkout before explicit traveler approval.
- Never promise a payout date until get_offer_status shows the earning is payable or paid.
- If price or availability changes, re-quote before presenting options again.
Tool contract

What the agent can call

search_competitive_hotel_quotesReturns ranked hotel recommendations and recommendationId values.
create_offer_checkout_linkCreates a real Travaso offer and Stripe checkout URL after traveler approval.
get_offer_statusReads payment, booking, earning, payable, and paid status for follow-up.
cancel_offerCancels eligible paid/booked offers only when explicitly requested.
REST API

Search hotels directly

curl -X POST https://elitetravelsales.com/api/backend/agent/hotel-quotes \
  -H "Authorization: Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "location": "Santa Monica",
    "checkIn": "2026-08-21",
    "checkOut": "2026-08-24",
    "adults": 2,
    "rooms": 1,
    "firstName": "Avery",
    "lastName": "Stone",
    "email": "[email protected]",
    "phoneNumber": "+14155550124",
    "maxResults": 5,
    "isLuxury": true
  }'
REST API

Create a checkout link

curl -X POST https://elitetravelsales.com/api/backend/agent/checkout-link \
  -H "Authorization: Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "recommendationId": "rec_from_hotel_quotes",
    "location": "Santa Monica",
    "checkIn": "2026-08-21",
    "checkOut": "2026-08-24",
    "adults": 2,
    "rooms": 1,
    "firstName": "Avery",
    "lastName": "Stone",
    "email": "[email protected]",
    "phoneNumber": "+14155550124"
  }'
REST API

Read sales and payout stats

curl -X GET https://elitetravelsales.com/api/backend/agent/portal/stats \
  -H "Authorization: Bearer tk_live_travaso_REPLACE_WITH_YOUR_TOKEN"
After checkout

Track stats and owed commission

Every booking created with this key is attributed to the agent. Payouts stay locked until the stay is complete, then appear in stats as owed commission for the next payout cycle.