{"transport":"streamable-http","protocolVersion":"2025-06-18","serverInfo":{"name":"wherewhen","version":"1.0.0"},"capabilities":{"tools":{"listChanged":false}},"tools":[{"name":"wherewhen_resolve","title":"WhereWhen — place, local time, holiday, meeting overlap","description":"Resolve free-text place names to coordinates, IANA timezone, current local time, DST state, and whether it is a working day (weekend and public-holiday aware, per country and optional subdivision). With two or more places, also returns the concrete UTC intervals in which every location is simultaneously inside working hours on a working day. Use this whenever a task involves scheduling, a meeting time, a deadline in someone else's timezone, 'what time is it there', or whether a date is a holiday or business day somewhere. The model has no clock and no current DST or holiday state; this call supplies them.","inputSchema":{"type":"object","properties":{"places":{"type":"array","minItems":1,"maxItems":12,"description":"Free-text place strings. Accepts city names ('Bengaluru'), noisy org phrasing ('our NYC office'), 'City, Country' or 'City, State', IATA/ICAO airport codes ('SFO','BLR'), and native-script names ('東京').","items":{"type":"string"}},"coordinates":{"type":"array","description":"Optional raw points, used instead of or alongside `places`.","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"label":{"type":"string"}},"required":["lat","lng"]}},"date":{"type":"string","description":"Single civil date 'YYYY-MM-DD' to evaluate. Omit for 'now'."},"date_range":{"type":"object","description":"Inclusive civil date range. Max span 60 days.","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"]},"subdivisions":{"type":"object","description":"Optional ISO 3166-2 subdivision per input index or place string, to resolve regional holidays. e.g. {\"Bengaluru\":\"KA\"}. Without it, national holidays only.","additionalProperties":{"type":"string"}},"business_hours":{"type":"object","description":"Override the working window used by the overlap solver. Applies to all places unless `per_place` is given.","properties":{"start":{"type":"string","default":"09:00"},"end":{"type":"string","default":"18:00"},"per_place":{"type":"object","additionalProperties":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}}}}}},"holiday_types":{"type":"array","description":"Which holiday classes count as non-working. Default ['public'] only.","items":{"type":"string","enum":["public","bank","school","observance","optional"]},"default":["public"]},"min_overlap_minutes":{"type":"integer","default":30,"description":"Discard overlap windows shorter than this."}},"required":["places"]}}],"endpoint":"https://wherewhen.seriouss.workers.dev/mcp","usage":"POST JSON-RPC 2.0 here: initialize, tools/list, tools/call."}