Skip to main content
Glama
ckgerteis

korea-scholarship-mcp

by ckgerteis

korea-scholarship-mcp

韓国の2つの書誌サービス——Korea Citation Index(KCI、한국학술지인용색인、韓国研究財団)とOpen Access Korea(OAK、오픈액세스코리아、韓国国立中央図書館)——を8つのツールとしてClaude Desktopやその他のMCPクライアントに公開するFastMCP stdioサーバーです。

これはcinii-mcpおよびjstage-mcpの韓国版に相当し、同じレスポンスエンベロープを返すため、3つを三者間の作業で並べて読むことができます。

ツール

ツール

ソース

キー要否

目的

kci_search

KCI REST

必要

タイトル、著者、ジャーナル、機関、所属、キーワード、抄録、DOI、日付範囲にわたる論文検索

kci_article

KCI REST

必要

管理番号による完全レコード——キーワード、ISSN、UCI、抄録を保持する唯一のエンドポイント

kci_references

KCI REST

必要

1件の論文が引用した文献

kci_journal_metrics

KCI REST

必要

ジャーナル引用指標(インパクト、即時性、自己引用率)

kci_harvest

KCI OAI-PMH

不要

取り込み日時ウィンドウによるハーベスト、クライアント側フィルタリング、resumptionトークンの追跡

oak_harvest

OAK OAI-PMH

不要

取り込み日時ウィンドウによる韓国機関リポジトリのハーベスト

oak_record

OAK OAI-PMH

不要

OAI識別子によるOAKレコード1件

korea_sources_status

何が設定されているか、何に到達可能か、このサーバーがカバーしないもの

8つのうち4つは認証情報なしで動作します——OAI-PMH関連のすべてとステータスです。

Related MCP server: Literatür MCP

ソースの実態

KCIは韓国登録学術誌の論文を索引化しています。単行本、章、学位論文は索引化しません。RESTインターフェースは本物のクエリインターフェースですが、OAI-PMHインターフェースはそうではありません。

OAKは韓国の機関リポジトリ——研究報告書、学位論文、単行本、고서所蔵、OA論文——を加盟機関が不均等に提供する形で集約しています。

両者は2026年8月19日にライブで調査され、3つの特性がツールの書き方を決定づけています:

  1. OAIの日付スタンプは取り込み日であり、出版日ではない。 2019年5月のハーベストウィンドウは、2010年から2015年の間に出版された論文を返します。KCIのOAIフィードは最近の資料のみを公開するという頻繁に繰り返される主張は、この誤読です:フィードはコーパス全体をカバーしていますが、単に問い合わせる方法がないだけです。したがってkci_harvestはクライアント側でフィルタリングし、その旨を毎回の呼び出しで診断情報として明示します。

1a. KCIのoai_dcは完全に型付けされており、このサーバーはその型を読み取ります。 500件のライブレコードで測定:identifier[type=artiId|uci|doi|citedCnt|regularity|journalInfo]、500/500件にissn=属性、すべてのタイトルと説明にlang="original|english"。バージョン0.2.0はその逆——パターンで照合する「位置的な、型なしの袋」——を主張し、その結果、すべてのISSN、すべての抄録、500レコードあたり371件の実在するDOIを破棄しました。パターンマッチングは、タグなしで到着する識別子のフォールバックとしてのみ残っています。KCIはまた、リゾルバプレフィックスのみを含むtype="doi"要素も出力することに注意してください。これらは識別子として通過させるのではなくnullに正規化されます。

  1. OAKはresumptionTokenを送信しません。 noSetHierarchyを宣言し、from/untilを尊重し、ウィンドウを継続なしで約99レコードに制限します。プロトコルを信頼するハーベスターは、切り詰められたウィンドウを完全なものとして黙って提示します。oak_harvestは上限に達するとOAI_WINDOW_TRUNCATEDを発生させ、ウィンドウを分割するよう指示します。

  2. OAKは標準的なDublin Coreではありません。 dc:title_hdc:abstract_edc:publish_datedc:location_orgdc:deep_linkdc:contents_urlを出力し、資料タイプdc:keywordに置きます。フィールドの存在は寄稿リポジトリによって異なります。認識されないフィールドは破棄されるのではなくextra.raw_fieldsの下に保持されます。

