The same API, as agent tools.
The core v2 calls as MCP tools, billed under the same SKUs.
claude mcp add --transport http vistalink https://api.vistalink.com/mcp --header "Authorization: Bearer $VISTALINK_API_KEY"
~/.cursor/mcp.json
https://api.vistalink.com/mcp
resolve_hotel · search_hotels_v2 · get_hotel · get_rates_v2 · reconcile_rooms · book_hotel · get_booking_v2 · get_job · chat_about_hotels_v2
The MCP server exposes the v2 endpoints as tools. Same key, same limits, same SKUs.
One URL, your key.
The server lives at https://api.vistalink.com/mcp and speaks streamable HTTP, so there's nothing to install. Send the same bearer key you use for REST; tools need the same scopes and bill the same SKUs.
claude mcp add --transport http vistalink https://api.vistalink.com/mcp \
--header "Authorization: Bearer $VISTALINK_API_KEY"Tools that mirror the endpoints.
The tools ending in _v2 share a name with a v1 tool (search_hotels, get_rates, get_booking, chat_about_hotels), so they carry the suffix. It stays until v1 is retired, so agents built on v1 keep working.
| Tool | Endpoint | Price | Note |
|---|---|---|---|
resolve_hotel | POST /v2/hotels/resolve | Free | Identifiers in, hotel ids out. |
search_hotels_v2 | POST /v2/search | $0.003–$0.012 / search | Same request and card shape as REST. |
get_hotel | GET /v2/hotels/{hotel_id} | $0.005 / call | Full profile; sections narrow it. |
get_rates_v2 | POST /v2/rates | $0.002–$0.040 / hotel | Returns a job when freshness is live; poll it with get_job. |
reconcile_rooms | POST /v2/rooms/reconcile | $0.08–$0.25 / reconciliation | Returns a job unless every source is a room list. |
book_hotel | POST /v2/bookings | Free | Creates a booking; follow it with get_booking_v2. |
get_booking_v2 | GET /v2/bookings/{booking_id} | Free | Booking state and timeline. |
get_job | GET /v2/jobs/{job_id} | Free | Poll any job. |
chat_about_hotels_v2 | POST /v2/chat | $0.03 / turn | Conversational search that remembers the session. |