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
访问服务器

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 の利用規約を確認すること

参考

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选