Why MCP
Anthropic's Model Context Protocol turns Claude into a tool-using agent. The catch: most MCP servers are toys — one tool, no caching, no annotations, undocumented inputs. They pass the spec but they don't pass the bar for production.
I built Japan in Seasons to find out how far the bar actually goes. The result: a server that scores 100/100 on Smithery's quality audit and answers questions like “where should I see cherry blossoms next week?” with current forecast data — not training-time guesses.
The 12 tools
sakura_now, sakura_forecast, sakura_best_dates, sakura_spots, kawazu_forecast — cherry blossom timing by city + best viewing spots, including the early-January Izu Kawazu-zakura.koyo_now, koyo_forecast, koyo_best_dates, koyo_spots — autumn-leaves timing and spots.flowers_spots — non-sakura seasonal flowers: plum, wisteria, hydrangea, lavender, sunflower, cosmos.festivals_list — recurring fireworks, matsuri, and winter events with official links.fruit_seasons, fruit_farms — what's in season and where to pick it.weather_forecast — short-range weather for trip-planning.japan_seasonal_answer — the meta-tool that picks the right specific tool given a broad question.How I went from 64/100 to 100/100
The first Smithery audit scored 64. Every gap turned into a fix, and every fix taught me something about how the protocol expects you to behave:
- Tool descriptions need to read like API docs, not blog posts. Action verb first, scope second, side-effects third.
- Dot-notation naming (
sakura.nownotget_sakura_now) reads cleanly in tool-use traces and helps Claude pick the right tool. - Annotations (
readOnlyHint,idempotentHint) let the client decide whether retries are safe. - Caching on heavy endpoints — forecasts don't change every minute; 24-hour TTLs survive token budgets and reduce origin load.
- Smithery YAML with full metadata, license, and a clean install path. Quality bar items, not afterthoughts.
The full walkthrough is the most-read post on my blog — it's reusable as a skill template for any MCP server.