Skip to main content
Glama
nagyeop

Korean Stats MCP

by nagyeop

Korean Stats MCP

국가데이터처 KOSIS, jetzt müssen Sie die Website nicht mehr besuchen. Wenn Sie den KI-Assistenten auf Koreanisch fragen, erscheinen die offiziellen Zahlen von 국가데이터처 sofort mit Quellenangabe.

License: MIT MCP KOSIS

MCP-Server basierend auf der 국가데이터처 KOSIS OpenAPI (Python FastMCP). Verwendung über stdio oder HTTP in Claude Desktop, Cursor usw.


In 30 Sekunden ausprobieren

So geben Sie es in den Chat ein (nach Registrierung des Claude.ai Connectors — siehe Installationsanleitung unten)

나: 광진구 고용률 알려줘

AI: 2025년 하반기 광진구의 고용률은 61.6%입니다.
    📊 출처: 고용률 (KOSIS DT_1ES3A03_A01S)

Sie müssen nicht auf die KOSIS-Website gehen, um Statistiktabelle zu suchen, dann Klassifikationscodes auszuwählen und durch die Zeilen der autonomen Bezirke zu scrollen. Sie müssen nur den Namen des autonomen Bezirks und Ihre Frage auf Koreanisch eingeben.


So ändert sich die Arbeit von Beamten

Die Statistiken des 국가데이터처 sind alle auf KOSIS. Das Problem sind die Kosten des Abrufens. Wenn man die Statistiktabellen-ID nicht kennt, sucht man vergeblich, und selbst wenn man sie findet, muss man Klassifikations-, Item- und Periodencodes zusammensetzen, und für die autonomen Bezirke muss man in der Tabelle nach Zeilen suchen. Deshalb kämpft man vor jedem Berichtsabgabetermin mit KOSIS.

Dieses Tool reduziert diesen Prozess auf eine einzige Zeile in natürlicher Sprache. Sehen wir es uns in realen Arbeitsszenarien an.


📋 Stadtverwaltungsreden, Neujahrsansprachen, Arbeitsberichte — 30 Minuten werden zu 5 Sekunden

Situation — In den Entwurf der Neujahrsansprache des Bürgermeisters muss ein Absatz über 'Unsere Stadt aktuell' eingefügt werden. Das mühsame Zusammenkopieren von Bevölkerungs-, Geburten-, Beschäftigungs- und Regionalwirtschaftszahlen aus KOSIS dauert jedes Mal 30 Minuten bis 1 Stunde.

나: 성남시 신년사에 넣을 핵심 통계 한 줄로 정리해줘

AI: 성남시의 주민등록 인구 ○○만 명, 합계출산율 ○.○○명,
    65세 이상 고령인구 ○○만 명, 실업률 ○.○%, 지역내총생산 ○○조 원
    (○○○○년 기준)입니다.

Der Einzeilenmodus für Reden von chain_region_brief filtert automatisch die Kernindikatoren heraus und fasst sie in einem Satz zusammen. Auch eine vollständige Übersicht aller 13 Indikatoren ist auf einmal möglich.

🏛 Vorbereitung auf Antworten im Gemeinderat und Verwaltungsprüfungen — 'Ist das nicht niedriger als in der Nachbargemeinde?'

Situation — Ein Abgeordneter wird fragen: 'Ist die Arbeitslosenquote in unserem Bezirk nicht höher als in den Nachbarbezirken?' Man muss die benachbarten autonomen Bezirke einzeln abfragen und eine Vergleichstabelle erstellen.

나: 강남구, 서초구, 송파구 실업률이랑 고용률 비교해줘

AI: 📊 3개 지역 × 2개 지표 비교
    • 실업률: 최고 ○○구(○.○%), 최저 ○○구(○.○%)
    • 고용률: 최고 ○○구(○○.○%), 최저 ○○구(○○.○%)
    [지역별 순위 매트릭스 + 기준시점 포함]

chain_compare_regions erstellt bis zu 17 Regionen × 8 Indikatoren auf einmal als Matrix und ordnet sie nach Indikator. Auch 'Rangliste der Geburtenraten der 17 Provinzen landesweit' ist eine einzige Zeile.

📑 Analyse von Politikberichten und Forschungsaufträgen — 10-Jahres-Trend auf einmal

Situation — Bericht zum 5-Jahres-Plan zur Bekämpfung der niedrigen Geburtenrate. Es werden Zeitreihendaten für das Kapitel 'Trend der letzten 10 Jahre' benötigt.

나: 저출산 영역 최근 10년 추세 정리해줘

