Skip to main content
Glama
hlucent

seoul-realtime-air-by-region-mcp

by hlucent

seoul-realtime-air-by-region-mcp

Dieser MCP-Server ruft die aktuellen Luftqualitätsdaten für die fünf Bezirke von Seoul (Zentrum/Nordosten/Südosten/Nordwesten/Südwesten) ab. Er basiert auf der RealtimeCityAir-API des Seoul Open Data Plaza.

Bereitgestellte Tools

get_realtime_air_by_region

Ruft die aktuellen Luftqualitätsdaten für einen Bezirk (oder einen bestimmten Bezirk/eine bestimmte Messstation) ab.

Parameter

Erforderlich

Beschreibung

sarea_nm

Optional

Bezirksname – einer von: Zentrum/Nordosten/Südosten/Nordwesten/Südwesten. Bei Auslassung alle Bezirke.

msrstn_nm

Optional

Name der Messstation. Kann nicht ohne sarea_nm verwendet werden (siehe Einschränkungen unten).

start_index, end_index

Optional

Abfragebereich (Standard 1–25, basierend auf der Gesamtzahl der Messstationen in Seoul).

Rückgabefelder: Messdatum (MSRMT_DT), Bezirk (SAREA_NM), Messstation (MSRSTN_NM), Feinstaub PM10 (PM, ㎍/㎥), Feinstaub PM2.5 (FPM, ㎍/㎥), Ozon (OZON, ppm), Stickstoffdioxid (NTDX, ppm), Kohlenmonoxid (CBMX, ppm), Schwefeldioxid (SPDX, ppm), Gesamtluftqualitätsstufe (CAI_GRD), Gesamtluftqualitätsindex (CAI_IDX), Indexbestimmender Stoff (CRST_SBSTN)

list_available_regions

Gibt eine feste Liste der 5 abfragbaren Bezirksnamen (Zentrum/Nordosten/Südosten/Nordwesten/Südwesten) zurück. Kein API-Aufruf.

Related MCP server: mcp-waqi

Durch Tests bestätigte Einschränkungen

  • Der Authentifizierungsschlüssel wird als URL-Pfadsegment übergeben (/{KEY}/json/RealtimeCityAir/...), nicht als Query-Parameter.

  • msrstn_nm kann nicht ohne sarea_nm verwendet werden. Aufgrund der API-Pfadstruktur sind optionale Parameter fest in der Reihenfolge SAREA_NM-Position → MSRSTN_NM-Position angeordnet. Wird sarea_nm ausgelassen und nur msrstn_nm übergeben, wird dieser Wert als SAREA_NM interpretiert, was zu INFO-200 (keine Daten) führt. Dieser Server filtert Anfragen mit nur msrstn_nm vor dem API-Aufruf heraus und gibt eine klare Fehlermeldung aus.

  • Ein größerer start_index/end_index-Bereich gibt tatsächlich mehrere Datensätze korrekt zurück (bei Gesamtabfrage 25 Datensätze bestätigt).

  • Normale Antworten sind JSON, aber einige Fehlerantworten (z. B. Authentifizierungsschlüsselfehler INFO-100) werden trotz TYPE=json-Anfrage als XML zurückgegeben. Dieser Server verwendet einen Fallback-Parser, der bei JSON-Parsing-Fehlern die XML-Elemente <CODE>/<MESSAGE> extrahiert.

  • Für den Wert CAI_GRD (Gesamtluftqualitätsstufe) wurden zum Zeitpunkt der Tests "Gut" und "Mäßig" bestätigt ("Schlecht"/"Sehr schlecht" wurden zum Testzeitpunkt nicht beobachtet, sind aber laut Spezifikation möglich).

Installation und Ausführung (Lokal)

git clone https://github.com/hlucent/seoul-realtime-air-by-region-mcp.git
cd seoul-realtime-air-by-region-mcp
pip install -r requirements.txt
cp .env.example .env  # SEOUL_API_KEY 값 입력
python server.py

Umgebungsvariablen

Variable

Beschreibung

SEOUL_API_KEY

Vom Seoul Open Data Plaza ausgestellter Authentifizierungsschlüssel

PORT

Server-Port (Standard 8000 bei fly.io-Bereitstellung)

Bereitstellung (fly.io)

fly launch --no-deploy
fly secrets set SEOUL_API_KEY=<발급받은키>
flyctl deploy

Nach der Bereitstellung wird beim Verbinden des Claude.ai-Konnektors der Pfad /mcp wie folgt angehängt:

https://<앱이름>.fly.dev/mcp

Sicherheit

Der Server ist ohne Authentifizierungsschlüssel öffentlich zugänglich. Es gilt ein IP-basiertes 3-stufiges Rate-Limiting (3 Anfragen pro Minute – bei Multi-Maschinen-Bereitstellung kann dies proportional zur Anzahl der Maschinen abgemildert werden, 5 Verstöße pro Stunde führen zu einer 24-stündigen Sperrung, tägliches Gesamtlimit von 30 Anfragen).

Die IP wird vorrangig aus dem Fly-Client-IP-Header (vom fly.io-Edge gesetzt, vom Client nicht fälschbar) ermittelt. Der Rate-Limit-Zähler wird pro Prozess im Arbeitsspeicher (dict) geführt und nicht zwischen Maschinen geteilt. Wenn fly.io Anfragen auf mehrere Maschinen verteilt, kann sich das effektive Limit pro IP auf "3 Anfragen pro Minute × Anzahl der laufenden Maschinen" abmildern. Dies ist ein Design-Kompromiss für die In-Memory-Implementierung ohne externen Speicher.

Lizenz

MIT-Lizenz. Die ursprünglichen Daten unterliegen dem Public-Nuri-Typ 1.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Enables AI to query real-time Korean public data including weather, real estate prices, air quality, economic indicators, and business registration via natural language.
    1
    MIT
  • F
    license
    -
    quality
    B
    maintenance
    MCP server for querying Seoul's official air quality data, including real-time and hourly measurements by district. Enables AI assistants to answer questions about fine dust and air pollution using public data from Seoul Open Data Plaza.
  • A
    license
    A
    quality
    B
    maintenance
    Provides real-time Seoul city data including population congestion, traffic, parking, transit, bikes, EV chargers, weather, events, commercial, accidents, alerts, and news across 121 locations using Seoul Open Data API.
    3
    0
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.

  • Air Quality MCP — wraps air-quality-api.open-meteo.com (free, no auth)

  • EPA AirNow MCP — official US real-time AQI + forecast (free key)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hlucent/seoul-realtime-air-by-region-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server