Skip to main content
Glama
ckgerteis

korea-scholarship-mcp

by ckgerteis

korea-scholarship-mcp

Ein FastMCP-stdio-Server, der zwei koreanische bibliografische Dienste bereitstellt – den Korea Citation Index (KCI, 한국학술지인용색인, National Research Foundation of Korea) und Open Access Korea (OAK, 오픈액세스코리아, National Library of Korea) – als acht Tools für Claude Desktop und andere MCP-Clients.

Es ist das koreanische Gegenstück zu cinii-mcp und jstage-mcp und gibt dieselbe Antwort-Envelope zurück, sodass die drei in trilaterale Arbeit nebeneinander gelesen werden können.

Tools

Tool

Quelle

Schlüssel erforderlich

Zweck

kci_search

KCI REST

ja

Artikelsuche über Titel, Autor, Zeitschrift, Institution, Zugehörigkeit, Schlüsselwort, Zusammenfassung, DOI, Datumsbereich

kci_article

KCI REST

ja

Vollständiger Datensatz nach Kontrollnummer – der einzige Endpunkt, der Schlüsselwörter, ISSN, UCI und Zusammenfassungen trägt

kci_references

KCI REST

ja

Von einem Artikel zitierte Werke

kci_journal_metrics

KCI REST

ja

Zeitschriften-Zitationsindizes (Impact, Immediacy, Selbstzitationsanteil)

kci_harvest

KCI OAI-PMH

nein

Ernte nach Aufnahmedatum-Fenster, clientseitig filtern, Fortsetzungstoken verfolgen

oak_harvest

OAK OAI-PMH

nein

Koreanische institutionelle Repositorien nach Aufnahmedatum-Fenster ernten

oak_record

OAK OAI-PMH

nein

Ein OAK-Datensatz nach OAI-Identifikator

korea_sources_status

Was konfiguriert ist, was erreichbar ist und was dieser Server nicht abdeckt

Vier der acht funktionieren ganz ohne Anmeldedaten – alles OAI-PMH, plus Status.

Related MCP server: Literatür MCP

Was die Quellen tatsächlich sind

KCI indexiert Artikel in in Korea registrierten wissenschaftlichen Zeitschriften. Es indexiert keine Monografien, Kapitel oder Dissertationen. Seine REST-Schnittstelle ist eine echte Abfrageschnittstelle; seine OAI-PMH-Schnittstelle ist es nicht.

OAK aggregiert koreanische institutionelle Repositorien – Forschungsberichte, Dissertationen, Monografien, 고서-Bestände, OA-Artikel – die von den Mitgliedseinrichtungen ungleichmäßig beigetragen werden.

Beide wurden am 19. August 2026 live getestet, und drei Eigenschaften prägen, wie die Tools geschrieben sind:

  1. OAI-Zeitstempel sind Aufnahmedaten, keine Veröffentlichungsdaten. Ein Erntefenster vom Mai 2019 liefert Artikel, die zwischen 2010 und 2015 veröffentlicht wurden. Die oft wiederholte Behauptung, dass der OAI-Feed von KCI nur aktuelles Material bereitstellt, ist ein Missverständnis davon: Der Feed deckt den Korpus ab, er hat nur keine Möglichkeit, etwas gefragt zu werden. kci_harvest filtert daher clientseitig und weist in jedem Aufruf in einer Diagnose darauf hin.

1a. KCI's oai_dc ist vollständig typisiert, und dieser Server liest die Typen. Gemessen an 500 Live-Datensätzen: identifier[type=artiId|uci|doi|citedCnt|regularity|journalInfo], ein issn=-Attribut bei 500/500 und lang="original|english" bei jedem Titel und jeder Beschreibung. Version 0.2.0 behauptete das Gegenteil – „ein positionsbasiertes, untypisiertes Bündel", das per Muster abgeglichen werden sollte – und verwarf folglich jede ISSN, jede Zusammenfassung und 371 echte DOIs pro 500 Datensätzen. Musterabgleich überlebt nur als Fallback für Identifikatoren, die ohne Tag ankommen. Beachten Sie, dass KCI auch type="doi"-Elemente ausgibt, die nur das Resolver-Präfix enthalten; diese werden auf null normalisiert, anstatt als Identifikatoren durchgereicht zu werden.

  1. OAK sendet kein resumptionToken. Es deklariert noSetHierarchy, beachtet from/until und begrenzt ein Fenster auf etwa 99 Datensätze ohne Fortsetzung. Ein Harvester, der dem Protokoll vertraut, präsentiert stillschweigend ein abgeschnittenes Fenster als vollständiges. oak_harvest wirft OAI_WINDOW_TRUNCATED, wenn es die Grenze erreicht, und weist Sie an, das Fenster zu unterteilen.

  2. OAK ist kein Standard-Dublin Core. Es gibt dc:title_h, dc:abstract_e, dc:publish_date, dc:location_org, dc:deep_link, dc:contents_url aus und legt den Materialtyp in dc:keyword. Das Vorhandensein von Feldern variiert je nach beitragendem Repositorium. Nicht erkannte Felder werden unter extra.raw_fields aufbewahrt, anstatt verworfen zu werden.