AI: 📑 저출산 영역 10년 추세
    • 합계출산율: 지속 하락 (20○○→20○○년, -○○%)
    • 출생아수: 지속 하락 (-○○%)
    • 혼인건수: 지속 하락 (-○○%)
    • 평균초혼연령: 상승 (+○.○세)
    [연도별 데이터포인트 + 변화율 전체]

chain_policy_indicator analysiert 7 Politikbereiche (niedrige Geburtenrate, Alterung, Wohnen, Arbeitsplätze, öffentliche Sicherheit, Gesundheit, Wirtschaft) in Bündeln von 3-4 Indikatoren pro Bereich als Zeitreihen. Durchschnittliche Änderungsrate, Höchst-/Tiefstpunkte und Trendklassifizierung werden mitgeliefert.

🗣 Bürgeranfragen und Pressemitteilungen — Offizielle Zahlen auf Anfrage sofort

Situation — Ein Bürgeranruf: 'Wie ist die Feinstaubbelastung in unserer Gegend in letzter Zeit?' Oder man muss innerhalb von 30 Minuten Zahlen für eine Pressemitteilung liefern.

나: 충남 미세먼지 수치
AI: 20○○년 충남의 PM2.5 농도는 ○○㎍/㎥입니다. 📊 출처: KOSIS

나: 부산 인구 최근 10년 변화는?
AI: 부산의 인구 10년 추세: 지속적인 하락 추세. ... (변화율·최고/최저점 포함)

Einzelne Zahlen mit quick_stats, Trends mit quick_trend. Alle Antworten enthalten die Quellenangabe der Statistikabelle, sodass sie direkt zitiert werden können.

🎯 Bis zur Ebene der autonomen Bezirke, Städte und Kreise — Nicht in den regionalen Durchschnitten untergehen

Situation — Man braucht die Beschäftigungsquote von '광진구', aber bei der Suche erscheint immer nur der Durchschnitt von '서울특별시'.

나: 광진구 고용률, 광진구 65세 이상 인구

AI: 2025년 하반기 광진구의 고용률은 61.6%입니다.
    2024년 광진구의 65세 이상 고령인구는 ○○,○○○명입니다.

Es greift direkt auf die KOSIS-Statistiktabelle für autonome Bezirke zu, die über 230 autonome Bezirke, Städte und Kreise abdeckt. Es verwendet vorrangig die KOSIS-Standardtabelle (Routing über autonome Bezirkscodes), in der alle 226 Stadt- und Landkreise in derselben Struktur enthalten sind, und ergänzt nur Bereiche, die nicht in der Standardtabelle enthalten sind, durch das statistische Jahrbuch der autonomen Bezirke (.xlsx). Namen wie 중구 oder 남구, die in mehreren Städten vorkommen, werden genau unterschieden, wenn man die Großstadt mit angibt, z.B. 'Busan 중구'.

🛡 Stecken Sie nicht einfach die von ChatGPT geschätzten Statistiken in Ihren Bericht

Normale KI merkt sich statistische Zahlen zum Zeitpunkt des Trainings. Wenn man nach 'Bevölkerung von Seoul' fragt, gibt sie selbstbewusst einen Wert von vor Jahren an. Wenn diese Zahl in Berichte, Reden oder Unterlagen für die parlamentarische Prüfung einfließt, ist das ein Desaster.

Wenn dieser Connector aktiviert ist, fragt die KI bei jeder Frage die offizielle KOSIS-Datenbank in Echtzeit ab und gibt in der Antwort die Statistiktabellen-ID (Quelle) an. Das ist kein Schätzen, sondern Zitieren.

Bei Statistiken mit Bevölkerungsprognosen wird automatisch der Hinweis 'Diese Zahl ist keine tatsächliche Messung, sondern eine Prognose des 국가데이터처' hinzugefügt, und bei aktuellen Bevölkerungsdaten (Geburten, Todesfälle, Heiraten, Scheidungen) der Hinweis 'Kann vorläufig sein'. Dies verhindert den Fehler, Prognosen oder vorläufige Werte wie endgültige Messungen zu zitieren.


Was kann man fragen?

Statistik-Keywords — 92 + über 100 natürliche Sprachaliase

Bereich

Beispiel-Keywords

Bevölkerung, Geburten, Alterung

Bevölkerung, Geburtenrate, Anzahl der Geburten, Sterblichkeitsrate, Lebenserwartung, ältere Bevölkerung, Altersindex

Heirat, Scheidung

