Skip to main content
Glama
README.md
# @striderlabs/mcp-ihg

MCP server connector for IHG Hotels (InterContinental, Holiday Inn, Kimpton, Crowne Plaza, and more) using Playwright browser automation.

## Installation

```bash
npm install -g @striderlabs/mcp-ihg
npx playwright install chromium
```

Or install from source:

```bash
git clone https://github.com/markswendsen-code/mcp-ihg
cd mcp-ihg
npm install
npm run build
npx playwright install chromium
```

## Claude Desktop Configuration

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

```json
{
  "mcpServers": {
    "ihg": {
      "command": "striderlabs-mcp-ihg"
    }
  }
}
```

Or with npx:

```json
{
  "mcpServers": {
    "ihg": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-ihg"]
    }
  }
}
```

## Tools

### Authentication

#### `ihg_login`
Log in to your IHG One Rewards account. Required before booking, viewing reservations, or accessing rewards.

```json
{
  "email": "your@email.com",
  "password": "yourpassword"
}
```

### Hotel Search

#### `ihg_search_hotels`
Search for available hotels by location and dates.

```json
{
  "location": "Chicago, IL",
  "check_in": "2025-06-15",
  "check_out": "2025-06-18",
  "guests": 2,
  "brand": "Holiday Inn"
}
```

**Supported brands:** InterContinental, Kimpton, Hotel Indigo, Crowne Plaza, voco, Holiday Inn, Holiday Inn Express, Candlewood Suites, Staybridge Suites, avid, Even Hotels

Returns: List of hotels with ID, name, brand, address, star rating, and lowest nightly rate.

#### `ihg_get_hotel_details`
Get full details for a specific hotel.

```json
{
  "hotel_id": "ORDHA"
}
```

Returns: Amenities, policies, check-in/out times, contact info, images.

#### `ihg_get_room_rates`
Get available room types and rates for specific dates.

```json
{
  "hotel_id": "ORDHA",
  "check_in": "2025-06-15",
  "check_out": "2025-06-18"
}
```

Returns: Room types with rates, refundability, breakfast inclusion, and points earning.

### Reservations

#### `ihg_book_room`
Book a hotel room (requires login).

```json
{
  "hotel_id": "ORDHA",
  "room_type": "King Standard",
  "check_in": "2025-06-15",
  "check_out": "2025-06-18",
  "guest_info": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john@example.com",
    "phone": "+1-555-0100",
    "cardNumber": "4111111111111111",
    "cardExpiry": "12/27",
    "cardCvv": "123",
    "specialRequests": "High floor please"
  }
}
```

Returns: Confirmation number and booking details.

#### `ihg_get_reservations`
Get all upcoming reservations (requires login).

Returns: List of reservations with dates, hotel, and status.

#### `ihg_get_reservation_details`
Get full details for a reservation (requires login).

```json
{
  "confirmation_number": "12345678"
}
```

#### `ihg_cancel_reservation`
Cancel a reservation (requires login).

```json
{
  "confirmation_number": "12345678"
}
```

#### `ihg_modify_reservation`
Modify dates or details of a reservation (requires login).

```json
{
  "confirmation_number": "12345678",
  "changes": {
    "check_in": "2025-06-16",
    "check_out": "2025-06-19",
    "special_requests": "Early check-in requested"
  }
}
```

### IHG One Rewards

#### `ihg_get_rewards_balance`
Get current points balance and tier status (requires login).

Returns: Points balance, tier, expiration info, nights to next tier.

#### `ihg_get_rewards_history`
Get points transaction history (requires login).

Returns: List of points earned/redeemed with dates and descriptions.

#### `ihg_redeem_points`
Check points redemption options for a stay (requires login).

```json
{
  "hotel_id": "ORDHA",
  "check_in": "2025-06-15",
  "check_out": "2025-06-18"
}
```

Returns: Points required and available redemption options.

## Environment Variables

| Variable | Description |
|----------|-------------|
| `IHG_HEADLESS` | Set to `false` to show browser window (default: `true`) |

## How It Works

This MCP server uses Playwright to automate a Chromium browser session on the IHG website. It:

1. Maintains a persistent browser session across tool calls
2. Handles login state so you only need to authenticate once
3. Navigates the IHG website to perform searches, bookings, and account management
4. Returns structured JSON data for all operations

## Supported IHG Brands

- InterContinental Hotels & Resorts
- Kimpton Hotels & Restaurants
- Hotel Indigo
- Crowne Plaza
- voco Hotels
- Holiday Inn
- Holiday Inn Express
- Holiday Inn Club Vacations
- Candlewood Suites
- Staybridge Suites
- avid Hotels
- Even Hotels
- Regent Hotels & Resorts
- Six Senses Hotels Resorts Spas
- HUALUXE Hotels & Resorts

## Requirements

- Node.js 18+
- Playwright Chromium (`npx playwright install chromium`)
- An IHG One Rewards account (free to create at ihg.com)

## License

MIT

TDQS

A3.9/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct action: login, hotel search, hotel details, room rates, booking, reservation management, and rewards. Even similar tools like get_reservations vs get_reservation_details are clearly separate list vs detail operations.

Naming Consistency5/5

All tool names follow a consistent 'ihg_<verb>_<noun>' pattern using snake_case. Verbs are clear and consistent (get, search, book, cancel, modify, redeem), making the API predictable.

Tool Count5/5

The 12 tools are well-scoped for the IHG hotel booking and rewards domain. Each tool covers a necessary function without redundancy, and the count is within the ideal 3-15 range.

Completeness5/5

The tool set covers the full lifecycle: authentication, hotel search/details/rates, booking, reservation retrieval/modification/cancellation, and rewards balance/history/redemption. No obvious gaps for the intended domain.

Maintenance

ActivityInactive
ResponsivenessNo issues