Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Google Hotels prices, ratings, reviews, and photos via an Apify Actor, hosted MCP.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.apify.com/?tools=johnvc/google-hotels-search-scraperRun this in your terminal
claude mcp add --transport http google-hotels 'https://mcp.apify.com/?tools=johnvc/google-hotels-search-scraper'Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"google-hotels": {
"url": "https://mcp.apify.com/?tools=johnvc/google-hotels-search-scraper"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"google-hotels": {
"type": "http",
"url": "https://mcp.apify.com/?tools=johnvc/google-hotels-search-scraper"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.apify.com/?tools=johnvc/google-hotels-search-scraperMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account johnisanerd, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, SwarmMemo
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Talk with agent swarms: rooms, private messages and paid tasks for AI agents
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The most efficient, reliable, and developer-friendly way to use the Google Hotels API.
Actor page: apify.com/johnvc/google-hotels-search-scraper Input schema: apify.com/johnvc/google-hotels-search-scraper/input-schema
The Google Hotels API searches Google Hotels and returns clean, structured JSON: hotel and vacation-rental listings with nightly and total prices, deals, star class and property type, ratings and review counts, amenities, images, descriptions, addresses and GPS coordinates, and check-in/check-out times. Search by location query or fetch one property by token. Supports advanced filters, vacation rentals, localization (country, language, currency), and multi-page pagination.
New: three additional modes via the search_type input - autocomplete (destination and hotel name suggestions with property tokens), photos (a property's full photo gallery), and reviews (paginated guest reviews with ratings, text, and sources). Each has its own runnable example script in this repo.
git clone https://github.com/johnisanerd/Apify-Google-Hotels-API.git
cd Apify-Google-Hotels-API
# Install UV if you do not have it:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
cp .env.example .env
uv run python google-hotels-api.py # hotel search (the classic quick start)
uv run python google-hotels-autocomplete.py # destination + hotel name suggestions uv run python google-hotels-photos.py # full photo gallery for one hotel uv run python google-hotels-reviews.py # guest reviews for one hotel
export APIFY_API_TOKEN="your_api_key_here"
uv run python google-hotels-api.py
Rich property data. Each result includes nightly and total prices, deals, ratings and review counts, amenities, images, descriptions, GPS coordinates, and check-in/check-out times, so you can compare properties directly.
Four retrieval modes. Search by a location query, fetch full details for one property by property_token, resolve partial queries into destinations and hotels with autocomplete, or pull a property's complete photo gallery and guest reviews.
Powerful filters. Constrain by price range, star class, guest rating, amenities, and property type, and switch to vacation rentals with bedroom and bathroom filters.
Predictable, pay-per-use pricing. Per run plus per page processed, with no subscription. You control cost with the page limit.
Easy to automate. Call it from Python in a few lines, or load it as an MCP tool so assistants like Claude and Cursor can search hotels for you on demand.
{
"q": "hotels in Paris", "check_in_date": "2026-06-29", "check_out_date": "2026-07-01", "adults": 2, "max_pages": 1 }
{
"q": "hotels in New York", "check_in_date": "2026-06-29", "check_out_date": "2026-07-01", "adults": 2, "min_price": "100", "max_price": "300", "hotel_class": "4,5", "currency": "USD", "max_pages": 1 }
{
"q": "vacation rentals in Miami", "check_in_date": "2026-06-29", "check_out_date": "2026-07-03", "adults": 4, "vacation_rentals": true, "bedrooms": 2, "bathrooms": 2, "max_pages": 1 }
google-hotels-autocomplete.py){
"search_type": "autocomplete", "q": "hotels in par", "gl": "us", "hl": "en" }
Returns one dataset item per suggestion. Suggestions for specific hotels include a `property_token` you can chain into photos, reviews, or property details.
google-hotels-photos.py){
"search_type": "photos", "property_token": "ChUIksaK9_ij5_kYGgkvbS8wNjJ3YzIQAQ", "max_pages": 1 }
Returns one dataset item per photo (typically 100-200 per property) with `photo_url`, `thumbnail_url`, dimensions, gallery section, and source.
google-hotels-reviews.py){
"search_type": "reviews", "property_token": "ChUIksaK9_ij5_kYGgkvbS8wNjJ3YzIQAQ", "reviews_sort_by": "2", "max_pages": 2 }
Returns one dataset item per review with rating, text, date, source platform, reviewer details, and the hotel's response when one exists. Sort with `reviews_sort_by`: `"1"` most helpful, `"2"` most recent, `"3"` highest score, `"4"` lowest score.
Either q (search query) or property_token is required.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
search_type | string | No | search | search, autocomplete, photos, or reviews. |
q | string | Yes* | - | Search query, e.g. hotels in Paris. Required for search (unless property_token is set) and autocomplete. |
property_token | string | Yes* | - | Token for a single property (from a prior result or autocomplete). Required for photos and reviews; returns detailed property info in search mode. |
gl | string | No | us | Country code (ISO 3166-1 alpha-2). |
hl | string | No | en | Language code (ISO 639-1). |
currency | string | No | (by country) | Currency code (ISO 4217), e.g. USD, EUR. |
check_in_date | string | No | - | Check-in date, YYYY-MM-DD (recommended with a query). |
check_out_date | string | No | - | Check-out date, YYYY-MM-DD. |
adults | integer | No | 2 | Number of adult guests. |
children | integer | No | 0 | Number of child guests (children_ages required if > 0). |
min_price / max_price | string | No | 0.00 | Price range filter in the chosen currency. |
stars | string | No | - | Comma-separated star ratings, e.g. 4,5. |
hotel_class | string | No | - | Comma-separated class levels 2-5. |
guest_rating | string | No | 0.0 | Minimum guest rating (0.0 to 5.0). |
vacation_rentals | boolean | No | false | Include vacation rentals (enables bedrooms/bathrooms). |
reviews_sort_by | string | No | 1 | Reviews order: 1 most helpful, 2 most recent, 3 highest score, 4 lowest score. |
reviews_category_token | string | No | - | Filter reviews by a category token from a property's reviews breakdown. |
max_pages | integer | No | 1 | Maximum pages to fetch (0 = no limit). Applies to search, photos, and reviews. |
output_file | string | No | - | Optional filename to save results. |
Additional filters (amenities, property_type, rental_type) accept Google's integer IDs; see the Actor page for the full reference.
A real result for hotels in Paris (one item per page; the properties array is trimmed to one entry for readability).
{
"search_parameters": { "q": "hotels in Paris", "gl": "us", "hl": "en", "currency": "USD", "check_in_date": "2026-06-29", "check_out_date": "2026-07-01", "adults": 2, "max_pages": 1 }, "search_metadata": { "total_results": 15000, "properties_count": 20, "ads_count": 0, "pages_processed": 1, "max_pages_set": 1, "pagination_limit_reached": true }, "page_number": 1, "properties": [ { "type": "hotel", "name": "The Originals Boutique, Hôtel Maison Montmartre, Paris", "description": "Hip hotel featuring a sophisticated restaurant & a cool rooftop eatery/bar with a terrace.", "link": "https://www.hotelmaisonmontmartre.com/", "property_token": "ChoI_uTZsvz1i6-bARoNL2cvMTFmZHB6eDEwMxAB", "gps_coordinates": { "latitude": 48.900537, "longitude": 2.336269 }, "check_in_time": "3:00 PM", "check_out_time": "12:00 PM", "rate_per_night": { "lowest": "$144", "extracted_lowest": 144, "before_taxes_fees": "$120" }, "total_rate": { "lowest": "$287", "extracted_lowest": 287 } } ], "ads": [], "filters": [], "refine_by": [] }
Available as an n8n community node, [n8n-nodes-google-hotels-api](https://www.npmjs.com/package/n8n-nodes-google-hotels-api). In n8n: Settings, Community Nodes, install n8n-nodes-google-hotels-api, then use it in any workflow (it also works as an AI Agent tool). Version 0.2.0 adds Get Autocomplete Suggestions, Get Photos, and Get Reviews operations.
You can load the Google Hotels API as an MCP tool so assistants call it for you. The MCP server URL preloads just this one Actor:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-hotels-search-scraper
Authenticate with OAuth in the browser when offered, or with your Apify API token (the same APIFY_API_TOKEN used by the Python example). Get a token at https://console.apify.com/settings/integrations and a free Apify account at https://apify.com?fpr=9n7kx3 .
Cowork is the desktop app's automation mode. To give it the Google Hotels API as a tool, add the Apify MCP server as a connector.
claude_desktop_config.json directly).~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": { "apify": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.apify.com/?tools=actors,docs,johnvc/google-hotels-search-scraper" ] } } }
Download the desktop app and start a free trial: https://claude.ai/referral/uIlpa7nPLg More help: https://docs.apify.com/platform/integrations/claude-desktop
![Install in Claude Code](https:/
Only the beginning is shown; read the rest in the repo