Live Japan seasonal travel MCP: sakura, autumn leaves, flowers, festivals, fruit farms, weather.
io.github.haomingkoo/japan-seasons MCP Server
This MCP server provides live Japan seasonal travel data, focused on cherry blossom forecasts, autumn leaves, flowers, festivals, fruit farms/fruit picking, and weather. It exposes 17 tools and is associated with 1,700+ spots, sourced from the Japan Meteorological Corporation.
π οΈ Key Features
Live seasonal travel data for Japan
Tooling for cherry-blossom forecasts and autumn-leaves information
Coverage includes flowers, festivals, and fruit picking
Weather included
17 tools; 1,700+ spots
π Use Cases
Planning Japan trips around seasonal events
Querying forecasts for cherry blossoms and autumn leaves
Finding seasonal activities such as festivals and fruit farms
Use this first when the user asks a broad Japan seasonal travel question, including cherry blossom forecasts, autumn leaves, flowers, festivals, fruit picking, or what is good during travel dates. This is the best entry point for natural traveler prompts because it routes to the right live dataset and returns a ready-to-use recommendation. Do not use this for hotels, flights, trains, visas, restaurants, or generic itinerary planning unrelated to seasonal timing.
Parameters5
question
string
optional
The user's natural-language question, for example 'How is the sakura forecast?', 'Where should I see autumn leaves in late November?', or 'What seasonal things are good in Japan in June?'
start_date
string
optional
Optional trip start date in YYYY-MM-DD format. Provide this when the user gives travel dates.
end_date
string
optional
Optional trip end date in YYYY-MM-DD format. Provide this when the user gives travel dates.
location
string
optional
Optional city, prefecture, or region such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku.
season
string
optional
Optional explicit season/topic. Use auto unless the user clearly asks for one topic. Use overview for broad questions about what seasonal activities are good in a month.
Raw schema
{
"type": "object",
"properties": {
"question": {
"description": "The user's natural-language question, for example 'How is the sakura forecast?', 'Where should I see autumn leaves in late November?', or 'What seasonal things are good in Japan in June?'",
"title": "Question",
"type": "string"
},
"start_date": {
"description": "Optional trip start date in YYYY-MM-DD format. Provide this when the user gives travel dates.",
"title": "Trip Start Date",
"type": "string"
},
"end_date": {
"description": "Optional trip end date in YYYY-MM-DD format. Provide this when the user gives travel dates.",
"title": "Trip End Date",
"type": "string"
},
"location": {
"description": "Optional city, prefecture, or region such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku.",
"title": "Location",
"type": "string"
},
"season": {
"description": "Optional explicit season/topic. Use auto unless the user clearly asks for one topic. Use overview for broad questions about what seasonal activities are good in a month.",
"title": "Season Topic",
"type": "string",
"enum": [
"auto",
"overview",
"sakura",
"kawazu",
"koyo",
"flowers",
"festivals",
"fruit",
"weather"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
sakura_now
Use this first for broad cherry blossom prompts such as 'How is the sakura forecast?', 'Is sakura blooming now?', 'Where should I view sakura today?', 'Where should I see cherry blossoms this week?', or 'How is Kyoto sakura looking?'. Returns a concise current answer from live Japan Meteorological Corporation forecast and observation data, including specific viewing spot suggestions when current spot data is available, plus next-step guidance for the full park list and weather. Do not use this for autumn leaves, non-sakura flowers, hotels, trains, or generic itinerary planning.
Parameters3
city
string
optional
Optional city, prefecture, or region filter such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku. Omit for nationwide status.
start_date
string
optional
Optional trip start date in YYYY-MM-DD format. Use with end_date when the user gives travel dates.
end_date
string
optional
Optional trip end date in YYYY-MM-DD format. Use with start_date when the user gives travel dates.
Raw schema
{
"type": "object",
"properties": {
"city": {
"description": "Optional city, prefecture, or region filter such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku. Omit for nationwide status.",
"title": "City or Region",
"type": "string"
},
"start_date": {
"description": "Optional trip start date in YYYY-MM-DD format. Use with end_date when the user gives travel dates.",
"title": "Trip Start Date",
"type": "string"
},
"end_date": {
"description": "Optional trip end date in YYYY-MM-DD format. Use with start_date when the user gives travel dates.",
"title": "Trip End Date",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
koyo_now
Use this first for broad autumn leaves prompts such as 'How are autumn leaves looking?', 'Where is koyo good now?', 'Kyoto autumn leaves forecast', or 'Where should I see fall foliage in Japan?'. Returns a concise current answer from live Japan Meteorological Corporation maple and ginkgo forecast data. Do not use this for cherry blossoms, fruit picking, hotels, trains, or generic itinerary planning.
Parameters3
region
string
optional
Optional city, prefecture, or region filter such as Kyoto, Tokyo, Hokkaido, Kansai, Nikko, Tohoku. Omit for nationwide status.
start_date
string
optional
Optional trip start date in YYYY-MM-DD format. Use with end_date when the user gives travel dates.
end_date
string
optional
Optional trip end date in YYYY-MM-DD format. Use with start_date when the user gives travel dates.
Raw schema
{
"type": "object",
"properties": {
"region": {
"description": "Optional city, prefecture, or region filter such as Kyoto, Tokyo, Hokkaido, Kansai, Nikko, Tohoku. Omit for nationwide status.",
"title": "Region or Prefecture",
"type": "string"
},
"start_date": {
"description": "Optional trip start date in YYYY-MM-DD format. Use with end_date when the user gives travel dates.",
"title": "Trip Start Date",
"type": "string"
},
"end_date": {
"description": "Optional trip end date in YYYY-MM-DD format. Use with start_date when the user gives travel dates.",
"title": "Trip End Date",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
search
Use this for ChatGPT/deep-research style retrieval over Japan in Seasons. Searches live seasonal-travel dataset guides and returns result IDs for fetch. Use for questions about Japan cherry blossom forecasts, autumn leaves, seasonal flowers, festivals, fruit picking, weather, or the MCP server itself. Do not use for hotels, flights, trains, visas, or restaurants.
Parameters1
query
string
required
Natural-language search query, for example 'Japan cherry blossom forecast', 'Kyoto autumn leaves', or 'fruit picking in Japan in September'.
Raw schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Natural-language search query, for example 'Japan cherry blossom forecast', 'Kyoto autumn leaves', or 'fruit picking in Japan in September'.",
"title": "Query"
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
fetch
Use this after search to retrieve a full Japan in Seasons result with citation URL and text. For live sakura or autumn leaves result IDs, this fetches the current forecast answer from live JMC data.
Parameters1
id
string
required
Result ID returned by search, such as sakura-now, koyo-now, flowers, festivals, fruit, or mcp-install.
Raw schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Result ID returned by search, such as sakura-now, koyo-now, flowers, festivals, fruit, or mcp-install.",
"title": "Result ID"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
sakura_forecast
Use this when the user asks about cherry blossom timing, peak bloom, whether sakura has started, or how cities compare across Japan. Returns Japan Meteorological Corporation forecast bloom dates, full-bloom dates, observed dates when available, historical averages, and status for 48 observation cities. Do not use this for specific parks or temples; call sakura_spots next for prefecture-level viewing spots.
Parameters1
city
string
optional
Optional city, prefecture, or region filter such as 'Tokyo', 'Kyoto', 'Hokkaido', or 'Tohoku'. Partial case-insensitive matches are supported across city, prefecture, and region names. Omit to return all observation cities.
Raw schema
{
"type": "object",
"properties": {
"city": {
"description": "Optional city, prefecture, or region filter such as 'Tokyo', 'Kyoto', 'Hokkaido', or 'Tohoku'. Partial case-insensitive matches are supported across city, prefecture, and region names. Omit to return all observation cities.",
"title": "City or Region Filter",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
sakura_spots
Use this when the user already knows the prefecture and needs exact cherry blossom viewing spots with current status and GPS coordinates. Each spot uses JMC reporter observations as the primary status when filed within the last 48 hours (states: pre-bloom through hazakura/green leaves); falls back to the JMC bloom-meter estimate otherwise, with any stale observation shown as secondary context. Also returns the prefecture's JMA reference station summary. Do not use this for nationwide timing comparisons or date matching; use sakura_forecast or sakura_best_dates first.
Parameters1
prefecture
string
required
Required prefecture filter. Accepts English prefecture name or numeric prefecture code such as 'Tokyo', 'Kyoto', 'Hokkaido', or '13'. This tool returns one prefecture at a time.
Raw schema
{
"type": "object",
"properties": {
"prefecture": {
"type": "string",
"description": "Required prefecture filter. Accepts English prefecture name or numeric prefecture code such as 'Tokyo', 'Kyoto', 'Hokkaido', or '13'. This tool returns one prefecture at a time.",
"title": "Prefecture Name or Code"
}
},
"required": [
"prefecture"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
sakura_best_dates
Use this when the user provides travel dates and wants to know where sakura is likely to be best during that trip. Returns cities whose viewing window overlaps the requested date range, based on observed or forecast full-bloom dates. Do not use this for January-February early-bloom Kawazu requests; use kawazu_forecast for those.
Parameters2
start_date
string
required
Trip start date in YYYY-MM-DD format, for example '2026-04-08'. The tool compares this against each city's sakura viewing window.
end_date
string
required
Trip end date in YYYY-MM-DD format, for example '2026-04-14'. Must be on or after start_date.
Raw schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Trip start date in YYYY-MM-DD format, for example '2026-04-08'. The tool compares this against each city's sakura viewing window.",
"title": "Trip Start Date"
},
"end_date": {
"type": "string",
"description": "Trip end date in YYYY-MM-DD format, for example '2026-04-14'. Must be on or after start_date.",
"title": "Trip End Date"
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
kawazu_forecast
Use this for January-February cherry blossom requests or when the user specifically asks about Kawazu-zakura, early blossoms, or the Izu Peninsula. Returns the Japan Meteorological Corporation forecast comment, forecast map links, and Kawazu cherry spots with bloom percentages, full-bloom percentages, forecast dates, and coordinates. Do not use this for standard Somei-Yoshino sakura elsewhere in Japan.
Parameters2
include_spots
boolean
optional
Whether to include the full list of Kawazu viewing spots. Defaults to true. Set false when the user only needs the overall forecast summary and map.
spot_name
string
optional
Optional case-insensitive substring filter for a specific Kawazu landmark or area, such as 'εζ¨', 'ι§ ε', 'iZoo', or 'δΈζ»'. Use this when the user asks about one named spot instead of the full list.
Raw schema
{
"type": "object",
"properties": {
"include_spots": {
"description": "Whether to include the full list of Kawazu viewing spots. Defaults to true. Set false when the user only needs the overall forecast summary and map.",
"title": "Include Spot Listings",
"type": "boolean"
},
"spot_name": {
"description": "Optional case-insensitive substring filter for a specific Kawazu landmark or area, such as 'εζ¨', 'ι§ ε', 'iZoo', or 'δΈζ»'. Use this when the user asks about one named spot instead of the full list.",
"title": "Spot Name Filter",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
koyo_forecast
Use this when the user asks when autumn leaves peak, whether one city colors earlier than another, or wants a national overview for October-December. Returns city-level maple and ginkgo forecast dates, forecast maps, and regional commentary from Japan Meteorological Corporation. Do not use this for specific temples, gardens, or GPS-tagged locations; call koyo_spots next for those.
Parameters2
region
string
optional
Optional case-insensitive filter for a region, prefecture, or city such as 'Kyoto', 'Tokyo', 'Hokkaido', 'Kansai'. Use this when the user only cares about one part of Japan instead of the full national forecast.
tree_type
string
optional
Optional tree filter. Use 'maple' for momiji-only dates, 'ginkgo' for ginkgo-only dates, or omit/use 'all' to return both.
Raw schema
{
"type": "object",
"properties": {
"region": {
"description": "Optional case-insensitive filter for a region, prefecture, or city such as 'Kyoto', 'Tokyo', 'Hokkaido', 'Kansai'. Use this when the user only cares about one part of Japan instead of the full national forecast.",
"title": "Region or Prefecture Filter",
"type": "string"
},
"tree_type": {
"description": "Optional tree filter. Use 'maple' for momiji-only dates, 'ginkgo' for ginkgo-only dates, or omit/use 'all' to return both.",
"title": "Tree Type Filter",
"type": "string",
"enum": [
"all",
"maple",
"ginkgo"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
koyo_spots
Use this when the user already knows the prefecture and needs exact autumn leaves viewing spots. Returns Japan Meteorological Corporation koyo spots for one prefecture with best start, peak, and end dates, leaf type, popularity rating, and GPS coordinates. Omit prefecture to get a top-destinations guide. Do not use this for cross-city date matching; use koyo_forecast or koyo_best_dates first.
Parameters1
prefecture
string
optional
Prefecture filter. Accepts English name or numeric code such as 'Kyoto', 'Tokyo', 'Hokkaido', or '26'. Omit to receive a curated list of top koyo destinations across Japan.
Raw schema
{
"type": "object",
"properties": {
"prefecture": {
"description": "Prefecture filter. Accepts English name or numeric code such as 'Kyoto', 'Tokyo', 'Hokkaido', or '26'. Omit to receive a curated list of top koyo destinations across Japan.",
"title": "Prefecture Name or Code (optional)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
koyo_best_dates
Use this when the user gives autumn travel dates and wants the best cities during that window. Returns cities whose maple or ginkgo viewing windows overlap the trip, based on forecast peak dates. Do not use this for general climate questions or for exact park recommendations without dates; use koyo_spots when the prefecture is already known.
Parameters2
start_date
string
required
Trip start date in YYYY-MM-DD format, for example '2026-11-20'. The tool checks whether each city's koyo window overlaps this date.
end_date
string
required
Trip end date in YYYY-MM-DD format, for example '2026-11-27'. Must be on or after start_date.
Raw schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Trip start date in YYYY-MM-DD format, for example '2026-11-20'. The tool checks whether each city's koyo window overlaps this date.",
"title": "Trip Start Date"
},
"end_date": {
"type": "string",
"description": "Trip end date in YYYY-MM-DD format, for example '2026-11-27'. Must be on or after start_date.",
"title": "Trip End Date"
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
weather_forecast
Use this when short-range weather could change the recommendation, especially for sakura petal fall, rain risk, or packing advice. Returns the next 3 days of Japan Meteorological Agency forecast text, temperatures, and 6-hour rain probabilities for one supported city. Do not use this for seasonal bloom timing months in advance; use the sakura or koyo forecast tools for that.
Parameters1
city
string
required
Supported city name such as 'Tokyo', 'Kyoto', 'Osaka', or 'Sapporo'. Partial case-insensitive matching is accepted. Full supported list: Sapporo, Hakodate, Asahikawa, Kushiro, Obihiro, Aomori, Morioka, Sendai, Akita, Yamagata, Fukushima, Mito, Utsunomiya, Maebashi, Saitama, Chiba, Tokyo, Yokohama, Niigata, Toyama, Kanazawa, Fukui, Kofu, Nagano, Gifu, Shizuoka, Nagoya, Tsu, Otsu, Kyoto, Osaka, Kobe, Nara, Wakayama, Tottori, Matsue, Okayama, Hiroshima, Shimonoseki, Tokushima, Takamatsu, Matsuyama, Kochi, Fukuoka, Saga, Nagasaki, Kumamoto, Oita, Miyazaki, Kagoshima, Naha
Use this for non-sakura flower trips such as plum, wisteria, hydrangea, lavender, sunflower, or cosmos. Returns curated flower spots with peak windows, official URLs, notes, and GPS coordinates. Do not use this for cherry blossom or autumn leaves timing; use the sakura or koyo tools for those live forecasts.
Parameters3
type
string
optional
Optional flower type filter. Allowed values: 'all', 'plum', 'nanohana', 'wisteria', 'iris', 'hydrangea', 'lavender', 'sunflower', or 'cosmos'. Omit or use 'all' to return every flower type.
prefecture
string
optional
Optional prefecture filter such as 'Kanagawa', 'Kyoto', 'Tokyo', or 'Hokkaido'. Partial case-insensitive matches are supported.
month
integer
optional
Optional month number from 1 to 12. Returns only flower types whose curated season includes that month, for example 4 for wisteria or 6 for hydrangea.
Raw schema
{
"type": "object",
"properties": {
"type": {
"description": "Optional flower type filter. Allowed values: 'all', 'plum', 'nanohana', 'wisteria', 'iris', 'hydrangea', 'lavender', 'sunflower', or 'cosmos'. Omit or use 'all' to return every flower type.",
"title": "Flower Type",
"type": "string",
"enum": [
"all",
"plum",
"nanohana",
"wisteria",
"iris",
"hydrangea",
"lavender",
"sunflower",
"cosmos"
]
},
"prefecture": {
"description": "Optional prefecture filter such as 'Kanagawa', 'Kyoto', 'Tokyo', or 'Hokkaido'. Partial case-insensitive matches are supported.",
"title": "Prefecture Filter",
"type": "string"
},
"month": {
"description": "Optional month number from 1 to 12. Returns only flower types whose curated season includes that month, for example 4 for wisteria or 6 for hydrangea.",
"title": "Month Number",
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
fruit_seasons
Use this when the user asks what fruit is in season in a given month or which month is best for strawberries, grapes, peaches, apples, and similar picking trips. Returns the fruit season calendar, peak months, best regions, and notes for 14 fruits. Call fruit_farms next if the user needs actual farm listings, map coordinates, or booking links.
Parameters1
month
integer
optional
Optional month number from 1 to 12. Returns fruits in season during that month plus fruits starting the following month. Omit to return the full year calendar.
Raw schema
{
"type": "object",
"properties": {
"month": {
"description": "Optional month number from 1 to 12. Returns fruits in season during that month plus fruits starting the following month. Omit to return the full year calendar.",
"title": "Month Number",
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
festivals_list
Use this when the user wants recurring Japan events to plan around, such as fireworks, matsuri, or winter festivals. Returns curated events with typical dates, attendance, official URLs, notes, and GPS coordinates. Do not use this for bloom timing, one-off concerts, or weather forecasts.
Parameters3
month
integer
optional
Optional month number from 1 to 12. Useful examples: 7 or 8 for fireworks season, 10 or 11 for autumn matsuri, and 1 or 2 for winter events.
type
string
optional
Optional event type filter. Allowed values: 'all', 'fireworks', 'matsuri', or 'winter'. Omit or use 'all' to return every event type.
prefecture
string
optional
Optional prefecture filter such as 'Tokyo', 'Kyoto', 'Osaka', or 'Hokkaido'. Partial case-insensitive matches are supported.
Raw schema
{
"type": "object",
"properties": {
"month": {
"description": "Optional month number from 1 to 12. Useful examples: 7 or 8 for fireworks season, 10 or 11 for autumn matsuri, and 1 or 2 for winter events.",
"title": "Month Number",
"type": "integer",
"minimum": 1,
"maximum": 12
},
"type": {
"description": "Optional event type filter. Allowed values: 'all', 'fireworks', 'matsuri', or 'winter'. Omit or use 'all' to return every event type.",
"title": "Event Type",
"type": "string",
"enum": [
"all",
"fireworks",
"matsuri",
"winter"
]
},
"prefecture": {
"description": "Optional prefecture filter such as 'Tokyo', 'Kyoto', 'Osaka', or 'Hokkaido'. Partial case-insensitive matches are supported.",
"title": "Prefecture Filter",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
fruit_farms
Use this when the user needs actual fruit-picking farms, booking links, and map coordinates. Returns farms from the local dataset, and month filtering automatically narrows results to fruits that are in season. If the user only asks which fruit is in season, call fruit_seasons first.
Parameters4
month
integer
optional
Optional travel month from 1 to 12. Filters to farms with at least one fruit in season during that month, for example 5 for May strawberry farms.
fruit
string
optional
Optional fruit name such as 'Strawberry', 'Apple', 'Grape', 'Peach', 'Cherry', or 'Mikan'. Matching is case-insensitive. Use with or instead of month.
region
string
optional
Optional prefecture, city, or region substring such as 'Yamanashi', 'Nagano', 'Aomori', or 'Tokyo'. Partial case-insensitive matching is supported against farm names and addresses.
limit
integer
optional
Optional maximum number of farms to return. Default is 30 and the hard maximum is 100.
Raw schema
{
"type": "object",
"properties": {
"month": {
"description": "Optional travel month from 1 to 12. Filters to farms with at least one fruit in season during that month, for example 5 for May strawberry farms.",
"title": "Travel Month",
"type": "integer",
"minimum": 1,
"maximum": 12
},
"fruit": {
"description": "Optional fruit name such as 'Strawberry', 'Apple', 'Grape', 'Peach', 'Cherry', or 'Mikan'. Matching is case-insensitive. Use with or instead of month.",
"title": "Fruit Name",
"type": "string"
},
"region": {
"description": "Optional prefecture, city, or region substring such as 'Yamanashi', 'Nagano', 'Aomori', or 'Tokyo'. Partial case-insensitive matching is supported against farm names and addresses.",
"title": "Region Filter",
"type": "string"
},
"limit": {
"description": "Optional maximum number of farms to return. Default is 30 and the hard maximum is 100.",
"title": "Result Limit",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
You ask Claude, ChatGPT, or Gemini: "When should I visit Kyoto for cherry blossoms?"
You get "late March to early April" β the same answer every year, based on training data that has no idea what this winter was like.
The actual bloom date shifts by 2β3 weeks depending on temperatures. Tokyo peaked March 29 in 2024, March 22 in 2023, March 28 in 2022 β a 7-day spread in just two years. Your AI is guessing. This MCP server stops the guessing.
The fix
It connects Claude (or any MCP client) to live forecast data from the Japan Meteorological Corporation β the same data that powers SAKURA NAVI and Japan's major cherry blossom forecast sites. Bloom meters update daily at 9 AM JST; spot observations update when JMC reporters file.
code
You: "I'm in Japan April 8β14. Where should I see cherry blossoms?"
Claude: Based on today's JMC forecast data:
Cities in full bloom during your visit:
β’ Sendai (Miyagi) β full bloom forecast Apr 10 (avg Apr 12)
β’ Morioka (Iwate) β full bloom forecast Apr 13 (avg Apr 16, running early)
β’ Akita β full bloom forecast Apr 14
For Sendai, top spots include Tsutsujigaoka Park (92% full bloom today)
and Nishi Park. Morioka Castle ruins are a classic.
One thing to watch: 40% rain chance Apr 10 in Sendai. Rain speeds up
petal fall, so Apr 11β12 is probably the safer window.
Real bloom percentages. Real park names. Real weather.
Use it with AI assistants
There are two different ways an AI assistant can use Japan in Seasons:
AI search / web browsing can find and cite the public pages, text summaries, and JSON APIs. This is the lowest-friction path for people asking "latest sakura dates" in ChatGPT, Perplexity, Google AI Mode, etc.
MCP tool use only works after the user or workspace admin connects the MCP server inside an MCP-capable client. Finding this repo in search does not give the assistant permission to run MCP tools.
For AI search, use these crawlable sources:
Latest sakura text summary: https://seasons.kooexperience.com/sakura-forecast.txt
Interactive map and forecast pages: https://seasons.kooexperience.com
Remote MCP endpoint
No package install is needed when the client supports remote/streamable HTTP MCP. Add this as the MCP server/app/connector URL:
text
https://seasons.kooexperience.com/mcp
For ChatGPT Apps/Connectors, use:
Name:Japan in Seasons
Description:Use this for live Japan seasonal travel data: cherry blossom and sakura dates, autumn leaves, flowers, festivals, fruit picking, and weather. Best for current or date-specific Japan travel questions.
Point JAPAN_SEASONS_CACHE_DIR at a persistent volume, for example a Railway Volume mounted at /data. This stores the warmed national sakura/koyo all-spots JSON across restarts; without it, the app falls back to in-memory cache and still works.
Why ChatGPT may find it but refuse to use it
ChatGPT Search can discover japan-seasons-mcp as a web result, but web discovery is not the same as connecting an MCP server. If the chat only has web search enabled, it should cite the crawlable forecast pages or JSON API. To run tools like sakura_now, sakura_forecast, or sakura_spots, the MCP endpoint must first be added as a ChatGPT app/connector or configured in another MCP client.
1,700+ GPS-tagged spots across 12 seasonal categories.
Tools
Best first-call tools
japan_seasonal_answer β answer a broad traveler question
Use this when someone asks a normal question instead of naming a dataset: "How is the sakura forecast?", "What is good in Japan in June?", "Where should I see autumn leaves in late November?", or "What seasonal activities match my dates?" It routes to the right live or curated dataset and returns a ready-to-use recommendation.
sakura_now β current cherry blossom answer
The best first call for broad sakura prompts. It summarizes what is good now, what is coming next, or what matched the user's trip dates, using live JMC forecast/observation data, and includes a short list of specific viewing spots when spot data is available.
koyo_now β current autumn leaves answer
The autumn equivalent of sakura_now: current koyo timing, maple/ginkgo peaks, trip-date matches, and next-step guidance for exact spots.
search / fetch β retrieval-friendly access
Provider-friendly search/fetch tools for ChatGPT-style retrieval and deep-research citation flows. search returns result IDs; fetch returns full text with a canonical URL.
Cherry blossom
sakura_forecast β the big picture
All 48 JMA observation cities in one call: this year's forecast, actual dates when observed, and how each city compares to the historical average. Good starting point before you drill into specific spots.
code
"What's the cherry blossom situation in Japan right now?"
β 48 cities by region, bloom status, forecast dates, days vs average
sakura_spots β specific parks and temples
1,012 spots across Japan with current status, bloom percentages, and GPS coordinates. When JMC spot reporters have filed a recent update (within 48 hours), the tool uses that observed status as the primary reading. Otherwise it falls back to the JMC bloom-meter forecast. Stale observations are shown as context, not hidden.
code
"Cherry blossom spots in Kyoto"
β 51 spots: Kiyomizu-dera (Full bloom, observed Apr 9), Maruyama Park (91% full-bloom)...
sakura_best_dates β match travel dates to bloom
Give it your start and end dates, get back the cities where full bloom overlaps your window plus a short list of specific viewing spots when spot data is available.
code
"I'm in Japan April 8β14, where should I go?"
β Cities with bloom in that window, ranked by timing, plus spot suggestions and map links
Kawazu cherry blooms JanuaryβFebruary in Izu Peninsula, months before standard sakura opens anywhere.
code
"Can I see cherry blossoms in February?"
β 9 Kawazu spots with bloom %, GPS, forecast dates
Autumn leaves
koyo_forecast β maple and ginkgo timing by city
50+ cities with this year's colour-change dates and how they compare to the historical normal. Maple and ginkgo peak at different times; both are included.
code
"When do autumn leaves peak in Kyoto vs Hokkaido?"
β City-by-city maple/ginkgo dates, days early or late vs average
koyo_best_dates β same idea as sakura best dates, for autumn
Match your travel window to cities in peak colour.
code
"I'm in Japan late October, where for autumn leaves?"
β Cities in peak colour during your dates, maple vs ginkgo timing
koyo_spots β 687 viewing spots by prefecture
Each spot has a peak window (start, peak, end), leaf type, popularity rating, and GPS.
code
"Top autumn leaves spots in Kyoto"
β Arashiyama, Eikando, Tofukuji, Rurikoin... with star rating and exact peak dates
Flowers
flowers_spots β 90 curated spots, 8 flower types, Jan through Oct
Type
Season
Notable spots
Plum
JanβMar
Atami, Mito Kairakuen
Nanohana
FebβApr
Chiba coast, Showa Kinen
Wisteria
AprβMay
Ashikaga, Kawachi, Kameido Tenjin
Iris
MayβJun
Meiji Jingu, Horikiri Shobuen
Hydrangea
JunβJul
Meigetsu-in, Hasedera, Yatadera
Lavender
JunβJul
Furano (Hokkaido)
Sunflower
JulβAug
Zama, Hokuryu
Cosmos
SepβOct
Showa Kinen, Hitachi Seaside
Filter by type, prefecture, or month. Each spot has an official URL and verified GPS.
Festivals and events
festivals_list β 46 major recurring events with official URLs and attendance figures
code
"Best fireworks festivals in Japan?"
β Sumida River (900k), Nagaoka (1.1M), Omagari, PL Osaka, Miyajima...
"Festivals in Kyoto in October?"
β Jidai Matsuri (Oct 22), Kurama Fire Festival, with booking tips
Filter by type (fireworks / matsuri / winter), month, and prefecture.
Fruit picking
fruit_seasons β full-year calendar for 14 fruits
Which fruits are in season and at peak for any given month, with best regions and notes.
code
"What fruit can I pick in September in Japan?"
β Grape at peak (Yamanashi, Nagano), Pear at peak, Peach ending, Apple starting
fruit_farms β 346 farms with GPS and booking links
Pass month= and it auto-filters to farms with something in season. Add region= to narrow further.
code
"Strawberry farms near Tokyo in April"
β Farms in the Tokyo/Kanto area with strawberry in season, GPS + Jalan links
Weather
weather_forecast β 3-day JMA forecast for 51 cities
Temperature, rain probability by 6-hour window, and conditions. Worth checking because rain speeds up petal fall.
code
"Weather in Osaka this weekend?"
β Min/max temp, rain % per 6-hour window, conditions
Usage
Ask your MCP client for a goal, not a tool name. A few good examples:
text
"I'm in Japan April 8-14. Where should I go for cherry blossoms?"
"Top autumn leaves spots in Kyoto in late November"
"What flowers are in season in Japan in June?"
"Best fireworks festivals in Japan in August"
"Fruit picking near Tokyo in May"
"Will rain in Osaka this weekend make sakura worse?"
Typical workflow:
Ask for timing first with sakura_best_dates, koyo_best_dates, sakura_forecast, or koyo_forecast.
Drill into exact parks, temples, farms, or events with sakura_spots, koyo_spots, fruit_farms, flowers_spots, or festivals_list.
Check weather_forecast if rain or temperature could change the recommendation.
Set optional connection preferences if you want ISO dates, Fahrenheit weather, Japanese map links, or outputs without GPS coordinates.
How it works
flowchart LR
subgraph live["Live APIs (cached 1β6h)"]
JMC["Japan Meteorological Corp\nsakura Β· koyo Β· kawazu\n1,700+ spots Β· daily 9AM JST"]
JMA["Japan Met Agency\nweather Β· 51 cities\nhourly"]
end
subgraph static["Static datasets (loaded at startup)"]
DATA["flowers.json β 90 spots\nfestivals.json β 46 events\nfruit-farms.json β 346 farms"]
end
subgraph server["japan-seasons-mcp"]
MCP["17 tools\n2 prompts\nstdio + HTTP transport"]
end
subgraph clients["MCP clients"]
C1["Claude Desktop\n/ Claude Code"]
C2["Cursor\n/ Windsurf"]
C3["Any MCP\nclient"]
end
JMC -->|live fetch| MCP
JMA -->|live fetch| MCP
DATA -->|in-memory| MCP
MCP -->|MCP protocol| C1
MCP -->|MCP protocol| C2
MCP -->|MCP protocol| C3
Static datasets load at startup and are served from memory with no disk I/O per request. Live JMC data is cached server-side (1β6h TTL). The all-spots payload is pre-gzipped at startup so repeat serving is essentially free.
Bloom scale reference
JMC publishes two separate data products for sakura spots. Both are used:
Spot observations β reported by JMC partners and spot managers, used as primary status when updated within 48 hours:
code
State 0 Pre-bloom (buds visible)
State 1 First bloom β ιθ± (a few flowers open)
State 2 30% bloom β δΈεε²γ (sanbu-zaki)
State 3 70% bloom β δΈεε²γ (nanabu-zaki)
State 4 Full bloom β ζΊι (mankai)
State 5 Petals starting to fall β ζ£γε§γ
State 6 Green leaves β θζ‘ (hazakura, bloom season over)
Bloom-meter forecast (jr_data) β mathematical model used as fallback when no fresh observation exists:
The forecast model stays frozen at full-bloom=100% after peak and cannot detect petal fall or hazakura on its own. Spot observations (states 5β6) are the only way to confirm post-peak status for a specific park.
Peak viewing is typically full bloom Β± 3 days. Rain accelerates petal fall.
Web app
seasons.kooexperience.com is the interactive companion to this MCP server. It shows all the same data on a map β 1,012 sakura spots with lifecycle colours (orange bud, pink bloom, green ended), 687 koyo spots, 346 fruit farms grouped by location, and 90 flower spots. There are also focused SEO/citation pages for cherry blossom forecasts, autumn leaves forecasts, and the MCP server. The map includes a "Plan My Trip" mode where you pick cities and see every seasonal activity near each one ranked by distance, and a "Near Me" button that finds spots within 30km of your GPS location.
Development
bash
git clone https://github.com/haomingkoo/japan-seasons-mcp.git
cd japan-seasons-mcp
npm install
npm run build
npm start # stdio MCP mode
npm run start:http # HTTP mode, MCP at http://localhost:3000/mcp
TypeScript. No external database. No auth required.