Zwei weitere Asymmetrien werden berichtet, anstatt übergangen zu werden:

  • KCI's articleSearch akzeptiert keyword als Suchfeld, lässt aber Autorenschlüsselwörter, ISSN und UCI aus seiner Antwort aus. Eine leere Schlüsselwortliste ist ein Artefakt des Endpunkts. kci_search sagt das bei jedem Aufruf; kci_article holt sie wieder.

  • KCI antwortet bei Fehlern mit HTTP 200 und legt den Fehler in outputData/result/resultMsg. Ein Client, der Statuscodes prüft, meldet einen nicht registrierten Schlüssel als erfolgreiche leere Suche.

Die Antwort-Envelope

Jedes Tool gibt die in mediation.py (Schema 2.1.0) dokumentierte Envelope zurück – typisiertes query/script, matching_mode, abgestufte breadth, pro Element matched_in, typisierte diagnostics, eine protokollierbare receipt und attribution. Nichts wird für Sie zusammengefasst oder bewertet.

mediation.py 2.2.0 ist die Versöhnung eines Forks. Bis zum 19. August 2026 nannten sich zwei verschiedene Dateien beide 2.1.0: Die japanische Kopie hatte emit() – Ledger-Persistenz –, klassifizierte Hangul jedoch als latin; die koreanische Kopie kannte Hangul und die CJK-Erweiterungen, hatte aber kein emit(), sodass koreanische Abfragen nie die Einlage erreichten, die jede japanische Abfrage betrat. 2.2.0 trägt beides und ist byte-identisch über cinii-mcp, jstage-mcp, ndl-mcp und diesen Server hinweg ausgeliefert. Alles darin ist additiv, sodass die japanischen Server es ohne Migration übernehmen.

  • detect_script() erkennt Hangul und CJK-Erweiterungen B–G sowie das Kompatibilitäts-Supplement.

  • title und source tragen einen ko-Slot neben ja.

  • emit() legt die Envelope im hash-verketteten Abfrage-Ledger ab; ledger_available() meldet, ob es das kann, anstatt ein stilles No-op zu hinterlassen.

title.romanized bleibt null, es sei denn, die Quelle liefert eine Romanisierung. Weder KCI noch OAK tun das, und dieser Server wird keine generieren: Die überarbeitete Romanisierung eines koreanischen Namens erfordert die Kenntnis des Namens, und eine maschinell transliterierte Zeichenfolge, die als bibliografische Daten präsentiert wird, ist eine Erfindung mit der Form einer Tatsache.

Diagnosecodes

OK · NO_KEY · KCI_REJECTED · KCI_KEYWORDS_ABSENT · ZERO_CONJUNCTION · TRUNCATED · PAGE_PAST_END · REFERENCE_DEPOSIT_UNEVEN · BIBLIOMETRIC_SCOPE · SCRIPT_LATIN_QUERY · INGEST_DATE_NOT_PUBLICATION_DATE · CLIENT_SIDE_FILTER · OAI_MORE_AVAILABLE · OAI_INCOMPLETE · OAI_STALLED · OAI_PAGE_CAP · OAI_NO_RECORDS · OAI_ERROR · OAI_WINDOW_TRUNCATED · OAK_NONSTANDARD_DC · WINDOW_DOMINATED_BY_ONE_REPOSITORY · REDIRECTED · TRANSPORT_ERROR · API_ERROR · PARSE_ERROR

Voraussetzungen

  • Python 3.10+ im PATH.

  • Optional ein KCI-API-Schlüssel – kostenlos, selbst registriert, nur für die vier REST-Tools erforderlich.

Einen KCI-Schlüssel erhalten

  1. Registrieren Sie sich bei open.kci.go.kr und beantragen Sie einen Open-API-Schlüssel.

  2. Derselbe Schlüssel bedient alle fünf apiCode-Werte (articleSearch, articleDetail, referenceSearch, citation, citationDetail).

