kaken-mcp-server

kaken-mcp-server

MCP server for querying the Japanese KAKEN database of scientific research grants, enabling search of projects and researchers via Claude.

Category
Visit Server

README

kaken-mcp-server

科学研究費助成事業データベース(KAKEN)の公式 OpenSearch API を Claude から利用するためのローカル MCP サーバ。claude_desktop_config.json の env 経由で KAKEN_APPID を渡せるため、Win/Mac の Claude Desktop で確実に動作する。

提供ツール:

ツール名 用途
kaken_search_projects 研究課題を多条件で検索(kw/qa/qb/qg/qh/qm/qc/qd/qe/qf/s1/s2/o1/od)
kaken_search_researchers 研究者を検索(kw/qg/qm/qh/qq/qs/qe/qd)
kaken_get_project 課題番号から1件の詳細取得
kaken_get_researcher_grants 研究者番号から関与全課題を取得(業績把握用)

0. インストール方法(3通り)

すべての方法で、先に CiNii API 利用登録 でアプリケーションID(appid)を取得しておくこと。

A. Claude Desktop 拡張機能(.mcpb バンドル)— 推奨

Releases から kaken-mcp-server-x.y.z.mcpb をダウンロードし、ダブルクリック(または Claude Desktop の 設定 → 拡張機能 にドラッグ&ドロップ)。インストールダイアログで appid を入力するだけで使える。Node.js のインストールも不要(Claude Desktop 内蔵ランタイムで動作)。

.mcpb を自分でビルドする場合:

npm install
npm run build                 # tsc → dist/
node scripts/build-mcpb.mjs   # kaken-mcp-server-x.y.z.mcpb を生成

Note: npx @anthropic-ai/mcpb pack は使わない。新しい mcpb CLI が生成する zip (ディレクトリエントリ無し・小構成)だと Claude Desktop のインストーラが "reply was never sent" で無応答になる。scripts/build-mcpb.mjs はインストール 実績のある形式(dist + production node_modules 同梱、dir エントリ + unix ファイル種別ビット付き zip)で生成する。 なお npm run bundle(esbuild 単一ファイル server/index.cjs)は Claude Code プラグイン用で、.mcpb には使わない。

B. Claude Code プラグイン(マーケットプレイス経由)

/plugin marketplace add masa-med-ai/kaken-mcp-server
/plugin install kaken-search@kaken-marketplace

appid は環境変数で渡す(シェルの rc ファイル等に設定):

export KAKEN_APPID="YOUR_APPID_HERE"

C. 手動セットアップ(claude_desktop_config.json)

以下の手順1〜3を参照。

1. 手動セットアップ

1-1. appid を取得

CiNii API 利用登録 でアプリケーションID(appid)を取得する。

1-2. このリポジトリを準備

git clone <this-repo>  # または手動配置
cd kaken-mcp-server
npm install
npm run build

dist/index.js が生成される。

1-3. claude_desktop_config.json に登録

設定ファイルの場所:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

以下を追記する(既存の mcpServers がある場合はその中にマージ):

{
  "mcpServers": {
    "kaken": {
      "command": "node",
      "args": ["/絶対パス/kaken-mcp-server/dist/index.js"],
      "env": {
        "KAKEN_APPID": "YOUR_APPID_HERE"
      }
    }
  }
}

Windows の例(パス区切りに注意。バックスラッシュは \\ でエスケープ):

{
  "mcpServers": {
    "kaken": {
      "command": "node",
      "args": ["C:\\Users\\<name>\\kaken-mcp-server\\dist\\index.js"],
      "env": {
        "KAKEN_APPID": "YOUR_APPID_HERE"
      }
    }
  }
}

設定後、Claude Desktop を再起動するとツールが利用可能になる。

2. 動作確認

Claude に以下のように依頼すれば、自動的にツールが呼ばれる:

  • 「KAKEN で AI 内視鏡の先行研究を調べて」
  • 「研究者番号 80802743 の科研費業績を取得して」
  • 「19K20626 の研究課題の詳細を見せて」
  • 「昭和大学の消化器内科学分野の課題を年度別に集計して」

3. ツール仕様

kaken_search_projects

引数 型 説明
kw string フリーワード検索(全フィールド対象)
qa string 研究課題名で検索
qb string 研究課題番号(例: 19K20626)
qg string 研究者の姓名
qh string 研究者の所属機関
qm string 研究者番号(8桁)
qc string 研究種目(例: 若手研究)
qd string 審査区分/研究分野
qe string 研究機関
qf string キーワード
s1 string 助成開始年度 From
s2 string 助成終了年度 To
o1 1-4 助成期間の検索条件(1=開始年度〈既定〉, 2=終了年度, 3=期間の一部, 4=全部)
od 1-5 ソート(1=適合度, 2=開始年新しい順〈既定〉, 3=古い順, 4=配分額多い順, 5=少ない順)
rw integer 1ページの件数(20/50/100/200/500、既定100。中間値は近い許容値に切り上げ)
start integer 開始位置(既定1)
lang ja / en 言語(既定 ja)
format ai / table / json 出力形式(既定 ai)

kaken_search_researchers

kw, qg, qm, qh(現在の所属機関), qq(部局), qs(職名), qe, qd, rw, start, lang, format を受け取る。

研究者検索API(nrid.nii.ac.jp)は XML 非対応のため、内部では format=json で取得して パースしている(研究課題検索は従来どおり XML)。取得可能な検索結果は最大1000件。

kaken_get_project

  • awardNumber (必須): KAKEN研究課題番号
  • format: ai / json

kaken_get_researcher_grants

  • researcherNumber (必須): 研究者番号
  • rw: 件数(既定200。一人の研究者の全課題を取得するため大きめ)
  • format: ai / table / json

4. 出力形式

ai(既定)は AI に読ませやすい圧縮 Markdown:

## 1. [19K20626] IIIFとTEIを用いたオンライン翻刻支援システムの開発
- 研究代表者: 中村 覚(80802743)/ 東京大学 史料編纂所 / 助教
- 研究種目: 若手研究
- 研究期間: 2019-04-01 〜 2023-03-31
- 状態: 完了
- 配分額: 直接 ¥3,500,000 / 間接 ¥1,050,000 / 合計 ¥4,550,000
- キーワード: IIIF, TEI, 人文情報学
- URL: https://kaken.nii.ac.jp/grant/KAKENHI-PROJECT-19K20626/

table は Markdown のテーブル、json は構造化データ。

5. 開発

npm run dev      # tsx で直接実行(ホットリロード相当)
npm run build    # tsc でビルド
npm start        # node でビルド済みを実行

6. 利用上の注意

  1. 短時間の大量アクセスを避けること(KAKEN 利用規約)
  2. APIで返る所属情報は採択時点のものであり、現在の所属とは異なる場合がある
  3. 検索結果の二次利用には KAKEN の利用規約を確認すること

参考

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured