Hermes — Air Quality Intelligence

UK air quality MCP: live readings, historical trends, LAQM stats, WHO checks, knowledge base.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
74%
命名の品質
87%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,490トークン数(ツール定義)
~1.0 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.73%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "hermes": {
      "url": "https://hermes.southlondonscientific.com/mcp"
    }
  }
}

リモートエンドポイント

https://hermes.southlondonscientific.com/mcpstreamable-http

できること

ツール一覧

ツール(15)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
⚪assess_location_aq(location, purpose)

Comprehensive air quality assessment for a location in one call. Combines nearby monitor discovery and current readings with DAQI into a single response. Use this as the first tool call for any air quality question about a location. For long-term trend analysis, use the dedicated `trend_analysis` tool. Returns a structured 'summary' dict with purpose-appropriate sections. Present the summary description to users first. Args: location: Postcode, place name, or "lat,lon". purpose: What the user needs — "general" (default), "health" (safety/worry), "exercise" (outdoor activity), or "planning" (homebuying/school assessment/long-term).

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "purpose": {
      "default": "general",
      "title": "Purpose",
      "type": "string"
    }
  },
  "required": [
    "location"
  ],
  "title": "assess_location_aqArguments"
}
🟢get_current_aq(location, radius_km, pollutants, sources)

Get the most recent air quality readings near a location, with health context. Returns a 'summary' with a plain-English health assessment and advice for general and at-risk populations. Present the summary to users first. Also returns individual 'readings' from nearby monitors and 'metadata' about data freshness and sources. Args: location: Postcode, place name, or "lat,lon". radius_km: Search radius in kilometres (default 2.0). pollutants: Optional filter, e.g. ["NO2", "PM2.5"]. sources: Optional filter, e.g. ["AURN", "BREATHE_LONDON"].

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "radius_km": {
      "default": 3.5,
      "title": "Radius Km",
      "type": "number"
    },
    "pollutants": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pollutants"
    },
    "sources": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sources"
    }
  },
  "required": [
    "location"
  ],
  "title": "get_current_aqArguments"
}
🟢get_historical_aq(start_date, end_date, location, site_code, pollutants, ...)

Get historical air quality data for a site or location, with health context. Returns a 'narrative' with plain-English interpretation of trends, WHO guideline exceedances, and guideline comparisons. Present the narrative to users first. Also returns raw 'data' and 'summary' statistics. Args: start_date: Start date (ISO format, e.g. "2025-01-01"). end_date: End date (ISO format). location: Postcode, place name, or "lat,lon". Provide this or site_code. site_code: Direct site code. Provide this or location. pollutants: Optional filter, e.g. ["NO2", "PM2.5"]. frequency: "hourly", "daily", or "monthly" (default "daily").

入力スキーマ

{
  "type": "object",
  "properties": {
    "start_date": {
      "title": "Start Date",
      "type": "string"
    },
    "end_date": {
      "title": "End Date",
      "type": "string"
    },
    "location": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Location"
    },
    "site_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Site Code"
    },
    "pollutants": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pollutants"
    },
    "frequency": {
      "default": "daily",
      "title": "Frequency",
      "type": "string"
    }
  },
  "required": [
    "start_date",
    "end_date"
  ],
  "title": "get_historical_aqArguments"
}
🟢get_aqi_summary(location, index, period)

Get an AQI assessment with health advice and WHO compliance check. Returns a 'summary' with a plain-English health assessment, advice for general and at-risk populations, and WHO guideline context. Present the summary to users first. Also returns raw 'aqi' and 'who_compliance' data. Args: location: Postcode, place name, or "lat,lon". index: AQI system — "UK_DAQI" (default), "WHO", or "US_EPA". period: "current", "today", "this_week", or "this_month".

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "index": {
      "default": "UK_DAQI",
      "title": "Index",
      "type": "string"
    },
    "period": {
      "default": "current",
      "title": "Period",
      "type": "string"
    }
  },
  "required": [
    "location"
  ],
  "title": "get_aqi_summaryArguments"
}
🟢list_monitors(location, radius_km, sources)

