mcpField
S
serpapi-hotels

serpapi-hotels

Local
github.com/pulsemcpMaps & Travel81Updated 8w ago

About serpapi-hotels

SerpAPI Hotels is an MCP server that searches Google Hotels through the SerpAPI service, returning prices, ratings, and reviews for a given area and date range. It suits users comparing hotel options or researching accommodation.

Key features

  1. 01Filter hotels by price, rating, star class, and amenities
  2. 02Hotel details with prices from multiple booking sources
  3. 03Guest reviews with sub-ratings and management responses
  4. 04Sorting by lowest price, highest rating, or review count
  5. 05Vacation rental search option

Use cases

  1. 01Comparing hotel prices in a city for specific dates
  2. 02Reading guest reviews and category scores for one hotel
  3. 03Filtering hotels that offer free cancellation

MCP support

This project is an MCP server that provides search_hotels, get_hotel_details, and get_hotel_reviews tools to MCP clients. It requires a SerpAPI API key.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"com-pulsemcp-serpapi-hotels": {
"command": "npx",
"args": [
"-y",
"serpapi-hotels-mcp-server"
],
"env": {
"SERPAPI_API_KEY": "<SERPAPI_API_KEY>"
}
}
}
}
Run commandnpx -y serpapi-hotels-mcp-server
Environment variables to set
SERPAPI_API_KEYSecretYour SerpAPI API key for hotel search access.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmserpapi-hotels-mcp-server0.0.4

Tools

3

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
glstringNoCountry code for localization (e.g., "us")
hlstringNoLanguage code (e.g., "en")
querystringYesHotel search query (e.g., "Hotels in New York", "Beach resorts in Cancun")
adultsnumberNoNumber of adult guests (default: 2)
ratingnumberNoMinimum rating: 7 = 3.5+, 8 = 4.0+, 9 = 4.5+
sort_bynumberNoSort: 3 = lowest price, 8 = highest rating, 13 = most reviewed
childrennumberNoNumber of children (default: 0)
currencystringNoCurrency code (default: USD)
max_pricenumberNoMaximum price per night
min_pricenumberNoMinimum price per night
hotel_classstringNoStar rating filter, comma-separated (e.g., "4,5")
check_in_datestringYesCheck-in date in YYYY-MM-DD format
children_agesstringNoComma-separated children ages, 1-17 (e.g., "5,8,12")
eco_certifiedbooleanNoFilter for eco-certified hotels
check_out_datestringYesCheck-out date in YYYY-MM-DD format
special_offersbooleanNoFilter for special offers
next_page_tokenstringNoPagination token for next page
vacation_rentalsbooleanNoSearch for vacation rentals instead of hotels
free_cancellationbooleanNoFilter for free cancellation

Details

From the project README

SerpAPI Hotels MCP Server

An MCP server for searching Google Hotels via the SerpAPI API. Search for hotels in any area with date ranges, and get back prices, ratings, reviews, and booking information.

Tools

ToolDescription
search_hotelsSearch for hotels with filters for price, rating, star class, amenities, and more
get_hotel_detailsGet detailed info for a specific hotel including review breakdowns and booking prices from multiple sources
get_hotel_reviewsGet individual guest reviews with full text, ratings, sub-ratings, and hotel management responses

Quick Start

Claude Desktop

Add this to your Claude Desktop config file:

{
  "mcpServers": {
    "serpapi-hotels": {
      "command": "npx",
      "args": ["-y", "serpapi-hotels-mcp-server"],
      "env": {
        "SERPAPI_API_KEY": "your_api_key_here"
      }
    }
  }
}
Manual Setup
# Clone and install
cd experimental/serpapi-hotels
npm run install-all

# Set your API key
export SERPAPI_API_KEY=your_api_key_here

# Build and run
npm run build
cd local && npm start

Configuration

VariableRequiredDescription
SERPAPI_API_KEYYesYour SerpAPI API key (get one here)

Example Usage

Search for hotels
Search for hotels in New York for March 1-5, 2026, sorted by lowest price

The search_hotels tool will be called with:

  • query: "Hotels in New York"
  • check_in_date: "2026-03-01"
  • check_out_date: "2026-03-05"
  • sort_by: 3
Get hotel details

After finding a hotel, use get_hotel_details with its property_token to get:

  • Prices from multiple booking sources (Booking.com, Hotels.com, Expedia, etc.)
  • Review breakdown by category (cleanliness, location, service)
  • Full amenity list
  • Check-in/out times
  • Nearby places with travel times
Read hotel reviews

After finding a hotel, use get_hotel_reviews with its property_token to get:

  • Full review text from Google and third-party sources (TripAdvisor, etc.)
  • Reviewer ratings with sub-ratings (rooms, service, location)
  • Hotel management responses
  • Sorting by most helpful, most recent, highest/lowest score
  • Category filtering (from get_hotel_details review breakdown)

Available Filters

FilterValues
sort_by3 = lowest price, 8 = highest rating, 13 = most reviewed
rating7 = 3.5+, 8 = 4.0+, 9 = 4.5+
hotel_class"2", "3", "4", "5" (star rating, comma-separated)
min_price / max_pricePrice range per night
free_cancellationtrue/false
special_offerstrue/false
eco_certifiedtrue/false
vacation_rentalstrue = search vacation rentals instead

Development

npm run install-all    # Install all dependencies
npm run build          # Build the project
npm run dev            # Development mode
npm test               # Run functional tests
npm run test:integration  # Run integration tests
npm run test:manual    # Run manual tests (requires API key)

Project Structure

serpapi-hotels/
├── local/              # Stdio transport entry point
│   └── src/
│       ├── index.ts                      # Main entry point
│       └── index.integration-with-mock.ts # Mock entry for integration tests
├── shared/             # Core business logic
│   └── src/
│       ├── server.ts         # MCP server factory
│       ├── tools.ts          # Tool registration
│       ├── resources.ts      # Resource handlers
│       ├── types.ts          # TypeScript types
│       ├── logging.ts        # Logging utilities
│       ├── tools/            # Individual tool implementations
│       │   ├── search-hotels.ts
│       │   ├── get-hotel-details.ts
│       │   └── get-hotel-reviews.ts
│       └── serpapi-client/   # SerpAPI client
│           ├── serpapi-client.integration-mock.ts
│           └── lib/
│               ├── parse-property.ts
│               ├── search-hotels.ts
│               ├── get-hotel-details.ts
│               └── get-hotel-reviews.ts
└── tests/
    ├── functional/       # Unit tests with mocks
    ├── integration/      # Full MCP protocol tests
    ├── manual/           # Real API tests
    └── mocks/            # Mock implementations

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.