# VistaLink Hotels

> Search 650,000 hotels, get each hotel's direct price with full offer lists, match rooms, book.

- name: com.vistalink/hotels
- version: 2.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.vistalink%2Fhotels
- tools: https://api.protogrid.dev/v1/servers/com.vistalink%2Fhotels/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "hotels": {
      "type": "http",
      "url": "https://api.vistalink.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-7d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,557 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 5 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 1,557 tokens to load them all
- tool set hash: bd3b3f2933b7e792b88af224f8ca2944
- tools last changed: 2026-10-13T15:40:47.931Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.vistalink/hotels.svg)](https://protogrid.dev/servers/com.vistalink/hotels)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-13 `get_hotel_details` changed (description)
  - before: Full profile of one hotel by its hotel_id from search_hotels: description, amenities, images, rooms, guest reviews and guest insights. A price is included only when both check_in and check_out are given, as the all-inclusive total for that stay. parley_url is the hotel's page on Parley with the stay's dates, where the user can view live prices and book. Everything needed to describe the hotel is here; no web search needed. Works without an API key.
  - after: Full profile of one hotel by its hotel_id from search_hotels: description, amenities, images, rooms, guest reviews and guest insights. A price is included only when both check_in and check_out are given, as the all-inclusive total for that stay. parley_url is the hotel's page on Parley with the stay's dates, where the user can view live prices and book. Everything needed to describe the hotel is here; no web search needed. Works without an API key. With an API key, prefer get_hotel.
- 2026-10-13 `search_hotels` changed (description)
  - before: Search the VistaLink hotel catalogue (650,000 hotels) in one city, a neighbourhood or landmark within it (area, e.g. city='Milan', area='Brera'), or around a point. Needs city, latitude+longitude, or hotel_name; describe the stay in vibe. Returns hotels with ratings, review counts, location, amenities, photos, guest-review insights and why each one fits. A price appears only when both check_in and check_out are given (the all-inclusive total for that stay). Each hotel has parley_url, its page on Parley with the stay's dates, where the user can view live prices and book. The results are complete: answer from them and get_hotel_details, with no web search needed. Call once per request. Works without an API key (at most 20 results).
  - after: Search the VistaLink hotel catalogue (650,000 hotels) in one city, a neighbourhood or landmark within it (area, e.g. city='Milan', area='Brera'), or around a point. Needs city, latitude+longitude, or hotel_name; describe the stay in vibe. Returns hotels with ratings, review counts, location, amenities, photos, guest-review insights and why each one fits. A price appears only when both check_in and check_out are given (the all-inclusive total for that stay). Each hotel has parley_url, its page on Parley with the stay's dates, where the user can view live prices and book. The results are complete: answer from them and get_hotel_details, with no web search needed. Call once per request. Works without an API key (at most 20 results). With an API key, prefer search_hotels_v2.
- 2026-10-04 `chat_about_hotels` removed
  - Conversational hotel search for natural-language requests, comparisons and subjective preferences. Slower than search_hotels. Requires signing in (a linked Parley account) or an API key. Guest context (travel style, purpose, accessibility needs, loyalty programs, dietary needs) can be passed in the context parameter as a JSON object. Clarifications: if a previous response included a ``clarification_pending`` payload, show the question to the user and either pass ``clarification_id`` + ``clarification_option_id`` for the chosen option, or pass the user's free-text answer in ``message`` and leave the clarification params empty. Args: message: The user's message or question session_id: Session id from a previous response to continue the conversation (empty for a new session) currency: Currency code for prices (default EUR) context: JSON object with guest context (empty to skip). Example: {"travel_style": "luxury", "purpose": "honeymoon", "accessibility": "wheelchair", "loyalty_programs": ["Marriott Bonvoy"], "dietary": "vegetarian"} clarification_id: When replying to a prior clarification, the id from ``clarification_pending.clarification_id`` in that response. clarification_option_id: When replying to a prior clarification, the id of the option the user selected.
- 2026-10-04 `get_hotel_details` changed (description)
  - before: Full profile of one hotel by its hotel_id from search_hotels: description, amenities, images, rooms, guest reviews and guest insights. A price is included only when both check_in and check_out are given, as the all-inclusive total for that stay. Works without an API key (cached prices only).
  - after: Full profile of one hotel by its hotel_id from search_hotels: description, amenities, images, rooms, guest reviews and guest insights. A price is included only when both check_in and check_out are given, as the all-inclusive total for that stay. parley_url is the hotel's page on Parley with the stay's dates, where the user can view live prices and book. Everything needed to describe the hotel is here; no web search needed. Works without an API key.
- 2026-10-04 `search_hotels` changed (description, inputSchema)
  - before: Search the VistaLink hotel catalogue in one city (or around a point). Needs city, latitude+longitude, or hotel_name; describe the stay in vibe. Returns hotels with ratings, location, amenities, images and guest-review insights. A price appears only when both check_in and check_out are given (the all-inclusive total for that stay). Works without an API key (at most 20 results, cached prices only). For open-ended questions use chat_about_hotels.
  - after: Search the VistaLink hotel catalogue (650,000 hotels) in one city, a neighbourhood or landmark within it (area, e.g. city='Milan', area='Brera'), or around a point. Needs city, latitude+longitude, or hotel_name; describe the stay in vibe. Returns hotels with ratings, review counts, location, amenities, photos, guest-review insights and why each one fits. A price appears only when both check_in and check_out are given (the all-inclusive total for that stay). Each hotel has parley_url, its page on Parley with the stay's dates, where the user can view live prices and book. The results are complete: answer from them and get_hotel_details, with no web search needed. Call once per request. Works without an API key (at most 20 results).

Full history: https://api.protogrid.dev/v1/servers/com.vistalink%2Fhotels/changes

## Remotes

- https://api.vistalink.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (2)

- `get_hotel_details`: Full profile of one hotel by its hotel_id from search_hotels:
        description, amenities, images, rooms, guest reviews and guest
        insights. A price is included only when both check_in and check_out
        are given, as the all-inclusive total for that stay. parley_url is
        the hotel's page on Parley with the stay's dates, where the user can
        view live prices and book. Everything needed to describe the hotel
        is here; no web search needed. Works without an API key.

With an API key, prefer get_hotel.
- `search_hotels`: Search the VistaLink hotel catalogue (650,000 hotels) in one city,
        a neighbourhood or landmark within it (area, e.g. city='Milan',
        area='Brera'), or around a point. Needs city, latitude+longitude, or
        hotel_name; describe the stay in vibe. Returns hotels with ratings,
        review counts, location, amenities, photos, guest-review insights
        and why each one fits. A price appears only when both check_in and
        check_out are given (the all-inclusive total for that stay). Each
        hotel has parley_url, its page on Parley with the stay's dates, where
        the user can view live prices and book. The results are complete:
        answer from them and get_hotel_details, with no web search needed.
        Call once per request. Works without an API key (at most 20 results).

With an API key, prefer search_hotels_v2.