さらに2つの非対称性が、滑らかに処理されるのではなく報告されます:

  • KCIのarticleSearchkeyword検索フィールドとして受け入れますが、著者キーワード、ISSN、UCIをレスポンスから除外します。空のキーワードリストはエンドポイントの産物です。kci_searchは毎回の呼び出しでその旨を明示し、kci_articleがそれらを回復します。

  • KCIは失敗時にHTTP 200を返し、エラーをoutputData/result/resultMsgに置きます。ステータスコードをチェックするクライアントは、未登録キーを成功した空の検索として報告します。

レスポンスエンベロープ

すべてのツールはmediation.py(スキーマ2.1.0)に文書化されたエンベロープを返します——型付けされたquery/scriptmatching_mode、段階的なbreadth、項目ごとのmatched_in、型付けされたdiagnostics、ログ可能なreceipt、そしてattribution。何も要約やスコアリングは行われません。

mediation.py 2.2.0はフォークの統合です。2026年8月19日まで、2つの異なるファイルが両方とも2.1.0と自称していました:日本語版にはemit()——台帳永続化——がありましたが、ハングルをlatinとして分類していました。韓国語版はハングルとCJK拡張を認識していましたがemit()がなく、韓国語クエリは日本語クエリがすべて入る預託に到達しませんでした。2.2.0は両方を備え、cinii-mcp、jstage-mcp、ndl-mcp、このサーバー全体でバイト単位で同一にベンダリングされています。その中のすべては追加的であるため、日本語サーバーは移行なしで採用します。

  • detect_script()はハングルとCJK拡張B–Gおよび互換補助を認識します。

  • titlesourcejaと並んでkoスロットを持ちます。

  • emit()はエンベロープをハッシュ連鎖クエリ台帳に預託します。ledger_available()はそれが可能かどうかを報告し、黙ったno-opのままにしません。

title.romanizedは、ソースがローマ字化を提供しない限りnullのままです。KCIもOAKも提供せず、このサーバーも生成しません:韓国語の名前の改訂ローマ字表記には名前を知ることが必要であり、機械翻字された文字列を書誌データとして提示することは、事実の形をした捏造です。

診断コード

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

前提条件

  • PATH上のPython 3.10以上。

  • 任意で、KCI APIキー——無料、自己登録、4つのRESTツールにのみ必要。

KCIキーの取得

  1. open.kci.go.krで登録し、Open APIキーを申請します。

  2. 同じキーが5つのapiCode値すべて(articleSearcharticleDetailreferenceSearchcitationcitationDetail)に使用できます。

KCIはまた、data.go.krで한국연구재단として4つのデータセットにミラーリングされています。このルートは別のキーを発行するため、ここでは使用されません。

インストール

このパッケージはsrc/レイアウトを使用し、コンソールスクリプトをインストールします。次のいずれでも動作します:

# 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

インストールするとkorea-scholarship-mcpコマンドがPATHに配置されます。python -m korea_scholarship_mcpも同等です。

設定

cp .env.example .env
KCI_API_KEY=your_kci_api_key_here

Claude Desktop

パッケージがインストールされている場合は、コンソールスクリプトを指定します:

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

または、クローンからインストールせずに実行します:

{
  "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"
      }
    }
  }
}

envブロックを完全に省略すると、4つのキーレスツールを実行できます。

MCP SDKに関する注意

mcp 2.0.0はmcp.server.fastmcpを削除しました。このサーバーはFastMCPが存在する場合はそれをインポートし、存在しない場合はMCPServerにフォールバックするため、どちらでも動作します。同じシムが2026年8月19日にcinii-mcpjstage-mcpにも適用されました。それ以前は、両方ともmcp.server.fastmcpを直接インポートしながらmcp[cli]>=1.2.0を上限なしで固定していたため、どちらかを新規インストールすると2.0.0に解決されてインポート時に失敗しました。