List air quality monitoring sites near a location, with context. Returns a 'summary' explaining how many monitors were found, their operational status, and what each monitor type represents. Present the summary to users first. Also returns a 'monitors' list with full metadata. Args: location: Postcode, place name, or "lat,lon". radius_km: Search radius in kilometres (default 5.0). sources: Optional filter, e.g. ["AURN", "BREATHE_LONDON"].

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "radius_km": {
      "default": 5,
      "title": "Radius Km",
      "type": "number"
    },
    "sources": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sources"
    }
  },
  "required": [
    "location"
  ],
  "title": "list_monitorsArguments"
}
🟢chart_aq_trend(start_date, end_date, location, site_code, pollutants, ...)

Generate a time series chart of air quality data. Returns a PNG chart image with a brief text summary. Use this when users ask about trends, patterns, or want to visualise air quality over time. Args: start_date: Start date (ISO format, e.g. "2025-01-01"). end_date: End date (ISO format). location: Postcode, place name, or "lat,lon". Provide this or site_code. site_code: Direct site code. Provide this or location. pollutants: Optional filter, e.g. ["NO2", "PM2.5"]. Defaults to NO2, PM2.5, PM10, O3 if not specified. frequency: "hourly", "daily", or "monthly" (default "daily"). show_who_guidelines: Show WHO guideline reference lines (default True). show_daqi_bands: Show DAQI band background shading (default True).

入力スキーマ

{
  "type": "object",
  "properties": {
    "start_date": {
      "title": "Start Date",
      "type": "string"
    },
    "end_date": {
      "title": "End Date",
      "type": "string"
    },
    "location": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Location"
    },
    "site_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Site Code"
    },
    "pollutants": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pollutants"
    },
    "frequency": {
      "default": "daily",
      "title": "Frequency",
      "type": "string"
    },
    "show_who_guidelines": {
      "default": true,
      "title": "Show Who Guidelines",
      "type": "boolean"
    },
    "show_daqi_bands": {
      "default": true,
      "title": "Show Daqi Bands",
      "type": "boolean"
    }
  },
  "required": [
    "start_date",
    "end_date"
  ],
  "title": "chart_aq_trendArguments"
}
⚪trend_analysis(location, pollutant, years)

Analyse the long-term trend in a pollutant near a location. Uses Theil-Sen slope estimation with Mann-Kendall significance testing to determine whether air quality is improving, worsening, or stable. Robust to outliers and missing data. Returns a 'summary' with plain-English trend description and statistical details. Present the summary to users first. Args: location: Postcode, place name, or "lat,lon". pollutant: Pollutant to analyse — "NO2", "PM2.5", "PM10", "O3" (default "NO2"). years: Number of years of data to analyse (default 5, range 2–5). Requests outside this range are clamped; the response includes ``metadata.years_clamped`` and a note in ``summary`` when so.

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "pollutant": {
      "default": "NO2",
      "title": "Pollutant",
      "type": "string"
    },
    "years": {
      "default": 5,
      "title": "Years",
      "type": "integer"
    }
  },
  "required": [
    "location"
  ],
  "title": "trend_analysisArguments"
}
🟢compare_locations(locations, pollutants)

Compare current air quality across multiple locations side-by-side. Returns a ranked comparison by pollutant with DAQI bands and distance to nearest monitor. Useful for comparing development sites, school locations, or residential options. Args: locations: List of 2–6 locations (postcodes, place names, or "lat,lon"). pollutants: Optional filter, e.g. ["NO2", "PM2.5"]. Default: all available.

入力スキーマ

{
  "type": "object",
  "properties": {
    "locations": {
      "items": {
        "type": "string"
      },
      "title": "Locations",
      "type": "array"
    },
    "pollutants": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pollutants"
    }
  },
  "required": [
    "locations"
  ],
  "title": "compare_locationsArguments"
}
🟢regulatory_stats(location, year, pollutants)

Get LAQM Annual Status Report-style statistics for a location. Returns annual means, percentiles, exceedance counts, data capture percentages, and compliance assessment against UK legal limits and WHO guidelines. Args: location: Postcode, place name, or "lat,lon". year: Calendar year to report on (default: most recent complete year). pollutants: Optional filter, e.g. ["NO2", "PM2.5"]. Default: all available.

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Year"
    },
    "pollutants": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pollutants"
    }
  },
  "required": [
    "location"
  ],
  "title": "regulatory_statsArguments"
}
⚪time_patterns(location, pollutant, period)