Anzahl der Eheschließungen, Scheidungsrate, Alter bei Erstheirat, Durchschnittsalter bei Erstheirat

Beschäftigung, Einkommen

Arbeitslosenquote, Beschäftigungsquote, Anzahl der Beschäftigten, Erwerbsbevölkerung, durchschnittlicher Monatslohn

Wirtschaft

BIP, Wirtschaftswachstumsrate, Preise (Verbraucherpreisindex), GRDP (Bruttoregionalprodukt)

Handel

Export, Import, Handelsbilanz

Wohnen

Hauskaufpreise, Wohnungspreise, Jeonse-Preise

Umwelt, Verkehr, Gesellschaft

Feinstaub (PM2.5/PM10), Kfz-Zulassungen, Verkehrsunfälle, Kriminalitätsrate, Anzahl der Ärzte, ausländische Touristen

Sie müssen die offiziellen Begriffe nicht kennen. Es wandelt automatisch Abkürzungen und Umgangssprache um, wie 집값주택매매가격, 노인고령인구, 월소득월평균임금. Es erkennt auch Tippfehler wie 출산률·고용율, Leerzeichen wie G D P und englische Begriffe wie population·gdp.

Indikatoren mit unterschiedlicher Definition werden nicht stillschweigend ausgetauscht — bei Fragen, die ähnlich aussehen, aber andere Statistiken sind, wie 청년실업률 (Jugendarbeitslosenquote, 15-29 Jahre), 연봉 (Jahresgehalt), 가계소득 (Haushaltseinkommen), wird statt einer falschen Antwort ein Hinweis gegeben, 'welche Statistik Sie ansehen sollten'. Gleiches gilt für Ortsnamen — es gibt keinen landesweiten Wert für nicht erkannte Ortsnamen aus.

Regionen — 17 Provinzen + über 230 autonome Bezirke, Städte und Kreise

Alle 17 Provinzen (vollständige Namen und Abkürzungen) und über 230 autonome Bezirke, Städte und Kreise. Auch Zeitausdrücke der koreanischen Verwaltungssprache wie "민선 8기 출산율 추이" (Trend der Geburtenrate in der 8. Amtszeit der gewählten Beamten), "임기 4년차 GRDP" (GRDP im 4. Amtsjahr), "작년 대비 실업률" (Arbeitslosenquote im Vergleich zum Vorjahr), "역대 인구" (historische Bevölkerung) werden automatisch in Analysejahre umgerechnet.


14 Werkzeuge

Die meisten Fragen werden mit quick_stats, quick_trend, quick_rank und den 3 Kettentools beantwortet. Der Rest dient der präzisen Abfrage.

Kategorie

Werkzeug

Funktion

Natürliche Sprache sofortige Antwort

quick_stats

Eine Zeile natürlicher Sprache → sofortige KOSIS-Zahlen

quick_trend

Zeitreihentrend + Änderungsrate + Höchst-/Tiefstpunkte (Erkennung natürlicher Sprachzeiträume)

quick_rank 🆕

'Unser Ort, wie viele Platz landesweit?' — Rang, Perzentil, durchschnittliche Abweichung, Rangänderung im Vergleich zu allen 17 Provinzen oder Stadt-/Landkreisen. Vergleichbarkeit durch einheitliche Tabelle und einheitlichen Zeitpunkt in einer einzigen Abfrage

Quellen und Fußnoten 🆕

explain_statistic

Offizielle Definition der Statistik, Zweck, Erhebungszyklus, Begriffserklärung + Erstellung von Zitatfußnoten für Berichte

Kette

chain_region_brief

Umfassende Übersicht über 13 Indikatoren einer Region (inkl. Einzeilenmodus für Reden)

chain_compare_regions

N Regionen × M Indikatoren Matrix + Rang (max. 17×8)

chain_policy_indicator

7 Politikbereiche gebündelt als 10-Jahres-Zeitreihe

Suche und Erkundung

search_statistics

Keyword-Suche in KOSIS-Statistiktabelle

get_statistics_list

Baumstruktur nach Thema/Institution + Bereichsempfehlungen

get_table_info

Metadaten der Statistikabelle (Klassifikation, Items, Periodizität)

Präzise Daten

get_statistics_data

Abfrage bestimmter Statistiktabellendaten (automatische Zuordnung von Regions- und Itemnamen)

compare_statistics

Präziser Vergleich nach Zeitpunkt und Item

analyze_time_series

Detaillierte Zeitreihe (CAGR, Standardabweichung, Trendlinie)

Datei-Statistiktabelle

fetch_kosis_excel

