Skip to main content
Glama
soren-olympus

Amadeus Hotel API MCP Server

README.md
# Amadeus Hotel API MCP Server

This Model Context Protocol (MCP) server provides a bridge to Amadeus Hotel APIs, allowing AI assistants to search for and book hotels through the Amadeus Travel API.

## Features

- Search for hotels in a specific city
- Get detailed hotel offers with pricing and availability
- View specific hotel offer details
- Book hotel rooms with guest and payment information

## Setup

Set the required environment variables before running the server:

```sh
export AMADEUS_API_KEY=your_amadeus_api_key
export AMADEUS_API_SECRET=your_amadeus_api_secret
```

## Available Tools

### Hotel List Tool
- **Name**: `amadeus_hotel_list`
- **Description**: Search for hotels in a specific city with optional filters (amenities, star rating, hotel name)
- **Example**: `amadeus_hotel_list({"cityCode": "PAR", "ratings": [4, 5]})`

### Hotel Search Tool
- **Name**: `amadeus_hotel_search`
- **Description**: Search for hotel offers with pricing for specific dates
- **Example**: `amadeus_hotel_search({"cityCode": "PAR", "checkInDate": "2025-04-01", "checkOutDate": "2025-04-05", "adults": 2})`

### Hotel Offer Tool
- **Name**: `amadeus_hotel_offer`
- **Description**: Get detailed information about a specific hotel offer
- **Example**: `amadeus_hotel_offer({"offerId": "XYZ123"})`

### Hotel Booking Tool
- **Name**: `amadeus_hotel_booking`
- **Description**: Book a hotel offer for specified guests
- **Example**: 
```
amadeus_hotel_booking({
  "offerId": "XYZ123",
  "guests": [
    {
      "name": {
        "title": "MR",
        "firstName": "John",
        "lastName": "Doe"
      },
      "contact": {
        "email": "john.doe@example.com",
        "phone": "+1234567890"
      }
    }
  ],
  "payments": [
    {
      "method": "CREDIT_CARD",
      "card": {
        "vendorCode": "VI",
        "cardNumber": "4111111111111111",
        "expiryDate": "2025-12"
      }
    }
  ]
})
```

## Usage

### Building and Running

```sh
npm install
npm run build
node dist/index.js
```

### Integration with Claude Desktop

To use this MCP server with Claude Desktop, update your configuration file:

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "amadeus-hotel": {
      "command": "node",
      "args": ["/path/to/amadeus-travel/dist/index.js"],
      "env": {
        "AMADEUS_API_KEY": "your_amadeus_api_key",
        "AMADEUS_API_SECRET": "your_amadeus_api_secret"
      }
    }
  }
}
```

## API Documentation

This server integrates with the following Amadeus APIs:

- Hotel List API (`/v1/reference-data/locations/hotels`) - For listing hotels in a location
- Hotel Search API (`/v2/shopping/hotel-offers`) - For finding hotel availability and pricing
- Hotel Offer API (`/v2/shopping/hotel-offers/{offerId}`) - For getting details about a specific offer
- Hotel Booking API (`/v1/booking/hotel-bookings`) - For booking hotel rooms

For more information, refer to the [Amadeus API documentation](https://developers.amadeus.com/self-service/category/hotel).

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: listing hotels, searching offers, getting offer details, and booking. There is no overlap between their functionalities.

Naming Consistency4/5

All tools share the 'amadeus_hotel_' prefix and follow a verb/noun pattern, but 'offer' and 'booking' are nouns whereas 'list' and 'search' are verbs, causing slight inconsistency.

Tool Count4/5

With 4 tools, the server covers the essential booking flow but is on the lower side. It is reasonable for a focused API but could benefit from a few more tools.

Completeness3/5

The set covers listing, searching, detailing, and booking hotels, but lacks essential post-booking operations like cancellation or modification, leaving notable gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues