japan-seasons-mcp
japan-seasons-mcp connects AI assistants to live Japan travel and seasonal data, covering 1,700+ GPS-tagged spots across 12 seasonal categories.
πΈ Cherry Blossom Forecast & Spots: Live JMC bloom forecasts for 48 cities, detailed status for 1,012 viewing spots, and date-matching to find cities at peak bloom during your trip.
πΈ Kawazu Early Cherry: Forecasts and spots for the deep-pink early-blooming Kawazu variety (JanuaryβFebruary) in the Izu Peninsula.
π Autumn Leaves Forecast & Spots: City-level maple and ginkgo color-change forecasts for 50+ cities, 687 viewing spots with peak dates, and travel-date matching.
βοΈ Weather Forecast: 3-day JMA forecasts (temperature, rain probability, conditions) for 51 major Japanese cities.
πΊ Seasonal Flower Spots: 80 curated spots for 8 flower types (plum, wisteria, hydrangea, lavender, sunflower, cosmos, and more), filterable by type, month, or prefecture.
π Fruit Picking: Full-year season calendar for 14 fruits plus 350+ farms with GPS coordinates and booking links, filterable by month and region.
π Festivals & Events: 52 major recurring events (fireworks, matsuri, winter festivals) with dates, attendance figures, and official URLs, filterable by type, month, or prefecture.
Data is sourced from the Japan Meteorological Corporation (updated daily at 9 AM JST) for cherry blossoms and autumn leaves, and the Japan Meteorological Agency for weather. The server is accessible via stdio MCP client, HTTP endpoint, or self-hosted, with optional preferences for date format, temperature units, and language.
Available as an npm package for installation and distribution of the Japan seasons MCP server, enabling easy deployment and integration with MCP clients.
πΈ japan-seasons-mcp
Give your AI assistant live Japan travel data β cherry blossom forecasts, autumn leaves, fruit picking, flowers, festivals & more.
1,700+ spots. 17 tools. Live data from Japan Meteorological Corporation.
Live map Β· Hosted MCP endpoint Β· npm
Screenshots
Cherry blossom map | Spot detail & weather |
Fruit picking | What's On in Japan |
Flowers in season | Mobile |
Related MCP server: JMA Data MCP
The problem
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.
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.txtSakura forecast JSON:
https://seasons.kooexperience.com/api/sakura/forecastInteractive 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:
https://seasons.kooexperience.com/mcpFor ChatGPT Apps/Connectors, use:
Name:
Japan in SeasonsDescription:
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.Connector URL:
https://seasons.kooexperience.com/mcp
Claude Desktop / Claude Code / stdio MCP clients
Add this to the client's MCP config:
{
"mcpServers": {
"japan-seasons": {
"command": "npx",
"args": ["-y", "japan-seasons-mcp"]
}
}
}Optional connection preferences supported by the hosted endpoint:
dateStyleβfriendlyorisotemperatureUnitβcelsiusorfahrenheitincludeCoordinatesβtrueorfalsemapLanguageβenglishorjapanese
Self-host
PORT=3000 npx -y japan-seasons-mcp --http
# MCP endpoint: http://localhost:3000/mcpOptional durable cache for the hosted web map:
JAPAN_SEASONS_CACHE_DIR=/data PORT=3000 npx -y japan-seasons-mcp --httpPoint 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.
What's covered
Season | Data | Spots | Source |
JanβFeb | Kawazu cherry (early deep-pink variety, Izu Peninsula) | 9 spots | JMC live |
JanβMar | Plum blossoms | 8 spots | curated |
MarβMay | Cherry blossom (sakura) | 1,012 parks & temples | JMC live, daily |
AprβMay | Wisteria | 13 spots | curated |
MayβJun | Iris gardens | 9 spots | curated |
JunβJul | Hydrangea | 15 spots | curated |
JunβJul | Lavender fields | 6 spots | curated |
JulβAug | Fireworks festivals & summer matsuri | 46 events | curated |
JulβAug | Sunflower fields | 7 spots | curated |
MayβNov | Fruit picking | 346 farms, 14 fruits | Jalan + Navitime |
SepβOct | Cosmos fields | 8 spots | curated |
OctβDec | Autumn leaves (koyo) | 687 viewing spots | JMC live |
JanβFeb | Winter events (Sapporo Snow Festival, etc.) | 8 events | curated |
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.
"What's the cherry blossom situation in Japan right now?"
β 48 cities by region, bloom status, forecast dates, days vs averagesakura_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.
"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.
"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 linkskawazu_forecast β early-season deep-pink variety
Kawazu cherry blooms JanuaryβFebruary in Izu Peninsula, months before standard sakura opens anywhere.
"Can I see cherry blossoms in February?"
β 9 Kawazu spots with bloom %, GPS, forecast datesAutumn 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.
"When do autumn leaves peak in Kyoto vs Hokkaido?"
β City-by-city maple/ginkgo dates, days early or late vs averagekoyo_best_dates β same idea as sakura best dates, for autumn
Match your travel window to cities in peak colour.
"I'm in Japan late October, where for autumn leaves?"
β Cities in peak colour during your dates, maple vs ginkgo timingkoyo_spots β 687 viewing spots by prefecture
Each spot has a peak window (start, peak, end), leaf type, popularity rating, and GPS.
"Top autumn leaves spots in Kyoto"
β Arashiyama, Eikando, Tofukuji, Rurikoin... with star rating and exact peak datesFlowers
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
"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 tipsFilter 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.
"What fruit can I pick in September in Japan?"
β Grape at peak (Yamanashi, Nagano), Pear at peak, Peach ending, Apple startingfruit_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.
"Strawberry farms near Tokyo in April"
β Farms in the Tokyo/Kanto area with strawberry in season, GPS + Jalan linksWeather
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.
"Weather in Osaka this weekend?"
β Min/max temp, rain % per 6-hour window, conditionsUsage
Ask your MCP client for a goal, not a tool name. A few good examples:
"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, orkoyo_forecast.Drill into exact parks, temples, farms, or events with
sakura_spots,koyo_spots,fruit_farms,flowers_spots, orfestivals_list.Check
weather_forecastif 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| C3Static 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:
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:
BLOOM RATE β progress toward first bloom (ιθ±)
βββββββββββββββββββββββββββββββββββββββββββββββββ
0% 60% 85% 100%
β Bud β Swelling β Opening β <- First bloom!
θ±θ½γγ€γΌγΏ θ¨γγΏε§γ ιγε§γ ιθ±
FULL BLOOM RATE β progress toward mankai / ζΊι
βββββββββββββββββββββββββββββββββββββββββββββββββ
0% 20% 40% 70% 90% 100%
βOpenβ 30% β 50% β 70% βFull β <- Mankai!
ιθ± δΈεε²γ δΊεε²γ δΈεε²γ ζΊι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
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/mcpTypeScript. No external database. No auth required.
Data sources
Source | What it provides |
Sakura and koyo forecasts, bloom percentages, 1,700+ viewing spots | |
City weather forecasts | |
Fruit picking farm listings | |
Hand-curated | 90 flower spots, 46 festival entries, each with an official URL and verified GPS |
Contributing
PRs welcome, especially for flower spots, festival entries, and farm corrections. See CONTRIBUTING.md.
Formerly
Previously published as japan-sakura-koyo-mcp (deprecated). Use this package instead:
npx -y japan-seasons-mcpLicense
MIT Β· Built by Haoming Koo
Available Tools
17 toolsfestivals_listJapan Seasonal FestivalsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional event type filter. Allowed values: 'all', 'fireworks', 'matsuri', or 'winter'. Omit or use 'all' to return every event type. | |
| month | No | 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. | |
| prefecture | No | Optional prefecture filter such as 'Tokyo', 'Kyoto', 'Osaka', or 'Hokkaido'. Partial case-insensitive matches are supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true. The description adds value by specifying return details: curated events with typical dates, attendance, URLs, notes, GPS coordinates. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, no unnecessary words. Front-loaded with purpose and usage, then return details. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no required parameters and low complexity, the description is complete. It covers purpose, usage, returns, and exclusions. Output schema exists (though not shown), so return details are adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 3 parameters. Each parameter has detailed schema descriptions (month with examples, type with allowed values, prefecture with support). Description does not add additional semantics beyond schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'recurring Japan events' and lists specific types (fireworks, matsuri, winter festivals), making the purpose clear. It also distinguishes from sibling tools by stating what not to use it for (bloom timing, one-off concerts, weather forecasts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: when to use (for recurring events to plan around) and what not to use (for bloom timing, etc.). It does not explicitly name sibling tools as alternatives but the exclusion criteria effectively define scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch Japan in Seasons ResultARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Result ID returned by search, such as sakura-now, koyo-now, flowers, festivals, fruit, or mcp-install. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that it returns citation URL and text, and that it fetches live data for certain IDs, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, no extraneous information. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with high schema coverage and output schema, the description is adequate. It explains the tool's role in a workflow (after search) and hints at live data behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema parameter description already includes examples. The tool description mentions the parameter implicitly but does not add significant new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'retrieve a full Japan in Seasons result with citation URL and text' after search. It distinguishes itself from siblings by specifying it is a follow-up to search, while siblings are specific data tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this after search', providing clear context. Also mentions handling live sakura/autumn leaves IDs, implying usage for those cases. Does not explicitly state alternatives, but the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flowers_spotsSeasonal Flower SpotsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | 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. | |
| month | No | 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. | |
| prefecture | No | Optional prefecture filter such as 'Kanagawa', 'Kyoto', 'Tokyo', or 'Hokkaido'. Partial case-insensitive matches are supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent, so the description adds value by detailing the returned data (peak windows, URLs, notes, GPS). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear, front-loaded sentences with zero waste. Every sentence provides essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage, an output schema, and clear purpose/usage guidelines, the description is fully adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter details. It mentions output fields but not parameter specifics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is for non-sakura flower trips (plum, wisteria, etc.) and returns curated spots with specific details. It explicitly distinguishes from sakura and koyo tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (non-sakura flowers) and when not to (cherry blossom or autumn leaves), with specific alternatives (sakura or koyo tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fruit_farmsFruit Picking FarmsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fruit | No | Optional fruit name such as 'Strawberry', 'Apple', 'Grape', 'Peach', 'Cherry', or 'Mikan'. Matching is case-insensitive. Use with or instead of month. | |
| limit | No | Optional maximum number of farms to return. Default is 30 and the hard maximum is 100. | |
| month | No | 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. | |
| region | No | Optional prefecture, city, or region substring such as 'Yamanashi', 'Nagano', 'Aomori', or 'Tokyo'. Partial case-insensitive matching is supported against farm names and addresses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. The description adds that month filtering automatically narrows to in-season fruits, which is a behavioral detail beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: first states use case, second describes behavior, third gives alternative. No irrelevant information; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 optional parameters, read-only behavior, and an output schema, the description covers essential context: what it returns, filtering behavior, and when to use alternatives. Complete for effective agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds value by explaining that month filtering narrows results automatically and mentions case-insensitive matching, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides fruit-picking farms, booking links, and map coordinates. It distinguishes from sibling fruit_seasons by specifying when to use that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (when user needs actual farms) and when not to (if only season info, call fruit_seasons first), providing clear alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fruit_seasonsFruit Picking Season CalendarARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. Description adds context about returning calendar, peak months, regions, and notes for 14 fruits, which is valuable beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the use case and return information. Every sentence is necessary, no redundancy. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional parameter, output schema present), the description fully covers what the tool does, what it returns, and how to proceed. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the only parameter 'month' well-described in the input schema (range, behavior). Description does not add additional parameter semantics beyond what schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: returning fruit season info for a given month or best months for specific fruits. It uses specific verbs ('returns') and resource ('fruit season calendar'), and distinguishes from sibling 'fruit_farms' which handles farm listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (user asks about fruit seasons) and when not to (use fruit_farms for listings). Provides a clear alternative and next step, making selection unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
japan_seasonal_answerAnswer Japan Seasonal Travel QuestionARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| season | No | 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. | |
| end_date | No | Optional trip end date in YYYY-MM-DD format. Provide this when the user gives travel dates. | |
| location | No | Optional city, prefecture, or region such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku. | |
| question | No | 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 | No | Optional trip start date in YYYY-MM-DD format. Provide this when the user gives travel dates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The tool has annotations readOnlyHint=true and idempotentHint=true, which already cover safety. The description adds minimal behavioral context ('routes to the right live dataset and returns a ready-to-use recommendation'), which is helpful but not substantial beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose and usage, and every sentence adds value. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 optional parameters, an output schema, and numerous sibling tools, the description is complete. It tells what the tool does, when to use it, and when not to, which is sufficient for an agent to correctly select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The tool description does not add extra parameter-level detail beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool is for broad Japan seasonal travel questions, listing specific topics like cherry blossoms, autumn leaves, and festivals. It clearly differentiates from siblings by noting it is the best entry point for natural traveler prompts and contrasts with non-seasonal tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use ('when the user asks a broad Japan seasonal travel question') and when-not-to-use ('Do not use for hotels, flights, trains, visas, restaurants, or generic itinerary planning unrelated to seasonal timing'). This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kawazu_forecastKawazu Early Cherry Blossom ForecastARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| spot_name | No | 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. | |
| include_spots | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description's burden is lower. It adds context by detailing the returned data (forecast comment, map links, spot coordinates, bloom percentages). It does not mention rate limits or auth needs, but these are not critical given the read-only nature. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with usage conditions, followed by return values and a prohibition. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, output schema exists, no required fields), the description is complete: it covers when to use, what is returned, and what not to use. No gaps for an agent to make correct invocation decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The tool description does not add additional meaning beyond what the schema provides (e.g., it mentions 'full list of Kawazu viewing spots' which aligns with include_spots but does not introduce new insights). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it returns Kawazu cherry blossom forecast data including JMC comment, map links, and spot details. It explicitly identifies the target user requests (January-February, Kawazu-zakura, early blossoms, Izu Peninsula) and distinguishes from standard sakura tools, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: when to use ('January-February cherry blossom requests', 'specifically asks about Kawazu-zakura, early blossoms, or the Izu Peninsula') and when not to use ('Do not use this for standard Somei-Yoshino sakura elsewhere'). This directly helps the agent select the correct tool from siblings like sakura_forecast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
koyo_best_datesBest Autumn Leaves Dates for TripARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | Trip end date in YYYY-MM-DD format, for example '2026-11-27'. Must be on or after start_date. | |
| start_date | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), description discloses that it checks overlap of trip dates with each city's koyo window based on forecast peak dates. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then usage conditions and exclusions. Every word adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, output schema present, and clear differentiation from siblings, the description is fully adequate for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers both parameters with format and constraints. Description reinforces their role as trip dates but adds no new semantic detail beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'returns' and resource 'cities' with specific conditions (autumn travel dates). Distinguishes from sibling by specifying 'maple or ginkgo viewing windows' and not for general climate or exact park recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (autumn travel dates, want best cities) and when not to (general climate, no dates). Provides alternative sibling tool 'koyo_spots' when prefecture is known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
koyo_forecastAutumn Leaves ForecastARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | 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 | No | Optional tree filter. Use 'maple' for momiji-only dates, 'ginkgo' for ginkgo-only dates, or omit/use 'all' to return both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description adds valuable behavioral context: it returns city-level forecast dates, maps, and regional commentary from Japan Meteorological Corporation, and specifies the time period (October-December). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences covering purpose, when to use, what returns, and exclusion criteria. Every word adds value with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations (readOnly, idempotent) and the presence of an output schema, the description fully informs the agent about the tool's scope, outputs, and limitations. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with clear descriptions. The tool description adds no new semantic detail for parameters beyond what's in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses precise verbs ('forecast') and a specific resource ('autumn leaves peak'), and clearly distinguishes from sibling tools like koyo_spots and koyo_now by stating it provides forecasts, not current conditions or specific spots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (peak timing, city comparisons, national overview) and when not to use (specific temples/gardens), with a direct alternative: 'call koyo_spots next for those.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
koyo_nowAutumn Leaves Forecast NowARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Optional city, prefecture, or region filter such as Kyoto, Tokyo, Hokkaido, Kansai, Nikko, Tohoku. Omit for nationwide status. | |
| end_date | No | Optional trip end date in YYYY-MM-DD format. Use with start_date when the user gives travel dates. | |
| start_date | No | Optional trip start date in YYYY-MM-DD format. Use with end_date when the user gives travel dates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description does not need to repeat safety. It adds context about the data source (Japan Meteorological Corporation maple and ginkgo forecast data) and the nature of the answer (concise, current). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the key directive, and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, and exclusions. An output schema exists so return values are documented elsewhere. For a simple query tool with optional parameters, this is sufficient. It does not discuss pagination or edge cases, but that is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all parameters. The description adds no additional detail beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it answers broad autumn leaves prompts with a concise current answer from live Japan Meteorological Corporation data. It includes example queries and explicitly excludes cherry blossoms and other topics, but does not explicitly distinguish from closely related koyo siblings like koyo_forecast or koyo_best_dates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use ('Use this first for broad autumn leaves prompts'), provides example queries, and specifies when not to use (cherry blossoms, fruit picking, hotels, etc.). This gives strong guidance for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
koyo_spotsAutumn Leaves Viewing SpotsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prefecture | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and idempotentHint, and description adds behavioral context: returns specific fields (dates, leaf type, popularity, GPS), per-prefecture operation, and top-destinations when prefecture omitted. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: primary use, outputs, alternative/restrictions. Every sentence adds unique value. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, full schema coverage, and output schema exists, description provides complete context: use case, output details, parameter behavior, exclusions, and sibling references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and describes the parameter well. Description adds context about omitting prefecture for top destinations, reinforcing schema. Single parameter is fully documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'get exact spots' and resource 'autumn leaves viewing spots'. It distinguishes from siblings by specifying use case (user knows prefecture) and explicitly warns against using for cross-city date matching, directing to koyo_forecast or koyo_best_dates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (user knows prefecture), when to omit prefecture (for top destinations guide), and when not to use (cross-city date matching). Provides alternative tools (koyo_forecast, koyo_best_dates).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sakura_best_datesBest Cherry Blossom Dates for TripARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | Trip end date in YYYY-MM-DD format, for example '2026-04-14'. Must be on or after start_date. | |
| start_date | Yes | Trip start date in YYYY-MM-DD format, for example '2026-04-08'. The tool compares this against each city's sakura viewing window. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, so safety is covered. The description adds that it uses observed or forecast full-bloom dates and returns overlapping cities, providing useful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each purposeful: usage context, output description, exclusion and alternative. Front-loaded and efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety, well-described schema parameters, and an output schema existing (as per context signals), the description is complete. It also addresses sibling differentiation, making it sufficient for an AI agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions including format and example. The tool description does not add new parameter meaning, but schema already explains them well. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns cities with sakura viewing windows overlapping given travel dates. It specifies the verb 'returns' and the resource 'cities', and explicitly distinguishes from kawazu_forecast for early-bloom requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('when the user provides travel dates and wants to know where sakura is likely to be best') and when not to use ('Do not use for January-February early-bloom Kawazu requests; use kawazu_forecast'), providing clear guidance and an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sakura_forecastCherry Blossom ForecastARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: specifies data source (Japan Meteorological Corporation), what data is returned (forecast dates, full-bloom, observed, historical averages, status), and scale (48 observation cities). Annotations already indicate read-only and idempotent, so bar is lower; description adds significant value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundancy. Every sentence earns its place: first for when to use, second for what it returns and sibling guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has one optional parameter, output schema present, annotations cover read-only/idempotent. Description fully captures purpose, usage boundaries, return content, and sibling relationship. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add parameter-specific detail beyond what schema provides, but it does contextualize the parameter's role by describing the overall tool scope. No extra semantics needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (use this), resource (cherry blossom timing), and scope (cities across Japan). Explicitly distinguishes from siblings like sakura_spots and koyo_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use criteria ('when the user asks about cherry blossom timing...') and when-not-to-use instructions ('Do not use for specific parks or temples; call sakura_spots'). Also suggests alternative sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sakura_nowSakura Forecast NowARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city, prefecture, or region filter such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku. Omit for nationwide status. | |
| end_date | No | Optional trip end date in YYYY-MM-DD format. Use with start_date when the user gives travel dates. | |
| start_date | No | Optional trip start date in YYYY-MM-DD format. Use with end_date when the user gives travel dates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds that it returns 'concise current answer', 'specific viewing spot suggestions when available', and 'next-step guidance', which are useful behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose and examples, followed by clear exclusions. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple scope (3 optional params, output schema exists but not shown), the description fully covers when to use, what it does, and what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for city, start_date, and end_date. The description reinforces parameter usage through examples like 'How is Kyoto sakura looking?' for the city parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it handles broad cherry blossom prompts, uses live Japan Meteorological Corporation data, and gives viewing spot suggestions. It distinguishes from siblings by explicitly excluding autumn leaves and other topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this first for broad cherry blossom prompts' with example queries, and lists exclusions. However, it does not compare directly with other sakura siblings like sakura_forecast or sakura_spots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sakura_spotsCherry Blossom Viewing SpotsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prefecture | Yes | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, but the description adds significant behavioral context: fallback logic for observations (JMC reporter within 48 hours vs. bloom-meter estimate with stale secondary), and inclusion of JMA reference station summary. This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with usage guidance, covers behavior, and ends with exclusions. Every sentence is necessary and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (output schema present, single parameter, no nested objects), the description is complete: it covers purpose, usage, behavioral logic, parameter details, and references sibling tools. The output schema accounts for return values, so no further detail needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by specifying accepted formats (English name or numeric code) and the limitation of returning one prefecture at a time. This enhances the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving exact cherry blossom viewing spots with current status and GPS coordinates for a known prefecture. It distinguishes from siblings by specifying it is not for nationwide timing comparisons, directing to sakura_forecast or sakura_best_dates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('when the user already knows the prefecture') and when not to ('Do not use this for nationwide timing comparisons or date matching; use sakura_forecast or sakura_best_dates first'). Provides clear guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch Japan in SeasonsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language search query, for example 'Japan cherry blossom forecast', 'Kyoto autumn leaves', or 'fruit picking in Japan in September'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint; description adds detail about live dataset retrieval and returning result IDs for fetch, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the purpose, include usage guidance, and no redundant information. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, clear description, comprehensive annotations, and knowledge of output schema, the description fully enables correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (query), and the description adds natural-language examples (e.g., 'cherry blossom forecast') that enhance the schema's already complete description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool performs 'retrieval' over the 'Japan in Seasons' dataset, distinct from sibling tools. Lists specific topics it handles and excludes unrelated areas like hotels or flights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit positive use cases (cherry blossoms, autumn leaves, etc.) and negative guidance (do not use for hotels, flights, etc.), leaving no ambiguity about when to choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_forecastJapan Weather ForecastARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | The tool's user-facing answer as Markdown or JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, so the description's added value is limited to return content details and city scope. No contradictions, but does not add significant behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences, zero waste. The first sentence clearly states the primary use case, the second provides exclusions and alternatives. Front-loaded with key guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (not shown but indicated) and the tool has only one parameter, the description covers all necessary aspects: purpose, usage context, and constraints. No gaps for an AI agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description does not add meaning beyond what the schema's property description already provides. The tool has only one parameter, and the description clarifies the city-specific scope, but this is implicit in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('returns') and specifies the resource ('next 3 days of Japan Meteorological Agency forecast text, temperatures, and 6-hour rain probabilities for one supported city'). It also distinguishes from sibling tools (sakura/koyo forecasts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('short-range weather could change recommendation') and when not to ('Do not use for seasonal bloom timing months in advance'), with clear alternatives (sakura or koyo forecast tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v0.4.14- Changed
festivals_list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
fetch1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
flowers_spots1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
fruit_farms1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
fruit_seasons1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
japan_seasonal_answer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
kawazu_forecast1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
koyo_best_dates1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
koyo_forecast1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
koyo_now1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
koyo_spots1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
sakura_best_dates1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
sakura_forecast1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
sakura_now1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
sakura_spots1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
search1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
- Changed
weather_forecast1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answer": { + "description": "The tool's user-facing answer as Markdown or JSON text.", + "type": "string" + } + }, + "required": [ + "answer" + ], + "type": "object" +}
4 tool updates
v0.1.5- Changed
japan_seasonal_answer1 field changed- changed
Input schema / properties / location / descriptionPrevious value: -"Optional city, prefecture, or region such as Tokyo, Kyoto, Hokkaido, Kansai, or Tohoku."New value: +"Optional city, prefecture, or region such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku."
- Changed
koyo_forecast1 field changed- changed
Input schema / properties / region / descriptionPrevious value: -"Optional case-insensitive filter for a region, prefecture, or city such as 'Kansai', 'Kyoto', 'Hokkaido', or 'Tokyo'. Use this when the user only cares about one part of Japan instead of the full national forecast."New value: +"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."
- Changed
koyo_now1 field changed- changed
Input schema / properties / region / descriptionPrevious value: -"Optional city, prefecture, or region filter such as Kyoto, Tokyo, Hokkaido, Kansai, Nikko, or Tohoku. Omit for nationwide status."New value: +"Optional city, prefecture, or region filter such as Kyoto, Tokyo, Hokkaido, Kansai, Nikko, Tohoku. Omit for nationwide status."
- Changed
sakura_now1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"Optional city, prefecture, or region filter such as Tokyo, Kyoto, Hokkaido, Kansai, or Tohoku. Omit for nationwide status."New value: +"Optional city, prefecture, or region filter such as Tokyo, Kyoto, Hokkaido, Kansai, Tohoku. Omit for nationwide status."
5 tool updates
v0.1.2- Added
fetch - Added
japan_seasonal_answer - Added
koyo_now - Added
sakura_now - Added
search
12 tool updates
v0.1.1- Added
festivals_list - Added
flowers_spots - Added
fruit_farms - Added
fruit_seasons - Added
kawazu_forecast - Added
koyo_best_dates - Added
koyo_forecast - Added
koyo_spots - Added
sakura_best_dates - Added
sakura_forecast - Added
sakura_spots - Added
weather_forecast
TDQS
Scored across 17 tools
Each tool targets a distinct seasonal travel aspect: separate tools for sakura, koyo, other flowers, festivals, fruit, weather, and a general router. Overlapping concepts like multiple sakura tools are clearly differentiated by use case (current status, forecasting, spot finding, date matching), ensuring agents can select correctly.
All tools use snake_case with a consistent pattern: either domain_action (sakura_forecast, koyo_spots) or category_list (festivals_list, flowers_spots). Even standalone tools like fetch and search follow the predictable style.
17 tools cover the full scope of Japan seasonal travel: multiple granular tools for sakura and koyo, plus dedicated tools for other flowers, festivals, fruit, weather, and retrieval. Each tool serves a clear, necessary role without bloat.
The tool set covers all major seasonal travel domains: cherry blossoms (4 tools + early bloom), autumn leaves (4 tools), other flowers, festivals, fruit picking (2 tools), and weather. The search/fetch system and router fill any gaps, providing a complete surface for seasonal travel queries.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Forecast peak autumn-foliage dates for viewing spots across Japan. Free tier, no key.
17+ Japan MCP tools (weather/calendar v2/local-pack/enrich). x402 on Base, wallet-free trial.
39 Japanese locale APIs β wareki, NTA invoice, ζ³δΊΊηͺε·, postal, romanization, kanji-kana (Workers AI).
Japan data tools for AI agents: calendar (rokuyo), address, name splitting, corporate number lookup
Related MCP Servers
- MIT
- AlicenseAqualityBmaintenanceProvides access to Japan Meteorological Agency (JMA) weather data including real-time observations, historical weather data, and forecasts from 1286 AMeDAS stations across Japan.111MIT
- AlicenseNot gradedqualityDmaintenanceProvides weather information for 110 cities across Japan with natural language support for location names in kanji, hiragana, and katakana. Retrieves current weather conditions and forecasts using OpenMeteo API through MCP-compliant tools.1MIT
- AlicenseAqualityCmaintenanceJapan-specific utilities for AI agents β era β Western year conversion, kanji-to-romaji, postal code lookup, national holidays, kana conversion, and Japanese name splitting. 9 tools, MIT licensed, install via uvx.9MIT