Ishigaki and Yaeyama ferries: status today, next boats, day planner, which island, best month.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Ishigaki and Yaeyama month by month: JMA temperature, rain and sunshine normals, typhoon approaches, 2025 visitor numbers, and what applies that month (rainy season, typhoons, habu jellyfish, north winds that cancel ferries, Japanese holiday peaks, festivals). Give a month, an interest, or neither for the whole year. Example: "Is October a good time to see manta rays on Ishigaki?"
Month (1 to 12)
What the trip is for
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http ferries https://ishigaki.info/mcp
Ishigaki and Yaeyama month by month: JMA temperature, rain and sunshine normals, typhoon approaches, 2025 visitor numbers, and what applies that month (rainy season, typhoons, habu jellyfish, north winds that cancel ferries, Japanese holiday peaks, festivals). Give a month, an interest, or neither for the whole year. Example: "Is October a good time to see manta rays on Ishigaki?"
| Argument | Type | Description |
|---|---|---|
| month | integer | Month (1 to 12) |
| interest | string | What the trip is for |
{
"type": "object",
"properties": {
"month": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Month (1 to 12)"
},
"interest": {
"enum": [
"beach_snorkeling",
"diving_mantas",
"lower_prices",
"quiet",
"calm_ferries",
"culture_festivals"
],
"type": "string",
"description": "What the trip is for"
}
},
"additionalProperties": false
}Day-by-day record of cancellations per route since 7 November 2026, from readings of the operators' status pages several times a day (worst reading of the day per operator), with a per-route summary: days recorded, days with any cancellation, days fully cancelled. Example: "How often has the Hateruma ferry been cancelled lately?"
| Argument | Type | Description |
|---|---|---|
| route | string | |
| months | integer | Calendar months back, including the current one |
{
"type": "object",
"properties": {
"route": {
"enum": [
"taketomi",
"kohama",
"kuroshima",
"iriomote-ohara",
"iriomote-uehara",
"hatoma",
"hateruma",
"all"
],
"type": "string",
"default": "all"
},
"months": {
"type": "integer",
"default": 2,
"maximum": 13,
"minimum": 1,
"description": "Calendar months back, including the current one"
}
},
"additionalProperties": false
}Whether the ferries from Ishigaki to Taketomi, Kohama, Kuroshima, Iriomote (Ohara, Uehara), Hatoma and Hateruma are running today, per operator (Anei Kanko, YKF), read from the operators' own status pages. Values: ok, partial (some sailings cancelled), cancelled, or null when the operator has not posted yet (they post in the morning, Japan time). Example: "Are the ferries to Taketomi running today?"
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}A recommended day on one island from Ishigaki, step by step (when, what, source), plus getting around, food, children, rainy days, staying overnight, local rules, crossing time, boats a day and the cheapest adult fare. Example: "What should I do on a day trip to Kuroshima?"
| Argument | Type | Description |
|---|---|---|
| island* | string | Island id |
{
"type": "object",
"required": [
"island"
],
"properties": {
"island": {
"enum": [
"taketomi",
"iriomote",
"kohama",
"kuroshima",
"hatoma",
"hateruma"
],
"type": "string",
"description": "Island id"
}
},
"additionalProperties": false
}The seven ferry routes from Ishigaki Port with operators, crossing time, boats a day, first and last boat, and the page that explains each. Example: "Which islands can I reach by ferry from Ishigaki?"
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The next scheduled boats on one route from the operators' published timetables, in Japan time, with fares. direction 'out' is Ishigaki to the island, 'back' is the island to Ishigaki. Example: "When is the last boat back from Iriomote (Ohara) to Ishigaki?"
| Argument | Type | Description |
|---|---|---|
| after | string | HH:MM Japan time; default now |
| limit | integer | |
| route* | string | Route id |
| direction | string |
{
"type": "object",
"required": [
"route"
],
"properties": {
"after": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}$",
"description": "HH:MM Japan time; default now"
},
"limit": {
"type": "integer",
"default": 3,
"maximum": 12,
"minimum": 1
},
"route": {
"enum": [
"taketomi",
"kohama",
"kuroshima",
"iriomote-ohara",
"iriomote-uehara",
"hatoma",
"hateruma"
],
"type": "string",
"description": "Route id"
},
"direction": {
"enum": [
"out",
"back"
],
"type": "string",
"default": "out"
}
},
"additionalProperties": false
}Earliest published boats for up to three islands in one day from Ishigaki: out, back, time on each island, when you are back in Ishigaki, or why it cannot be done. Uses the longest printed crossing, 30 minutes between boats, no backup sailings. Boats between islands are not used (you return to Ishigaki in between). Example: "Can I do Taketomi and Kohama in one day from Ishigaki?"
| Argument | Type | Description |
|---|---|---|
| start | string | Earliest departure from Ishigaki, HH:MM; default 07:00 |
| islands* | array | Route ids in the order you want to visit |
| stay_minutes | integer | Time wanted on each island |
{
"type": "object",
"required": [
"islands"
],
"properties": {
"start": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}$",
"description": "Earliest departure from Ishigaki, HH:MM; default 07:00"
},
"islands": {
"type": "array",
"items": {
"enum": [
"taketomi",
"kohama",
"kuroshima",
"iriomote-ohara",
"iriomote-uehara",
"hatoma",
"hateruma"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Route ids in the order you want to visit"
},
"stay_minutes": {
"type": "integer",
"default": 120,
"maximum": 600,
"minimum": 30,
"description": "Time wanted on each island"
}
},
"additionalProperties": false
}Ranks the six islands reachable by ferry from Ishigaki (Taketomi, Iriomote, Kohama, Kuroshima, Hatoma, Hateruma) for the traveller's time, interests, month, children and sea conditions, with the reasons, the catches, crossing time, boats a day and the cheapest adult fare. Example: "I have one day on Ishigaki with two small kids and want a beach. Which island should we visit?"
| Argument | Type | Description |
|---|---|---|
| month | integer | Month of the trip (1 to 12); September to April brings north winds that cancel open-sea routes |
| interests | array | What the traveller wants to do |
| time_available | string | How long the traveller has for the island |
| rough_sea_or_windy | boolean | True if the forecast is windy or the sea is rough |
| with_small_children | boolean |
{
"type": "object",
"properties": {
"month": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Month of the trip (1 to 12); September to April brings north winds that cancel open-sea routes"
},
"interests": {
"type": "array",
"items": {
"enum": [
"beach",
"snorkeling",
"cycling",
"village_culture",
"jungle_rivers_waterfalls",
"wildlife",
"sea_turtles",
"quiet",
"stargazing",
"views",
"walking"
],
"type": "string"
},
"maxItems": 5,
"description": "What the traveller wants to do"
},
"time_available": {
"enum": [
"half_day",
"full_day",
"overnight",
"several_days"
],
"type": "string",
"description": "How long the traveller has for the island"
},
"rough_sea_or_windy": {
"type": "boolean",
"default": false,
"description": "True if the forecast is windy or the sea is rough"
},
"with_small_children": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.