Analyse when pollution is highest — hour of day, day of week, and month. Returns temporal profiles showing typical patterns. Useful for advising on best times for outdoor exercise, school runs, or commuting. Args: location: Postcode, place name, or "lat,lon". pollutant: Pollutant to analyse — "NO2", "PM2.5", "PM10", "O3" (default "NO2"). period: Time window — "last_month", "last_3_months", "last_6_months", or "last_year" (default).

入力スキーマ

{
  "type": "object",
  "properties": {
    "location": {
      "title": "Location",
      "type": "string"
    },
    "pollutant": {
      "default": "NO2",
      "title": "Pollutant",
      "type": "string"
    },
    "period": {
      "default": "last_year",
      "title": "Period",
      "type": "string"
    }
  },
  "required": [
    "location"
  ],
  "title": "time_patternsArguments"
}
🟢kb_get_guidelines(framework, pollutant)

Get current air quality guideline and target values. Args: framework: "WHO", "UK", "EU", or "all" (default). pollutant: Optional filter for a specific pollutant. Returns the full guidelines document (markdown).

入力スキーマ

{
  "type": "object",
  "properties": {
    "framework": {
      "default": "all",
      "title": "Framework",
      "type": "string"
    },
    "pollutant": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pollutant"
    }
  },
  "title": "kb_get_guidelinesArguments"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "kb_get_guidelinesOutput"
}
🟢kb_get_health_effects(pollutant, population_group)

Get health evidence summaries for a pollutant and population group. Args: pollutant: "NO2", "PM2.5", "PM10", or "O3". population_group: "general", "children", "elderly", "respiratory", "cardiovascular", or "pregnant" (default "general"). Returns health effects document (markdown).

入力スキーマ

{
  "type": "object",
  "properties": {
    "pollutant": {
      "title": "Pollutant",
      "type": "string"
    },
    "population_group": {
      "default": "general",
      "title": "Population Group",
      "type": "string"
    }
  },
  "required": [
    "pollutant"
  ],
  "title": "kb_get_health_effectsArguments"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "kb_get_health_effectsOutput"
}
🟢kb_get_local_context(area)

Get area-specific contextual information. Args: area: "southwark", "london", or a specific neighbourhood. Returns local context document (markdown).

入力スキーマ

{
  "type": "object",
  "properties": {
    "area": {
      "default": "southwark",
      "title": "Area",
      "type": "string"
    }
  },
  "title": "kb_get_local_contextArguments"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "kb_get_local_contextOutput"
}
🟢kb_get_practical_advice(situation)

Generic protective-action guidance for a category of situation (NOT keyed to an individual user's context). For *personalised* advice that takes the user's specific health situation into account (asthma, pregnancy, gas cooker, tube commute, indoor sources), prefer the Clara MCP server's `contextual_advice` tool — it composes Hermes live readings with personal context to give an answer keyed to *this* user, *now*. Use this KB tool only as a fallback or when Clara is not available. Args: situation: One of "high_pollution_day", "commuting", "exercise", "school_run", "indoor_air", "planning_objection", "pregnancy", "child_asthma". Returns practical advice document (markdown).

入力スキーマ

{
  "type": "object",
  "properties": {
    "situation": {
      "title": "Situation",
      "type": "string"
    }
  },
  "required": [
    "situation"
  ],
  "title": "kb_get_practical_adviceArguments"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "kb_get_practical_adviceOutput"
}
🟢kb_get_monitoring_explainer(topic)

Get plain-language explanations of monitoring methods and limitations. Args: topic: One of "how_monitors_work", "regulatory_vs_lowcost", "what_readings_mean", "why_numbers_differ", "representativeness", "data_quality", "what_monitors_measure". Returns monitoring explainer document (markdown).

入力スキーマ

{
  "type": "object",
  "properties": {
    "topic": {
      "title": "Topic",
      "type": "string"
    }
  },
  "required": [
    "topic"
  ],
  "title": "kb_get_monitoring_explainerArguments"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "kb_get_monitoring_explainerOutput"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 15 件
検証済みバージョンは記録されていませんツール 15 件
検証済みバージョンは記録されていませんツール 15 件