認証情報の取り扱い

KCIキーはクエリ文字列で送信されるため、このサーバーが塞ぐ2つの特定の方法で漏洩しやすくなっています:

  • httpxはすべてのリクエストURLをINFOでログに記録します。_silence_http_logging()はそれをミュートし、stdoutハンドラーを除去します——stdoutがJSON-RPCを運ぶため、いずれにせよ必要です。

  • トランスポートおよびステータス例外はリクエストURLを埋め込みます。クライアント宛てのすべてのメッセージは_redact()を通過し、レシートは認証情報をマスクするのではなく削除したパラメータから構築されます。

テスト

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

ライブテストはこのREADMEが依存する主張を保護します:KCIの取り込みウィンドウが古い出版物を返すこと、KCIの識別子が型付けされていること、max_recordsがヒントではなく上限であること、resumptionハーベストが送信したことのない日付ウィンドウを記録しないこと。OAKテストは別途ゲートされ、OAKに到達できない場合は未実行のブランチで合格するのではなく大きな音を立てて失敗します。

既知の制限

4つのKCI RESTツールはライブレスポンスを見たことがありません——APIキーがないためです。フィールドマッピングは公開ドキュメントに従っており、ワイヤーに対して未検証です。成功/失敗テストは意図的に構造的(レコードが存在すれば成功)であり、おしゃべりな成功メッセージも簡潔な拒否も誤読されません。キーが存在するまでREST出力は暫定的なものとして扱ってください。

このサーバーがカバーしないもの

ScienceON(KISTI)——意図的に範囲外。そのゲートウェイは、登録されたMACアドレスと登録された公開IPから構築されたAES-256-CBCトークンを必要とします。rubato103/scienceon-mcpはすでにライブ認証情報に対して実装されており、上記の正確な認証情報漏洩経路に対して強化されています。テスト不能な認証コードを複製するのではなく、並行してインストールしてください:

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

RISS(KERIS)——検索APIはhttps://www.riss.kr/openApiに存在し、学位論文、国内・国外論文、単行本、研究報告書、逐次刊行物をカバーしていますが、キーは韓国の非営利機関と大学にのみ発行され、各申請はKERIS職員が承認します。個人は申請できません。韓国以外の大学が資格を持つかどうかは未テストです。キーが入手できれば、RISSはこのサーバーに属します。

DBpia(Nurimedia)——キーはオープンで寛大(1日2,500コール)ですが、利用規約はサービスを非営利目的に制限し、かつ検索結果のコピー、保存、送信を禁止しており、リアルタイムで変更せずに表示することとされています。これは参照管理ツール、コーパス索引、レジスタへのハーベストと互換性がありません。制約はAPIではなくライセンスです。

korea_sources_statusはこれら3つすべてをその場で報告するため、省略はこのファイルだけでなくツール内部からも見えます。

利用規則

  • KCIとOAKは公開されたレート制限のない公共部門サービスです。思いやりを持ってハーベストし、広い範囲を叩くのではなくウィンドウを分割してください。

  • ここで取得されるメタデータは書誌情報です。全文は所蔵リポジトリが設定する条件の背後にあります——OAKのcontents_urlは各メンバーリポジトリを指し、それぞれ独自のライセンスを持ちます。

  • 帰属文字列はすべてのエンベロープで返されます。公開するものにそれらを引き継いでください。

引用

このソフトウェアがあなたの研究を支援する場合は、引用してください。CITATION.cffを参照するか、GitHubの「Cite this repository」ボタンを使用してください。

ライセンス

MIT © 2026 Christopher Gerteis.

このライセンスはサーバーコードのみを対象とします。KCI および OAK データに対するいかなる権利も付与するものではなく、これらのデータはそれぞれ National Research Foundation of Korea および National Library of Korea の規約に引き続き従うものとします。

免責事項

研究ツールであり、ベストエフォートで保守され、「現状のまま」提供されるもので、保証はありません。National Research Foundation of Korea、National Library of Korea、KERIS、KISTI、Nurimedia とは提携しておらず、その承認も受けていません。

著者

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