Remote MCP server · MCP apps ready

Ferryhopper MCP Server

Ferry trip planning powered by live data from Ferryhopper — integrate into your AI assistant, MCP-enabled app, or even a no-app workflow for ferry discovery and booking handoff.

Endpoint https://mcp.ferryhopper.com/mcp
33countries
190+ferry operators
6read-only tools
4UI widgets

Overview

Ferry routes, schedules and booking handoff for AI assistants

The Ferryhopper MCP Server exposes ferry routes, schedules and booking redirects so an AI assistant can discover connections across Europe and the Mediterranean and send users to Ferryhopper to complete their booking.

Key features

🌍

Ports & connections

Search ports and connections across 33 countries and 190+ ferry operators

⛴️

Live itineraries

Get real-time ferry itineraries with indicative prices — one-way, round-trip, or island-hopping chains of up to 5 legs

🛳️

Vessel details

Look up vessel details for a sailing: amenities, accessibility, capacity, photos, and bookable seat/cabin classes with prices

⚠️

Disruption alerts

Get live disruption alerts across Greece and Europe, including cancellations, vessel changes, port modifications, and weather warnings

🔗

Booking handoff

Receive a direct link to Ferryhopper.com to continue the booking flow from the selected trip

🧩

MCP apps

An MCP app (see the official overview) is any client that can consume remote MCP tools and, in some hosts, render UI resources alongside tool results.

Use cases

  • Assist users searching for ferry routes and daily itineraries
  • Recommend destinations based on departure port and date
  • Power travel chatbots to plan round trips, island-hopping or multi-leg journeys
  • Answer questions about a specific vessel — wifi, restaurant, pets, cabins, vehicle garage, wheelchair access
  • Inform users of active disruptions before or during travel, so they can adjust plans in real time

Client integration options

📱

MCP-ready hosts consume our toolset and, if they support iframe-style MCP apps, render richer interactive travel results.

⌨️

Text-only or command-line clients use the same tools endpoint, simply ignoring the UI resource and working with the structured JSON responses for ports, routes, and trip data.

Tools

Available tools

All tools are read-only. Location parameters take human-readable names (city or port name), not port codes, so there is no need to call get_ports first.

search_ferry_trips
Main searchUI widget

Search ferry trips

The main search tool and the engine behind the Trips Picker UI. Pass an ordered chain of 1–5 legs: one leg is a one-way search, two legs where the second reverses the first is a round trip, and anything longer is an island-hopping chain. Each leg after the first must depart from where the previous leg arrived, in chronological order. Each leg's options are returned independently, and availability flags (cabin, vehicles, pets, e-ticket) are reported per segment. Hosts that support MCP apps render the picker; conversational hosts consume the same structured data.

  • legs[]array, 1–5 items
  • legs[].departureLocationstring
  • legs[].arrivalLocationstring
  • legs[].departureDatestring (YYYY-MM-DD)
Schema
{
  "name": "search_ferry_trips",
  "description": "Search ferry trips as an ordered chain of 1 to 5 legs (one-way, round trip, or island hopping)",
  "parameters": {
    "legs": [
      {
        "departureLocation": "string",
        "arrivalLocation": "string",
        "departureDate": "string (YYYY-MM-DD)"
      }
    ]
  }
}
trip_details
UI widget

Trip details

Full details for a single sailing, looked up by an option id returned by search_ferry_trips (legs[].options[].id). Returns departure/arrival times, ports and operator, the vessel's specs, amenities and photos, and the bookable accommodation tiers with prices. If the vessel has no detailed specs, vessel.hasDetails is false and the spec fields are null: the data is unavailable, which doesn't mean the amenity is missing.

  • tripIdstring (from search_ferry_trips legs[].options[].id)
Schema
{
  "name": "trip_details",
  "description": "Get vessel specs, amenities, photos and accommodation options for a single sailing",
  "parameters": {
    "tripId": "string (from search_ferry_trips legs[].options[].id)"
  }
}
get_ports

Get ports

Find ferry ports, harbors, maritime terminals, port IDs, codes, and geographic locations

  • —no parameters
Schema
{
  "name": "get_ports",
  "description": "Find ferry ports, harbors, maritime terminals, port IDs, codes, and geographic locations"
}
get_direct_connections_for_ports

Get direct connections

Find all direct ferry routes and reachable destination ports from a given origin port without layovers or transfers

  • portLocationstring
Schema
{
  "name": "get_direct_connections_for_ports",
  "description": "Find all direct ferry routes and reachable destination ports from a given origin port without layovers or transfers",
  "parameters": {
    "portLocation": "string"
  }
}
get_disruptions
UI widget

Get disruptions

Find all ferry travel disruptions, including delays, weather alerts, and strikes for a given date and country

  • countrystring (ISO 3166-1 alpha-2, e.g. "GR")
  • tripDatestring (YYYY-MM-DD)
Schema
{
  "name": "get_disruptions",
  "description": "Find all ferry travel disruptions, including delays, weather alerts, and strikes for a given date and country",
  "parameters": {
    "country": "string (ISO 3166-1 alpha-2, e.g. \"GR\")",
    "tripDate": "string (YYYY-MM-DD)"
  }
}
search_trips
DeprecatedUI widget

Search trips (deprecated)

Kept for existing integrations. Prefer search_ferry_trips, which covers this tool plus round-trip and multi-leg search.

  • departureLocationstring
  • arrivalLocationstring
  • datestring (YYYY-MM-DD)
Schema
{
  "name": "search_trips",
  "description": "Deprecated: get a list of available one-way ferry trips between two ports on a specific date",
  "parameters": {
    "departureLocation": "string",
    "arrivalLocation": "string",
    "date": "string (YYYY-MM-DD)"
  }
}

UI resources

Beyond the tools, we expose MCP app widgets. Hosts that support MCP apps fetch these to render richer UI alongside the tool response:

search-ferry-trips-pickerui://widgets/ferry-trips-picker.html

Used by search_ferry_trips; one row per leg, the user picks an option for each leg

trip-detailsui://widgets/trip-details.html

Used by trip_details; vessel and accommodation photos

disruptionsui://widgets/disruptions.html

Used by get_disruptions

search-trips-carouselui://widgets/trips-carousel.html

Used by the deprecated search_trips

Prompts

Example prompts

Try these in any connected assistant.

One-way“What ferries depart from Piraeus to Aegina on Saturday morning?”
One-way“Help me find a ferry from Ibiza to Barcelona on July 11th.”
Discovery“I want to visit an island within 3 hours of Athens tomorrow and return the next day, what are my options?”
Round trip“Plan a round trip from Piraeus to Mykonos, leaving August 3rd and returning August 10th.”
Island hopping“I want to island-hop Piraeus → Paros → Naxos → Santorini during the first week of September.”
Vessel details“Does the ferry I picked have wifi, and are pets allowed on board?”
Disruptions“Are there any ferry disruptions or cancellations in Greece today?”

How to connect

Installation & setup

The MCP clients directory lists the current set of supported apps and agents that can connect to MCP servers, so teams with MCP-enabled clients can integrate Ferryhopper with minimal setup.

Using ChatGPT? Add the Ferryhopper app

Ferryhopper is available as a ChatGPT app. Add it in one click, with no server URL needed.

Open in ChatGPT →

Or connect any MCP client manually:

Pick an MCP-enabled client

Application examples:

Gemini CLI ChatGPT ↗ Claude.ai / Claude Desktop

Add the Ferryhopper server

Consult their documentation and use the following URL for connecting:

https://mcp.ferryhopper.com/mcp

Start planning

Ask about ferry routes, schedules, vessels or disruptions — see the example prompts above.