{"serverId":"mcp-registry/com.southlondonscientific/hermes","tools":[{"name":"compare_locations","fixed":{"name":"compare_locations","description":"Compare current air quality across multiple locations side-by-side.\n\nReturns a ranked comparison by pollutant with DAQI bands and distance to\nnearest monitor. Useful for comparing development sites, school locations,\nor residential options.\n\nArgs:\n    locations: List of 2–6 locations (postcodes, place names, or \"lat,lon\").\n    pollutants: Optional filter, e.g. [\"NO2\", \"PM2.5\"]. Default: all available.\n","inputSchema":{"type":"object","title":"compare_locationsArguments","required":["locations"],"properties":{"locations":{"type":"array","items":{"type":"string"},"title":"Locations"},"pollutants":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Pollutants","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":214,"tokensAfter":214},{"name":"get_aqi_summary","fixed":{"name":"get_aqi_summary","description":"Get an AQI assessment with health advice and WHO compliance check.\n\nReturns a 'summary' with a plain-English health assessment, advice for\ngeneral and at-risk populations, and WHO guideline context. Present the\nsummary to users first. Also returns raw 'aqi' and 'who_compliance' data.\n\nArgs:\n    location: Postcode, place name, or \"lat,lon\".\n    index: AQI system — \"UK_DAQI\" (default), \"WHO\", or \"US_EPA\".\n    period: \"current\", \"today\", \"this_week\", or \"this_month\".\n","inputSchema":{"type":"object","title":"get_aqi_summaryArguments","required":["location"],"properties":{"index":{"type":"string","title":"Index","default":"UK_DAQI"},"period":{"type":"string","title":"Period","default":"current"},"location":{"type":"string","title":"Location"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":228,"tokensAfter":228},{"name":"get_current_aq","fixed":{"name":"get_current_aq","description":"Get the most recent air quality readings near a location, with health context.\n\nReturns a 'summary' with a plain-English health assessment and advice\nfor general and at-risk populations. Present the summary to users first.\nAlso returns individual 'readings' from nearby monitors and 'metadata'\nabout data freshness and sources.\n\nArgs:\n    location: Postcode, place name, or \"lat,lon\".\n    radius_km: Search radius in kilometres (default 2.0).\n    pollutants: Optional filter, e.g. [\"NO2\", \"PM2.5\"].\n ","inputSchema":{"type":"object","title":"get_current_aqArguments","required":["location"],"properties":{"sources":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Sources","default":null},"location":{"type":"string","title":"Location"},"radius_km":{"type":"number","title":"Radius Km","default":3.5},"pollutants":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Pollutants","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":281,"tokensAfter":281},{"name":"get_historical_aq","fixed":{"name":"get_historical_aq","description":"Get historical air quality data for a site or location, with health context.\n\nReturns a 'narrative' with plain-English interpretation of trends,\nWHO guideline exceedances, and guideline comparisons. Present the\nnarrative to users first. Also returns raw 'data' and 'summary' statistics.\n\nArgs:\n    start_date: Start date (ISO format, e.g. \"2025-01-01\").\n    end_date: End date (ISO format).\n    location: Postcode, place name, or \"lat,lon\". Provide this or site_code.\n    site_code: Direct site code.","inputSchema":{"type":"object","title":"get_historical_aqArguments","required":["start_date","end_date"],"properties":{"end_date":{"type":"string","title":"End Date"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location","default":null},"frequency":{"type":"string","title":"Frequency","default":"daily"},"site_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site Code","default":null},"pollutants":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Pollutants","default":null},"start_date":{"type":"string","title":"Start Date"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":320,"tokensAfter":320},{"name":"kb_get_guidelines","fixed":{"name":"kb_get_guidelines","description":"Get current air quality guideline and target values.\n\nArgs:\n    framework: \"WHO\", \"UK\", \"EU\", or \"all\" (default).\n    pollutant: Optional filter for a specific pollutant.\n\nReturns the full guidelines document (markdown).\n","inputSchema":{"type":"object","title":"kb_get_guidelinesArguments","properties":{"framework":{"type":"string","title":"Framework","default":"all"},"pollutant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pollutant","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"kb_get_health_effects","fixed":{"name":"kb_get_health_effects","description":"Get health evidence summaries for a pollutant and population group.\n\nArgs:\n    pollutant: \"NO2\", \"PM2.5\", \"PM10\", or \"O3\".\n    population_group: \"general\", \"children\", \"elderly\", \"respiratory\",\n        \"cardiovascular\", or \"pregnant\" (default \"general\").\n\nReturns health effects document (markdown).\n","inputSchema":{"type":"object","title":"kb_get_health_effectsArguments","required":["pollutant"],"properties":{"pollutant":{"type":"string","title":"Pollutant"},"population_group":{"type":"string","title":"Population Group","default":"general"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"kb_get_local_context","fixed":{"name":"kb_get_local_context","description":"Get area-specific contextual information.\n\nArgs:\n    area: \"southwark\", \"london\", or a specific neighbourhood.\n\nReturns local context document (markdown).\n","inputSchema":{"type":"object","title":"kb_get_local_contextArguments","properties":{"area":{"type":"string","title":"Area","default":"southwark"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"kb_get_monitoring_explainer","fixed":{"name":"kb_get_monitoring_explainer","description":"Get plain-language explanations of monitoring methods and limitations.\n\nArgs:\n    topic: One of \"how_monitors_work\", \"regulatory_vs_lowcost\",\n        \"what_readings_mean\", \"why_numbers_differ\",\n        \"representativeness\", \"data_quality\", \"what_monitors_measure\".\n\nReturns monitoring explainer document (markdown).\n","inputSchema":{"type":"object","title":"kb_get_monitoring_explainerArguments","required":["topic"],"properties":{"topic":{"type":"string","title":"Topic"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"kb_get_practical_advice","fixed":{"name":"kb_get_practical_advice","description":"Generic protective-action guidance for a category of situation\n(NOT keyed to an individual user's context).\n\nFor *personalised* advice that takes the user's specific health\nsituation into account (asthma, pregnancy, gas cooker, tube commute,\nindoor sources), prefer the Clara MCP server's `contextual_advice`\ntool — it composes Hermes live readings with personal context to\ngive an answer keyed to *this* user, *now*. Use this KB tool only\nas a fallback or when Clara is not available.\n\nArgs:\n    sit","inputSchema":{"type":"object","title":"kb_get_practical_adviceArguments","required":["situation"],"properties":{"situation":{"type":"string","title":"Situation"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":202,"tokensAfter":202},{"name":"list_monitors","fixed":{"name":"list_monitors","description":"List air quality monitoring sites near a location, with context.\n\nReturns a 'summary' explaining how many monitors were found, their\noperational status, and what each monitor type represents. Present the\nsummary to users first. Also returns a 'monitors' list with full metadata.\n\nArgs:\n    location: Postcode, place name, or \"lat,lon\".\n    radius_km: Search radius in kilometres (default 5.0).\n    sources: Optional filter, e.g. [\"AURN\", \"BREATHE_LONDON\"].\n","inputSchema":{"type":"object","title":"list_monitorsArguments","required":["location"],"properties":{"sources":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Sources","default":null},"location":{"type":"string","title":"Location"},"radius_km":{"type":"number","title":"Radius Km","default":5}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":234,"tokensAfter":234},{"name":"regulatory_stats","fixed":{"name":"regulatory_stats","description":"Get LAQM Annual Status Report-style statistics for a location.\n\nReturns annual means, percentiles, exceedance counts, data capture\npercentages, and compliance assessment against UK legal limits and\nWHO guidelines.\n\nArgs:\n    location: Postcode, place name, or \"lat,lon\".\n    year: Calendar year to report on (default: most recent complete year).\n    pollutants: Optional filter, e.g. [\"NO2\", \"PM2.5\"]. Default: all available.\n","inputSchema":{"type":"object","title":"regulatory_statsArguments","required":["location"],"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year","default":null},"location":{"type":"string","title":"Location"},"pollutants":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Pollutants","default":null}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":235,"tokensAfter":235}],"toolsChanged":11,"tokensSaved":0,"todo":[{"tool":"assess_location_aq","params":["purpose","location"]},{"tool":"chart_aq_trend","params":["end_date","location","frequency","site_code","pollutants","start_date","show_daqi_bands","show_who_guidelines"]},{"tool":"compare_locations","params":["locations","pollutants"]},{"tool":"get_aqi_summary","params":["index","period","location"]},{"tool":"get_current_aq","params":["sources","location","radius_km","pollutants"]},{"tool":"get_historical_aq","params":["end_date","location","frequency","site_code","pollutants","start_date"]},{"tool":"kb_get_guidelines","params":["framework","pollutant"]},{"tool":"kb_get_health_effects","params":["pollutant","population_group"]},{"tool":"kb_get_local_context","params":["area"]},{"tool":"kb_get_monitoring_explainer","params":["topic"]},{"tool":"kb_get_practical_advice","params":["situation"]},{"tool":"list_monitors","params":["sources","location","radius_km"]},{"tool":"regulatory_stats","params":["year","location","pollutants"]},{"tool":"time_patterns","params":["period","location","pollutant"]},{"tool":"trend_analysis","params":["years","location","pollutant"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}