浏览器

tripadvisor-api

试用

Query TripAdvisor location data (search, nearby, details, photos, reviews) straight from a shell with curl against the Terra REST API (terra.tripadvisor.com), instead of running the tripadvisor-mcp server — plus a no-API-key fallback that reads a location's public page through the fpx browser bridge. Use when you want TripAdvisor data without the MCP, in a script, or on a machine where the MCP isn't installed. Triggers on "check TripAdvisor", "TripAdvisor location/restaurant/hotel/attraction search, details, photos, reviews", or any TripAdvisor data request that should hit the API directly.

它能做什么

Query TripAdvisor location data (search, nearby, details, photos, reviews) straight from a shell with curl against the Terra REST API (terra.tripadvisor.com), instead of running the tripadvisor-mcp server — plus a no-API-key fallback that reads a location's public page through the fpx browser bridge. Use when you want TripAdvisor data without the MCP, in a script, or on a machine where the MCP isn't installed. Triggers on "check TripAdvisor", "TripAdvisor location/restaurant/hotel/attraction search, details, photos, reviews", or any TripAdvisor data request that should hit the API directly.

技能文档

TripAdvisor Terra API via curl (no MCP)

TripAdvisor's Terra API (terra.tripadvisor.com/api) is a plain API-key REST API reachable directly from a server or shell — no browser bridge needed. This skill shells out to curl with the key in an X-API-Key header, exactly as tripadvisor-mcp's src/client.ts does. Terra is the current API (the legacy Content API sunsets 2026-08-31); it has no write endpoints — everything here is a read.

A second, smaller tier at the bottom covers the one thing Terra can't do without a key: reading a location's core details from the public consumer page via the fpx browser bridge.

One-time setup: get a Terra key

# Prefer the env var tripadvisor-mcp itself reads (check its .env first):
grep -h TRIPADVISOR_API_KEY ~/git/tripadvisor-mcp/.env 2>/dev/null
export TRIPADVISOR_API_KEY='...'

If you don't have one: create a free Discover-tier key at https://www.tripadvisor.com/developers (pay-as-you-go, 10 QPS / 10,000 calls/day). A legacy Content API key does NOT work here (and vice versa) — a mismatched key gets a 403.

Core call pattern

BASE=https://terra.tripadvisor.com/api

curl -sS "$BASE/locations/search?query=Golden%20Gate%20Bridge" \
  -H "X-API-Key: $TRIPADVISOR_API_KEY" -H 'accept: application/json' \
  | jq '.data[].location | {id, name: (.names[] | select(.primary) | .value)}'

Every call needs just the two headers above — no session/cookie, no mutual TLS. Ready-to-run recipes for all 6 endpoints are in references/terra-endpoints.md.

The one rule: resolve a location id first

Details/photos/reviews are keyed by numeric location_id — get one from ta_search_locations's equivalent, GET /locations/search, before calling the id-scoped endpoints:

curl -sS "$BASE/locations/search?query=Golden+Gate+Bridge" \
  -H "X-API-Key: $TRIPADVISOR_API_KEY" | jq -r '.data[].location.id'
# 104675

Response shapes (quick reference)

  • List endpoints (search, nearby, reviews, photos) wrap results: {"data": [...], "pagination": {"page","size","total_pages","total_elements"}}.
  • GET /locations (batch) and GET /locations/{id} (details) do not wrap in pagination — batch returns {"data": [...]}, details returns the location object directly.
  • A location object keys names/descriptions/addresses as arrays tagged by language — the primary entry has "primary": true (jq '.names[] | select(.primary) | .value'), not a flat name field.

Full field lists and all 6 curl+jq recipes: references/terra-endpoints.md.

Output / error contract

  • A 2xx body is JSON; pipe to jq.
  • 400 — validation error; body is {type, title, status, detail, field_errors: [{field, message}], trace_id}detail/field_errors name the bad param.
  • 401/403 — key missing, invalid, or the wrong API family (legacy key on Terra, or vice versa).
  • 404 — unknown id, or a typo'd path (/locations/{id} is plural; the singular form 404s).
  • 429 — QPS (10) or daily quota (10,000) exceeded on the Discover tier; back off and retry (the response may carry Retry-After).

Fallback tier: no API key (fpx browser bridge)

TripAdvisor's consumer site (www.tripadvisor.com) is DataDome-walled, so it can't be curled directly — but a location's public detail page is plain server-rendered HTML with a clean application/ld+json block (name, rating, review count, address, phone, coordinates), reachable with no API key by routing the fetch through your own signed-in browser tab via fpx (@fetchproxy/cli). Use this when you don't have (or don't want to use) a Terra key, or ta_get_location_details is blocked.

npm install -g @fetchproxy/cli                      # provides `fpx`
fpx profile add tripadvisor --domain tripadvisor.com # fetch capability only
fpx pair -p tripadvisor                              # prints a pair code → approve in Transporter

Requires the Transporter extension with an open www.tripadvisor.com tab. This covers attractions, hotels, and restaurants — it does not return individual review text (only the aggregate rating/count). Fetch + parse recipe: references/web-fallback.md.

fpx exit codes (fetch verbs)

  • 0 — success.
  • 2 — bridge unavailable: extension not connected / pairing pending → fpx pair -p tripadvisor.
  • 3 — bot wall: the tab hasn't cleared DataDome → open/refresh a www.tripadvisor.com tab and retry.
  • 4 — upstream non-2xx from TripAdvisor.

Notes

  • Terra reads only — nothing here mutates TripAdvisor data.
  • This project (tripadvisor-mcp) is developed and maintained by AI (Claude Code).

相关技能

TripAdvisor travel data via the Terra API through MCP. Use when the user asks to find hotels, restaurants, or attractions, look up a place's TripAdvisor rati...

1 次安装

Resolve any place or business name to Tripadvisor ids, then pull ranked restaurants, hotels and attractions in a geo, one location in full, and paged review bodies. 4 endpoints, 2 credits each, structured JSON.

Search Viator tours, activities and experiences via MCP. Use when the user asks to find tours, activities, excursions, day trips, tickets, or "things to do" in a city or destination, get details/pricing/availability for a Viator product, list attractions in a destination, or convert supplier-currency prices. Triggers on phrases like "things to do in Rome", "find a food tour in Paris", "is this tour available in September", "Viator", "book an excursion" (search only — no booking), or "skip-the-line Colosseum tickets". Requires the @chrischall/viator-mcp package installed and the viator server registered (see Setup), plus a Viator Partner API key (free Basic Access affiliate tier).

2 次安装

This skill should be used when the user asks about GetYourGuide tours, activities, or attraction tickets. Triggers on phrases like "find tours on GetYourGuide", "things to do in Paris", "skip-the-line tickets", "GetYourGuide reviews", "book an activity", or any request involving searching tours, activities, day trips, or attraction tickets.

1 次安装

Researches hotels, flights, attractions, short-term rentals, and live events via the Crawlora API — Booking.com, Expedia, Agoda, TripAdvisor, Trip.com, Airbnb, and Ticketmaster — returning clean JSON. Use when the user wants to search or compare hotel/stay prices and reviews, look up flight options, find attractions/things-to-do or concerts/events, or research an Airbnb host or listing.

1 次安装