Ferryhopper MCP Server
officialThe 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 bookings.
What can you do with Ferryhopper MCP?
- Search multi-leg ferry trips — Ask for one-way, round-trip, or island-hopping itineraries with up to 5 legs via
search_ferry_trips. - Get detailed sailing info — Request vessel specs, amenities, photos, and bookable cabin/seat options for a specific trip using
trip_details. - Discover ports and direct routes — Find all ferry ports via
get_portsor list reachable destinations from an origin withget_direct_connections_for_ports. - Check live disruptions — Ask about delays, cancellations, or weather alerts for a country and date using
get_disruptions. - Get booking handoff links — Receive direct Ferryhopper.com URLs to complete reservations for selected trips.
Documentation
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.
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
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[].departureLocation string
- legs[].arrivalLocation string
- legs[].departureDate string (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
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.
- tripId string (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
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
Find all direct ferry routes and reachable destination ports from a given origin port without layovers or transfers
- portLocation string 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
Find all ferry travel disruptions, including delays, weather alerts, and strikes for a given date and country
- country string (ISO 3166-1 alpha-2, e.g. "GR")
- tripDate string (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 (deprecated)
Kept for existing integrations. Prefer search_ferry_trips, which covers this tool plus round-trip and multi-leg search.
- departureLocation string
- arrivalLocation string
- date string (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-picker ui://widgets/ferry-trips-picker.html
Used by search_ferry_trips; one row per leg, the user picks an option for each leg
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?”
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.
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.