Skip to main content
Glama
markswendsen-code

@striderlabs/mcp-marriott

README.md
# @striderlabs/mcp-marriott

MCP server for Marriott Hotels — let AI agents search hotels, manage reservations, check in, and interact with the Marriott Bonvoy loyalty program via browser automation.

Built by [Strider Labs](https://striderlabs.ai).

## Overview

This MCP server enables AI agents (Claude, etc.) to:

- Search Marriott properties worldwide
- Browse room types and rates
- Complete hotel bookings
- Manage existing reservations (view, modify, cancel)
- Mobile check-in
- Track Marriott Bonvoy points and tier status
- Redeem Bonvoy points for award stays
- View past stay history

## Tools

| Tool | Description |
|------|-------------|
| `status` | Check login status and Bonvoy session info |
| `login` | Log in to Marriott Bonvoy (auto or manual) |
| `logout` | Clear saved session and cookies |
| `search_hotels` | Search hotels by destination, dates, guests |
| `get_hotel_details` | Get amenities, policies, check-in times |
| `get_room_options` | View available room types and rates |
| `select_room` | Choose a room before checkout |
| `add_extras` | Add parking, breakfast, late checkout, etc. |
| `checkout` | Complete booking (requires explicit confirmation) |
| `get_reservation` | Retrieve existing reservations |
| `modify_reservation` | Change dates or room type |
| `cancel_reservation` | Cancel a booking |
| `check_in` | Mobile check-in with room preferences |
| `get_bonvoy_status` | Points balance, tier, nights to upgrade |
| `redeem_points` | Book award stays with Bonvoy points |
| `get_stay_history` | View past stays and points earned |

## Setup

### 1. Install

```bash
npm install -g @striderlabs/mcp-marriott
```

Or run directly with npx:

```bash
npx @striderlabs/mcp-marriott
```

### 2. Install Playwright browsers

```bash
npx playwright install chromium
```

### 3. Configure credentials (optional)

Set environment variables for automatic login:

```bash
export MARRIOTT_EMAIL="your@email.com"
export MARRIOTT_PASSWORD="yourpassword"
```

Without these, the `login` tool returns a URL for manual browser login.

### 4. Configure Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "marriott": {
      "command": "npx",
      "args": ["@striderlabs/mcp-marriott"],
      "env": {
        "MARRIOTT_EMAIL": "your@email.com",
        "MARRIOTT_PASSWORD": "yourpassword"
      }
    }
  }
}
```

### 5. Configure Cursor / other MCP clients

```json
{
  "mcp": {
    "servers": {
      "marriott": {
        "command": "npx",
        "args": ["@striderlabs/mcp-marriott"],
        "env": {
          "MARRIOTT_EMAIL": "your@email.com",
          "MARRIOTT_PASSWORD": "yourpassword"
        }
      }
    }
  }
}
```

## Usage Examples

### Search hotels

```
Search for Marriott hotels in Tokyo from July 10-15 for 2 adults
```

### Book a room

```
Find me a room at the W Hotel Times Square for next weekend, then book the cheapest option
```

### Check Bonvoy status

```
How many Bonvoy points do I have and what's my current tier?
```

### Redeem points

```
Use my Bonvoy points to book a standard room at the Marriott Marquis in NYC for March 20-22
```

### Manage a reservation

```
Show me my upcoming reservations and cancel the one in Chicago
```

## Session Management

Cookies are saved to `~/.striderlabs/marriott/` so sessions persist between runs. To log out:

```
Use the logout tool
```

Or delete the directory:

```bash
rm -rf ~/.striderlabs/marriott/
```

## Safety & Confirmations

**Destructive actions require explicit confirmation:**

- `checkout` — requires `confirm: true`
- `modify_reservation` — requires `confirm: true`
- `cancel_reservation` — requires `confirm: true`
- `redeem_points` — requires `confirm: true`

Without `confirm: true`, these tools return a **preview** of what would happen, giving users a chance to review before committing.

## Development

```bash
git clone https://github.com/markswendsen-code/mcp-marriott
cd mcp-marriott
npm install
npm run build
node dist/index.js
```

## Environment Variables

| Variable | Description |
|----------|-------------|
| `MARRIOTT_EMAIL` | Marriott Bonvoy account email |
| `MARRIOTT_PASSWORD` | Marriott Bonvoy account password |

## License

MIT — [Strider Labs](https://striderlabs.ai)

TDQS

A4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct action (login, search, select, checkout, etc.) with clear boundaries. No two tools overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., search_hotels, get_hotel_details, cancel_reservation). Single-word tools like status and login fit the verb style.

Tool Count4/5

16 tools cover a comprehensive hotel booking workflow from login to check-in and loyalty management. Slightly above the typical 3-15 range, but still well-scoped and each tool earns its place.

Completeness4/5

Covers authentication, search, details, room selection, extras, booking, modifications, cancellations, check-in, and loyalty. Minor gaps like viewing account profile, but core booking lifecycle is complete.

Maintenance

ActivityInactive
ResponsivenessNo issues