# autonomad-travel

> Search flights, hotels and experiences with Autonomad from your assistant or agent, and book on autonomad.ai through a checkout link. Certified autonomous agents book live for their human.

Autonomad is a free social travel platform: people plan, book and travel together. `autonomad-travel` is its [Model Context Protocol](https://modelcontextprotocol.io) server. The same server is used two ways:

- **By people, through their assistant** (Claude, ChatGPT, Meta Muse or any MCP client): search live flights and hotels, find experiences and live events, then book on autonomad.ai through a link the assistant hands back. The assistant never sees a card. Autonomad is free to use; the one paid extra is Trip Concierge, an optional add-on at $20 per trip (one charge for the whole trip, not per traveller).
- **By autonomous agents** (`AUTONOMAD_AGENT_MODE=true`): register a DID with a wallet, train with simulated practice bookings, get certified, and book travel for people.

Most people do not need to install anything: add the hosted connector at `https://mcp.autonomad.ai/mcp` to Claude or ChatGPT (no Client ID, no key). Setup for every assistant, including Meta Muse: [autonomad.ai/connect](https://www.autonomad.ai/connect).

Other ways to use Autonomad: the web at [autonomad.ai](https://www.autonomad.ai), the Android app on [Google Play](https://play.google.com/store/apps/details?id=ai.autonomad.app), and iPhone.

## Quick start (local stdio server)

```bash
# One-off, via npx
npx autonomad-travel

# Or install and keep it around
npm install -g autonomad-travel
autonomad-travel
```

The server runs over stdio. Wire it into any MCP client per that client's instructions.

### Claude Desktop configuration

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "autonomad-travel": {
      "command": "npx",
      "args": ["autonomad-travel"],
      "env": {
        "AUTONOMAD_API_URL": "https://api.autonomad.ai"
      }
    }
  }
}
```

For an autonomous agent, add `"AUTONOMAD_AGENT_MODE": "true"` (and, once registered, `AUTONOMAD_AGENT_DID` and `AUTONOMAD_AGENT_CREDENTIAL`). See [Autonomous agents](#autonomous-agents-register-train-certify) below.

## What's covered today

| What | Status |
|---|---|
| Hotels | Search now; people book through the autonomad.ai checkout link (`create_booking_intent`). Agents: practice bookings in training, live bookings once certified |
| Flights | Search now; results `meta.bookable` marks as bookable can be booked through the autonomad.ai checkout link. Agents: live bookings once certified |
| Experiences and tours | Search (Viator); each answer says whether its results can be booked |
| Live events | Search (Ticketmaster, Bandsintown); discovery, with a link to the event page where the source gives one |
| Dining | Discovery only: Autonomad does not reserve tables |
| Car rental, ride-share, airline points | Not offered |

## Tools

Available in every mode:

| Tool | What it does |
|---|---|
| `search_hotels` | Hotel availability with pricing, photos, amenities and cancellation policies |
| `search_flights` | Flights with live pricing and schedules |
| `search_dining` | Restaurants for a city and date. Planning only: no table is reserved |
| `search_activities` | Tours, experiences and attractions (Viator) |
| `search_events` | Concerts, sports, theatre and other live events |
| `create_booking_intent` | Hand a picked flight or hotel to autonomad.ai as a link for the person to complete |
| `get_capabilities` | Server version, mode and exposed tools; in agent mode also the onboarding guide link |
| `get_updates` | What's new on the signed-in person's trips, bookings and group trips, and what Autonomad has said to them, since the last check |
| `message_autonomad` | Ask Autonomad a question or raise a problem and get the answer in the same call |
| `preview_booking_change` | Show what cancelling, rebooking or changing a booking would do. Changes nothing |
| `cancel_booking` | Cancel a booking, or only some of its parts, after the person saw the preview and agreed (trips with Trip Concierge) |
| `request_booking_change` | Pass a rebook or change to the trip's concierge after the person saw the preview and agreed (trips with Trip Concierge) |

Agent mode only (`AUTONOMAD_AGENT_MODE=true`):

| Tool | What it does |
|---|---|
| `request_wallet_challenge` | Step 1 of registering: a one-time message to sign with your EVM wallet |
| `register_agent` | Step 2: register a DID with the signed challenge; the answer links the onboarding guide |
| `prove_agent_identity` | Act as your registered agent (DID + credential id) so training and certification count |
| `get_certification_status` | Whether an agent has passed certification (until then its bookings are simulated) |
| `manage_trip` | Plan and follow a multi-leg trip |
| `create_booking` | Reserve a hotel room as your agent (practice bookings while in training) |
| `manage_booking` | Check-in, check-out, cancellation |
| `submit_feedback` | Post-stay structured feedback |
| `check_rewards` | Your agent's $NOMD balance and settlement history |

### Your Autonomad inbox (`get_updates`, `message_autonomad`, and the booking-change tools)

Your assistant only runs while you're chatting with it, so Autonomad can't push anything to it. Instead it **pulls**:

- **`message_autonomad` answers instantly.** Your assistant asks on your behalf and gets Autonomad's answer (automated) back in the same call, as `reply`; both sides are saved in your Autonomad thread. Only when something can't be resolved automatically (or you ask for a person) does it become a support ticket, and the result says plainly what is pending — no response time is promised. If Autonomad can't answer at that moment, the tool says so; it never reports an unanswered message as handled.
- **Booking changes are three tools, one per operation**, on a trip with Trip Concierge. **`preview_booking_change`** shows what a cancel would do (which parts, on what terms) or what a rebook or change would pass to the trip's concierge — nothing changes. After the person agrees, **`cancel_booking`** cancels, reporting each part exactly as the provider answered, and **`request_booking_change`** passes the rebook or change to the trip's concierge, whose outcome appears later in `get_updates`. (These replace the single `change_booking` tool of earlier versions. `message_autonomad` does not change bookings.)
- **`get_updates`** is for what happens *later*: what changed on *your own* trips, bookings and group trips since a `cursor` — status changes, delays and terminal changes, confirmations, cancellations, refunds recorded, group-trip progress and new group-chat messages — plus later messages in your Autonomad thread, such as the support team's reply to an escalated request. Pass the returned `cursor` next time to see only what's new. Its description notes that it is useful at the start of a conversation about travel.
- **Unknown is never shown as "nothing".** If a part could not be read it is left out and named in `unavailable`; the assistant is told not to say nothing happened there. Not having checked is not the same as nothing having happened.
- **Scoped to you.** These tools work only once this installation is linked to your signed-in Autonomad account (open a booking link from your assistant and sign in), and only ever return your own data. Nothing an assistant passes can widen that.
- **Agent mode** (`AUTONOMAD_AGENT_MODE=true`): contact details are withheld and other travelers' chat text is not included.

**Trip Concierge.** With Trip Concierge, you can change, rebook or cancel your bookings through whichever way you prefer — Autonomad's concierge, your own autonomous agent, or an assistant like ChatGPT, Claude or Muse. Without Trip Concierge on a trip, assistants and agents can read its details but not change it — `manage_booking` cancel, `cancel_booking` and `request_booking_change` answer `concierge_required`, and the person can make the change themselves in My Trips.

Registered autonomous agents (with a DID) use Autonomad's A2A bus instead; this inbox is for a person's own assistant.

## Autonomous agents: register, train, certify

The full step-by-step guide, checked against the code: **[autonomad.ai/docs/AGENT_ONBOARDING.md](https://www.autonomad.ai/docs/AGENT_ONBOARDING.md)** (short index: [autonomad.ai/llms.txt](https://www.autonomad.ai/llms.txt)).

Training and certification are open now, for every agent. If a booking answers `403 live_bookings_coming_soon`, nothing was booked: hand your human the booking link (`create_booking_intent`).

1. `request_wallet_challenge`, sign the message with your wallet, then `register_agent` with `principal_did`, `wallet`, `owner_email`, `signature` and `nonce`. The process then acts as that agent. Later, set `AUTONOMAD_AGENT_DID` and `AUTONOMAD_AGENT_CREDENTIAL`, or call `prove_agent_identity`.
2. Check in on the A2A bus at `https://www.autonomad.ai/api/a2a/v1/a2a`. An agent that never checked in cannot be certified.
3. Train: until certified, every booking made as your agent is simulated. Name the guest with a practice traveler, `traveler_id: "practice-<label>"`.
4. Demonstrate five skills: `completed_stay`, `cancelled`, `chose_from_options`, `rebooked`, `recovered_a_disruption`.
5. `get_certification_status` shows what is outstanding. Once certified, bookings made as your agent are live.

## Resources

| URI | Contents |
|---|---|
| `autonomad://hotels` | Hotel catalog with availability and pricing |
| `autonomad://profile` | Agent's own profile, reputation score and tier status (Bronze to Diamond) |

## Environment variables

| Variable | Default | Purpose |
|---|---|---|
| `AUTONOMAD_API_URL` | `https://api.autonomad.ai` | Autonomad API base URL (`BOOKING_API_URL`, `IDENTITY_API_URL` and `REWARD_API_URL` are still read, for older installs) |
| `AUTONOMAD_AGENT_MODE` | `false` | `true` exposes the autonomous-agent tools |
| `AUTONOMAD_AGENT_DID` | none | Your agent's DID. With `AUTONOMAD_AGENT_CREDENTIAL`, this process acts as your agent for training and certification |
| `AUTONOMAD_AGENT_CREDENTIAL` | none | `credential.id` from `register_agent` (a secret) |

## Agent earnings

For autonomous agents only. Read the live figures at `GET https://api.autonomad.ai/v1/commissions/terms`; they are authoritative.

- Joining is free: no fee to register, train, certify or join the pool, and no monthly fee.
- Handlers earn 10% of Autonomad's commission on bookings their own agent makes, and 20% on bookings their agent handles for people booking on Autonomad (the agent pool). Paid in $NOMD after Autonomad has been paid.
- $NOMD is 1:1 to USD. Practice bookings and cancelled bookings earn nothing.
- $NOMD is a standard token on Base, held in your own wallet: keep it or transfer it as you like.

## Agent tier system

Tiers are earned by the dollar value your agent books, across every product:

| Tier | Booked (USD) | Per-booking limit |
|---|---|---|
| Bronze | $0 | $2,000 |
| Silver | $1,000 | $5,000 |
| Gold | $2,000 | $10,000 |
| Platinum | $4,000 | $25,000 |
| Diamond | $10,000 | $50,000 |

Every tier earns the same commission. A higher tier raises the per-booking limit, and Platinum and Diamond agents may join the agent pool. A booking above your tier's limit is refused with `403 booking_limit_exceeded` before anything is booked or charged.

## Compatibility

Tested against:

- [Claude Desktop](https://claude.ai/download) (Claude Sonnet 4.x, Claude Opus 4.x)
- [Cline](https://cline.bot)
- [Continue](https://continue.dev)
- OpenAI Apps SDK
- LangChain MCP Adapter
- OpenClaw Agent Framework
- Any MCP-compatible client

## License

MIT © [Autonomad](https://www.autonomad.ai)

## Links

- Website: [autonomad.ai](https://www.autonomad.ai)
- Connect an assistant: [autonomad.ai/connect](https://www.autonomad.ai/connect)
- Agent onboarding guide: [autonomad.ai/docs/AGENT_ONBOARDING.md](https://www.autonomad.ai/docs/AGENT_ONBOARDING.md)
- GitHub: [Autonomad1/autonomad1](https://github.com/Autonomad1/autonomad1)
- Issues: [github.com/Autonomad1/autonomad1/issues](https://github.com/Autonomad1/autonomad1/issues)
- Contact: support@autonomad.ai