KCI ist auch als vier Datensätze auf data.go.kr unter 한국연구재단 gespiegelt; dieser Weg vergibt einen anderen Schlüssel und wird hier nicht verwendet.

Installation

Das Paket verwendet ein src/-Layout und installiert ein Konsolenskript. Jede der folgenden Möglichkeiten funktioniert:

# from a release archive
pip install korea-scholarship-mcp.zip

# from a built wheel
pip install korea_scholarship_mcp-0.4.0-py3-none-any.whl

# from a clone, for development
pip install -e ".[dev]"

# without installing anything, straight from the repository
uvx --from "git+https://github.com/ckgerteis/korea-scholarship-mcp" korea-scholarship-mcp

Die Installation legt einen korea-scholarship-mcp-Befehl in den PATH. python -m korea_scholarship_mcp ist gleichwertig.

Konfiguration

cp .env.example .env
KCI_API_KEY=your_kci_api_key_here

Claude Desktop

Wenn das Paket installiert ist, zeigen Sie auf das Konsolenskript:

{
  "mcpServers": {
    "korea-scholarship": {
      "command": "C:\\path\\to\\.venv\\Scripts\\korea-scholarship-mcp.exe",
      "env": {
        "KCI_API_KEY": "your_kci_api_key_here"
      }
    }
  }
}

Oder führen Sie es aus einem Klon aus, ohne zu installieren:

{
  "mcpServers": {
    "korea-scholarship": {
      "command": "C:\\path\\to\\.venv\\Scripts\\python.exe",
      "args": ["-m", "korea_scholarship_mcp"],
      "env": {
        "KCI_API_KEY": "your_kci_api_key_here"
      }
    }
  }
}

Lassen Sie den env-Block vollständig weg, um die vier schlüssellosen Tools auszuführen.

Eine Anmerkung zum MCP SDK

mcp 2.0.0 hat mcp.server.fastmcp entfernt. Dieser Server importiert FastMCP, wo es existiert, und fällt auf MCPServer zurück, wo es nicht existiert, sodass er auf beiden läuft. Derselbe Shim wurde am 19. August 2026 auf cinii-mcp und jstage-mcp angewendet; davor importierten beide mcp.server.fastmcp direkt, während sie mcp[cli]>=1.2.0 ohne obere Grenze pinnten, sodass eine frische Installation von einem von beiden auf 2.0.0 aufgelöst wurde und beim Import fehlschlug.

Umgang mit Anmeldedaten

Der KCI-Schlüssel reist in der Abfragezeichenfolge, was ihn auf zwei spezifische Arten leckanfällig macht, die dieser Server schließt:

  • httpx protokolliert jede Anforderungs-URL auf INFO-Ebene. _silence_http_logging() stummschaltet es und entfernt jeden stdout-Handler – ohnehin notwendig, da stdout JSON-RPC trägt.

  • Transport- und Statusausnahmen betten die Anforderungs-URL ein. Jede Nachricht, die für den Client bestimmt ist, durchläuft _redact(), und die Quittung wird aus Parametern mit entfernten Anmeldedaten erstellt, anstatt maskiert zu werden.

Tests

python -m pytest tests -q                # offline, against fixtures captured 19 Aug 2026
RUN_LIVE=1 python -m pytest tests -q     # also exercises the live KCI endpoints
RUN_LIVE_OAK=1 python -m pytest tests -q # adds OAK; needs a network that reaches oak.go.kr

Die Live-Tests schützen die Behauptungen, auf denen diese README beruht: dass ein KCI-Aufnahmefenster ältere Veröffentlichungen zurückgibt, dass KCI-Identifikatoren typisiert sind, dass max_records eine Obergrenze und kein Hinweis ist und dass eine Fortsetzungsernte kein Datumsfenster aufzeichnet, das sie nie gesendet hat. Der OAK-Test ist separat abgesperrt und schlägt laut fehl, wenn OAK nicht erreichbar ist, anstatt auf einem unausgeführten Zweig zu bestehen.

Bekannte Grenzen

Die vier KCI-REST-Tools haben noch nie eine Live-Antwort gesehen – es gibt keinen API-Schlüssel. Ihr Feldmapping folgt der veröffentlichten Dokumentation und ist nicht gegen die Leitung verifiziert; der Erfolgs-/Fehlertest ist bewusst strukturell (vorhandene Datensätze bedeuten Erfolg), sodass weder eine geschwätzige Erfolgsmeldung noch eine knappe Ablehnung falsch gelesen wird. Behandeln Sie die REST-Ausgabe als vorläufig, bis ein Schlüssel existiert.