Download und Parsen von KOSIS-Datei-Statistiktabelle (.xlsx) — deckt nicht von der OpenAPI unterstützte Tabellen ab, wie das statistische Jahrbuch der autonomen Bezirke


Installation

Methode 1 — Lokales stdio (Claude Desktop / Cursor)

Voraussetzungen: Python 3.11+ · KOSIS OpenAPI-Schlüssel (kostenlos)

git clone https://github.com/chrisryugj/korean-stats-mcp.git
cd korean-stats-mcp
python3 -m venv .venv
.venv/bin/pip install -e .
{
  "mcpServers": {
    "korean-stats": {
      "command": "/절대경로/korean-stats-mcp/.venv/bin/korean-stats-mcp",
      "args": [],
      "env": { "KOSIS_API_KEY": "발급받은_키" }
    }
  }
}

Ein-Klick-Registrierung:

export KOSIS_API_KEY=발급받은_키
# PATH에 korean-stats-mcp 가 있어야 함 (.venv/bin 활성화 후)
bash install.sh --client cursor

Sie können auch KOSIS_API_KEY=... in die .env-Datei im Projektstammverzeichnis einfügen (siehe .env.example).

Methode 2 — Docker Compose (Serverbereitstellung)

cp .env.example .env   # KOSIS_API_KEY 설정
docker compose up -d --build
  • MCP: POST /mcp (Standard :3000)

  • Gesundheit: GET /health

  • Redis: internes Netzwerk von Compose (REDIS_URL=redis://redis:6379/0)

Methode 3 — Vercel (Serverloses HTTP)

cp .env.example .env   # 로컬 vercel dev용
npx vercel login
npx vercel env add KOSIS_API_KEY      # production + preview
npx vercel env add MCP_AUTH_TOKEN     # (권장) Bearer 인증
npx vercel --prod
  • MCP: POST https://<your-project>.vercel.app/mcp

  • Gesundheit: GET /health

  • Redis: Nach Integration von Upstash Redis REDIS_URL setzen (bei Nichtsetzung In-Memory-Cache)

  • Cursor-Verbindung:

{
  "mcpServers": {
    "korean-stats": {
      "url": "https://<your-project>.vercel.app/mcp",
      "headers": { "Authorization": "Bearer YOUR_MCP_AUTH_TOKEN" }
    }
  }
}

Wenn Sie nur HTTP lokal ausführen:

KOSIS_API_KEY=... korean-stats-mcp --http --port 3000

Genauigkeit und Vertrauenswürdigkeit

  • Offizielle Quelle — Alle Zahlen werden in Echtzeit von der 국가데이터처 KOSIS OpenAPI abgefragt. Die Antwort enthält die Statistiktabellen-ID, sodass sie direkt zitiert und verifiziert werden kann.

  • Unterscheidung von Prognosedaten — Bei Statistiken mit Bevölkerungsprognosen wird automatisch der Hinweis 'Prognose' hinzugefügt.

  • Datenintegrität der autonomen Bezirke — Wenn Daten auf Bezirksebene nicht in KOSIS vorhanden sind, wird nicht willkürlich der Wert der Provinz als Bezirkswert ausgegeben, sondern es wird angegeben, dass 'durch Provinzdaten ersetzt wurde'.

  • Cache — Gleiche Anfragen werden 6 Stunden lang zwischengespeichert, um schnell zu antworten, ohne den Aktualisierungszyklus der Statistiken zu beeinträchtigen.


Änderungshistorie

  • Vollständige Portierung von TypeScript/Node MCP → Python FastMCP 3.4.7

  • Entfernung der Abhängigkeit vom integrierten Host npm/gomdori — unabhängiges stdio + Streamable HTTP

  • Excel-Parsing: kordoc → openpyxl Markdown-Konvertierung

  • Beibehaltung von 14 Werkzeugen, 2 Ressourcen, 1 Prompt


Lizenz

MIT


Referenzierte Projekte

  • Dayoooun/korea-stats-mcp — Ausgangspunkt dieses Forks. Tiefer Dank an das Original. Die Lizenz ist dieselbe MIT wie das Original.

  • FastMCP — Python MCP Server-Framework.

-
license - not tested
-
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 Connectors

  • Korean market data for AI agents: K-beauty/K-food products, Naver trends, stocks, real estate.

  • Access Korea’s G2B procurement and Nara Market data for bid notices, awards, contracts, statistics…

  • Macro data for AI agents: GDP, inflation, unemployment & trade, any country. No API keys.

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/nagyeop/kosis_mcp'

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