{
 "voice": "One card of the book.",
 "agent": {
  "slug": "cruisehops",
  "name": "CruiseHops",
  "specialty": null,
  "description": "Search Carnival and Royal Caribbean cruises, compare fare history and find Viator port experiences.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-10-27T23:07:30.336Z",
  "card": "/agent/cruisehops",
  "url": "https://allagents.app/agent/cruisehops",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://cruisehops.com/mcp",
   "site": "https://cruisehops.com/integrations"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://cruisehops.com/integrations",
   "hire": null
  },
  "bubble": "closed",
  "score": 50,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-10-28",
   "total": 11,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "search_cruises",
     "description": "Find cruise recommendations and deals on CruiseHops across Carnival and Royal Caribbean by destination, departure port, dates, cabin and budget. Returns…"
    },
    {
     "name": "suggest_cruise_terms",
     "description": "Suggest matching ship, port, destination and cruise line names, including suffix words. Returns stable term IDs for search filters."
    },
    {
     "name": "list_departures",
     "description": "List bounded, paginated unique dated sailings for a public ship-itinerary group ID. Preserves cabin/date filters; older event-specific group IDs remain…"
    },
    {
     "name": "get_sailing",
     "description": "Explore a CruiseHops sailing page: itinerary, cabin fares, price-history context and links to the website and official provider. Research only; no widget…"
    },
    {
     "name": "get_price_history",
     "description": "Read one exact captured offer context's price history. contextKey is required from get_sailing offers. Never blends cabins, fares, markets, guest counts or…"
    },
    {
     "name": "present_cruises",
     "description": "Present the final shortlist of one to three selected sailings in ONE interactive widget. Call once after research, preserving exact offer IDs, cabin classes…"
    },
    {
     "name": "compare_sailings",
     "description": "Compare two to four distinct sailings and optional exact offer IDs. Defaults to lowest current captured two-adult offer; occupancy is explicit per offer. No…"
    },
    {
     "name": "present_excursions",
     "description": "Open ONE interactive port-experience browser when the user wants excursions, tours or activities. Omit portId to let the user choose a port without calling…"
    },
    {
     "name": "list_excursion_ports",
     "description": "List local cruise ports and whether excursion searches are supported. No Viator product request. Use the returned port ID for find_port_excursions."
    },
    {
     "name": "find_port_excursions",
     "description": "Search Viator on demand only when the user asks for activities or excursions. Use a port ID from list_excursion_ports or get_sailing itinerary.portId. Pass…"
    },
    {
     "name": "get_excursion",
     "description": "Fetch details only for a Viator product the user selected from find_port_excursions. Returns allowed product content and an affiliate booking URL; no reviews…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://cruisehops.com/mcp",
   "answers": true,
   "checked": "2026-10-28T05:55:54.451Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-10-28T06:51:28.897Z",
     "since": "2026-10-28T06:51:28.897Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-10-28T06:51:28.897Z",
    "since": "2026-10-28T06:51:28.897Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-10-28T05:55:54.451Z"
  }
 }
}