Was dieser Server nicht abdeckt

ScienceON (KISTI) – bewusst außerhalb des Rahmens. Sein Gateway erfordert ein AES-256-CBC-Token, das aus einer registrierten MAC-Adresse erstellt wird, plus eine registrierte öffentliche IP. rubato103/scienceon-mcp implementiert es bereits mit Live-Anmeldedaten und ist gegen genau den oben beschriebenen Anmeldedaten-Leckpfad gehärtet; installieren Sie es zusätzlich, anstatt unprüfbaren Auth-Code zu duplizieren:

claude mcp add scienceon -- uvx --from "git+https://github.com/rubato103/scienceon-mcp" scienceon-mcp

RISS (KERIS) – die Such-API existiert unter https://www.riss.kr/openApi und deckt Dissertationen, inländische und ausländische Artikel, Monografien, Forschungsberichte und Zeitschriften ab, aber Schlüssel werden nur an koreanische gemeinnützige Einrichtungen und Universitäten ausgegeben, wobei jeder Antrag von KERIS-Mitarbeitern genehmigt wird; Einzelpersonen können sich nicht bewerben. Ob eine nicht-koreanische Universität qualifiziert ist, ist ungetestet. Wenn jemals ein Schlüssel erhalten wird, gehört RISS in diesen Server.

DBpia (Nurimedia) – Schlüssel sind offen und großzügig (2.500 Aufrufe pro Tag), aber die Nutzungsbedingungen beschränken den Dienst auf nicht-kommerzielle Zwecke und verbieten das Kopieren, Speichern oder Übertragen von Suchergebnissen, die in Echtzeit und unverändert angezeigt werden sollen. Das ist unvereinbar mit dem Ernten in einen Referenzmanager, einen Korpusindex oder ein Register. Die Einschränkung ist die Lizenz, nicht die API.

korea_sources_status meldet alle drei in situ, sodass die Auslassung von innerhalb des Tools sichtbar ist und nicht nur in dieser Datei.

Nutzungsregeln

  • KCI und OAK sind öffentliche Dienste ohne veröffentlichte Ratenbegrenzung. Ernten Sie rücksichtsvoll; unterteilen Sie Fenster, anstatt breite Bereiche zu hämmern.

  • Die hier abgerufenen Metadaten sind bibliografisch. Der Volltext liegt hinter den Bedingungen, die das haltende Repositorium festlegt – OAKs contents_url zeigt in Mitglieds-Repositorien, jedes mit eigener Lizenz.

  • Attributionszeichenfolgen werden in jeder Envelope zurückgegeben; übernehmen Sie sie in alles Veröffentlichte.

Zitierung

Wenn diese Software Ihre Forschung unterstützt, zitieren Sie sie bitte. Siehe CITATION.cff oder verwenden Sie die Schaltfläche „Cite this repository" auf GitHub.

Lizenz

MIT © 2026 Christopher Gerteis.

Diese Lizenz gilt nur für den Servercode. Sie gewährt keinerlei Rechte an den KCI- oder OAK-Daten, die weiterhin den Bedingungen der National Research Foundation of Korea bzw. der National Library of Korea unterliegen.

Haftungsausschluss

Ein Forschungswerkzeug, das nach bestem Bemühen gepflegt und "wie besehen" ohne Gewährleistung bereitgestellt wird. Weder mit der National Research Foundation of Korea, der National Library of Korea, KERIS, KISTI noch mit Nurimedia verbunden oder von diesen unterstützt.

Autor

Dr. Christopher Gerteis, SOAS University of London.

A
license - permissive license
Not graded
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
    Not graded
    quality
    D
    maintenance
    Enables searching, PDF conversion, and reference extraction for Turkish academic articles on DergiPark via MCP tools.
    39
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching and harvesting Korean Citation Index literature, citation indices, and references via REST API and OAI-PMH.
    7
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables querying the Korea Citation Index (KCI) Open API to search reference lists, retrieve journal citation indices, and view citation detail history for Korean academic journals.
    5

View all related MCP servers

Related MCP Connectors

  • IEEE Xplore MCP — BYOK wrapper over the IEEE Xplore Metadata Search API

  • MCP server for Altmetric APIs - track research attention across news, policy, social media, and more

  • MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).

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/ckgerteis/korea-scholarship-mcp'

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