About tripadvisor-mcp
tripadvisor-mcp is an MCP server for accessing TripAdvisor travel listings through the Terra API. It supports searching and retrieving location details, photos, and reviews, with an optional browser bridge for keyless public-page details.
Key features
- 01Search by name or geographic area
- 02Retrieve full location details
- 03Fetch photos and traveler reviews
- 04Batch-fetch multiple location records
- 05Optional browser-bridge lookup without an API key
Use cases
- 01Find hotels, restaurants, or attractions in an area
- 02Check ratings and addresses before a trip
- 03Review photos and traveler feedback
- 04Look up public listing details without a Terra key
MCP support
Exposes read-only TripAdvisor search and location-data tools to MCP clients. Terra tools require a Terra API key; optional web tools use a paired ContextMint Bridge browser extension.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @chrischall/tripadvisor-mcpTRIPADVISOR_API_KEYSecretYour TripAdvisor Terra API key (tripadvisor.com/developers). Needed by the Terra tools; the ta_web_* tools work without it.TRIPADVISOR_CACHE_TTLSeconds to cache search responses (default: 300; `0` disables).TRIPADVISOR_STATIC_CACHE_TTLSeconds to cache details/photos/reviews (default: 3600; `0` disables).TRIPADVISOR_REQUEST_TIMEOUT_MSPer-request timeout for the optional browser bridge (default: 30000).TRIPADVISOR_DEBUG_LOGSet to `1` to log browser-bridge requests to stderr.TRIPADVISOR_WS_PORTBridge port override (default: FETCHPROXY_WS_PORT, else 37149). Tests only.FETCHPROXY_WS_PORTLocalhost concentrator port (default 37149). On one machine every MCP shares the concentrator, so move it for ALL of them or not at all.FETCHPROXY_WS_HOSTBind interface (default 127.0.0.1; a literal IP only, anything else is ignored). Keep on loopback — it exists for ONE topology: a hosted child in its own network namespace.FETCHPROXY_IDENTITY_DIRWhere to store the long-term identity keypair (default ~/.fetchproxy/identity/; an absolute path only, anything else is ignored). Exists for a host that runs a separate child per caller, so they can share one identity.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
8Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page index (1-based) |
| size | integer | No | Results per page (max 20) |
| view | enum | No | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the slim projection where one exists and strips image URLs elsewhere; "full" returns TripAdvisor's whole records.compact | full |
| query | string | Yes | Text to search location names for |
| locale | array | No | Preferred locales for localized fields, in priority order (e.g. ["en","es"]) |
| category | enum | No | Restrict to one categoryRESTAURANT | ATTRACTION | HOTEL |
| geo_name | string | No | City, town, or country name to scope the search |
| postal_code | string | No | Postal/ZIP code (takes precedence over geo_name) |
| country_code | string | No | Alpha-2 country code (e.g. "US") |
Details
From the project READMEtripadvisor-mcp
MCP server for the TripAdvisor Terra API — travel data for Claude. Search hotels, restaurants, and attractions by name or coordinates, then pull full details, photos, and reviews, all over stdio. (Terra is TripAdvisor's current API; the legacy Content API is sunset on 2026-08-31.)
Developed and maintained by AI (Claude Code). Use at your own discretion.
Quick start
{
"mcpServers": {
"tripadvisor": {
"command": "npx",
"args": ["-y", "@chrischall/tripadvisor-mcp"],
"env": { "TRIPADVISOR_API_KEY": "your-terra-api-key-here" }
}
}
}
Get a key at tripadvisor.com/developers. The free Discover tier is pay-as-you-go (10 QPS, 10,000 calls/day); responses are cached in-memory to stretch it. Make sure it's a Terra key — a legacy Content API key returns 403.
Tools
| Tool | What it does |
|---|---|
ta_search_locations | Search locations by name (optionally scoped by category, country/geo/postal code) — paginated; compact:true for slim summaries |
ta_search_nearby | Find locations near a lat/lon+radius, a location_id+radius, or inside a sw/ne bounding box (category, min rating, sort) — compact:true supported |
ta_get_location_details | Full details: names, descriptions, address, coordinates, traveler ratings, phone, listing URLs |
ta_get_locations | Batch — details for multiple location ids in one call (cheaper than N detail calls); compact:true supported |
ta_get_location_photos | Photos with multi-size image URLs, source, and dimensions — paginated |
ta_get_location_reviews | Traveler reviews — paginated |
ta_web_healthcheck | Diagnose the optional tripadvisor.com browser-bridge connection (see below) |
ta_web_get_location | Location details (rating, address, coords, phone, photo) read from the public page via the browser bridge — no API key needed |
All tools are read-only — Terra has no write endpoints.
Browser bridge (optional)
ta_web_healthcheck is the first tool of an optional second tier that reaches
tripadvisor.com's consumer site (bot-walled, so unreachable server-side) by
routing same-origin fetches through your signed-in browser tab via the
ContextMint Bridge browser extension, installed from
its releases page
(Chrome: download the chrome zip and load it unpacked from chrome://extensions
with Developer mode on; Safari isn't available yet — it will ship inside the
ContextMint app, which has no public download — so use Chrome for now). It needs
the extension installed and a one-time pairing approval; the Content API tools
above never touch the bridge.
ContextMint Bridge is the fetchproxy browser extension under its new name, from
the same maintainer — fetchproxy's own README
(https://github.com/chrischall/fetchproxy#extension) points to it. Its source is
public at https://github.com/nullnet-app/contextmint-bridge: build it yourself,
or check a release zip against the .sha256 file published beside it
(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).
ta_web_get_location uses this bridge to read a location's details straight
from its public TripAdvisor page — so it works without an API key,
covering attractions, hotels, and restaurants. It returns core business data
(rating, review count, address, coordinates, phone, primary photo, listing
URL) but not individual review text. Request shapes are pinned in
docs/TRIPADVISOR-WEB-API.md.
Environment
| Var | Required | Purpose |
|---|---|---|
TRIPADVISOR_API_KEY | for the Terra tools | Terra API key, sent as the X-API-Key header. The ta_web_* tools work without it. |
TRIPADVISOR_CACHE_TTL | no | Seconds to cache search responses (default: 300; 0 disables). |
TRIPADVISOR_STATIC_CACHE_TTL | no | Seconds to cache details/photos/reviews (default: 3600; 0 disables). |
TRIPADVISOR_REQUEST_TIMEOUT_MS | no | Per-request timeout for the optional browser bridge (default: 30000). |
TRIPADVISOR_DEBUG_LOG | no | Set to 1 to log browser-bridge requests to stderr. |
Development
npm install
npm run build # tsc + esbuild bundle
npm test # vitest (no real network)
Endpoint request shapes are pinned in docs/TRIPADVISOR-API.md. With a key in .env, node scripts/live-probe.mjs exercises every read path through the built client.
License
MIT
Comments
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.