Zenodo MCP について
Zenodo MCPは、Zenodoのオープンな研究リポジトリを検索・取得するツールを、開発者や研究者に提供します。直接接続用のMCPサーバーと、フレームワークやAPI互換クライアント向けのFastAPIサービスがあります。
主な機能
- 01Zenodoレコードの検索
- 02詳細なメタデータの取得
- 03BibTeXまたはAPA形式の引用取得
- 04レコード比較とデータ種別の分類
- 05添付ファイルの一覧表示とダウンロード
活用シーン
- 01論文、ソフトウェア、データセットの発見
- 02論文やノート用の引用情報取得
- 03オープンな研究データに基づく研究エージェント
- 04再現性資料の検索とダウンロード
MCP 対応
Zenodoの検索・取得ツールを提供する標準MCPサーバーです。別のFastAPI実装は、LangChain、LangGraph、OpenAI互換クライアント向けにMCP互換ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-zenodo — Zenodo MCP サーバー
mcp-zenodo は Zenodo MCP サーバーです。Model Context Protocol(MCP) を通じて、CERN がホストするオープンアクセス研究リポジトリの Zenodo と LLM を接続します。 LLM から呼び出せるツールとして、Zenodo のレコードの検索、メタデータの読み取り、引用情報の取得、ファイルの一覧表示やダウンロードができます。オープンな研究データセット、ソフトウェア、出版物を AI アシスタントで扱いたい開発者や研究者向けに構築されています。Claude Desktop、Cursor IDE、LangChain/LangGraph のエージェントなどのツールを使って、DOI 付きの実際の Zenodo レコードを根拠に回答させたい場合にご利用ください。Zenodo への 投稿 または 公開 が必要な場合には使用しないでください。このプロジェクトは読み取りと取得を目的としており、アップロードのワークフローを実装していません。Zenodo REST API を直接呼び出す方法と比べて、mcp-zenodo はそのアクセスを MCP ツールとして提供するため、MCP 対応クライアントならカスタム統合コードを書かずに Zenodo を利用できます。
一言で表すと:オープンアクセスの研究データを LLM から呼び出せるツールに変える Zenodo 用 MCP サーバーです。
Python で記述されています。ライセンスは Apache-2.0 です。
できること
mcp-zenodo は、MCP ツールを通じて Zenodo の研究成果リポジトリを LLM に提供します。
- レコードの検索と取得 — クエリで Zenodo のレコードを検索します。
- 引用情報の取得 — BibTeX や APA などの形式で引用情報を取得します。
- データ型の検出 — レコードをデータセット、ソフトウェア、論文に分類します。
- メタデータへのアクセス — レコードの詳細なメタデータを取得します。
- ファイルの一覧表示とダウンロード — レコードに添付されたファイルを参照し、ダウンロードします。
利用可能なツール
| ツール | 説明 |
|---|---|
search_records | Zenodo のレコードを検索します |
get_metadata | Zenodo レコードの詳細なメタデータを取得します |
get_citation | Zenodo レコードの BibTeX または APA 形式の引用情報を返します |
detect_data_type | レコードがデータセット、ソフトウェア、論文のいずれかを判定します |
compare_records | 複数の Zenodo レコードのメタデータを比較します |
list_files | Zenodo レコードで利用可能なファイルを一覧表示します |
download_file | レコードから特定のファイルをダウンロードします |
generate_embed_link | レコード(PDF、データセット)用の直接埋め込み可能なリンクを作成します |
extract_keywords | レコードの要約またはテキストから主要なキーワードを抽出します |
get_related_records | 指定された Zenodo レコードに関連するレコードを検索します |
summarize_record | レコードのメタデータから要約を生成します |
リポジトリ構成
このリポジトリには、異なる用途に対応する 2 つの実装が含まれています。
- MCP SDK Core(
/mcp_sdk_core)— Cursor IDE や Claude Desktop などの MCP 対応環境と統合するための Python MCP サーバーです。 - MCP API(
/mcp_api)— LangChain や LangGraph などの LLM フレームワーク、および OpenAI 互換クライアント向けに、MCP 互換ツールを提供する FastAPI サービスです。
MCP SDK Core
MCP SDK Core の実装は、MCP 対応環境との直接統合向けに設計されています。以下の機能を提供します。
- MCP との直接統合 — Model Context Protocol 標準に準拠しています。
- Cursor IDE/Claude Desktop との互換性 — 標準の MCP クライアント設定を通じて接続します。
- シンプルな設定 — JSON 設定ファイルで管理します。
- 統一された API — Zenodo リソースへの標準化されたアクセスを提供します。
追加のミドルウェアを使わずに、開発環境から Zenodo に直接アクセスしたい開発者に最適です。
MCP API
MCP API の実装は、LLM フレームワーク向けに MCP 互換ツールを提供する FastAPI サービスです。次の機能を備えています。
- LangChain との統合 — LangChain エージェントでツールを使用できます。
- LangGraph との互換性 — LangGraph のワークフローでツールを使用できます。
- OpenAI 互換 API — OpenAI 互換クライアントで使用できます。
- LibreChat のサポート — LibreChat および類似プラットフォームと互換性があります。
- カスタムツールの作成 — ツールを追加できる拡張可能なアーキテクチャです。
これは、より大きなワークフローの一部として Zenodo と連携する LLM アプリケーションを構築する開発者に最適です。
30 秒で始める
オプション A — Cursor IDE / Claude Desktop 用 MCP サーバー
# Clone the repository
git clone https://github.com/MSKazemi/mcp-zenodo.git
cd mcp-zenodo/mcp_sdk_core
# Install dependencies
pip install -r requirements.txt
続いて、お使いの MCP クライアントにサーバーを登録します。Cursor IDE の場合は mcp.json(プロジェクトのルートまたは ~/.cursor/ 内)を作成します。Claude Desktop の場合は、同じブロックを claude_desktop_config.json に追加します。
{
"mcpServers": {
"Zenodo": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-zenodo/mcp_sdk_core/server",
"run",
"server.py"
]
}
}
}
--directory のパスをローカルのチェックアウト先に合わせて変更してください。クライアントを再起動すると、Zenodo MCP サーバーが検出され、起動します。その後、アシスタントに Zenodo の検索、メタデータの取得、引用情報の取得を依頼できます。
オプション B — LangChain / LangGraph / OpenAI 互換クライアント用 FastAPI サービス
# Clone the repository
git clone https://github.com/MSKazemi/mcp-zenodo.git
cd mcp-zenodo/mcp_api
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your Zenodo API token
# Run the API server
uvicorn server.main:app --host 0.0.0.0 --port 8000
使用例
MCP 対応アシスタント(Claude Desktop、Cursor)に、search_records ツールを呼び出す質問をします。
「Zenodo で気候モデルの出力に関するレコードを検索し、DOI 付きで最上位の結果を表示してください。」
アシスタントは search_records ツールを呼び出し、次に get_metadata を呼び出して、レコードのタイトル、著者、DOI、説明を返します。代表的な(省略版の)ツール結果は次のようになります。
{
"hits": [
{
"title": "Example Climate Model Output Dataset",
"doi": "10.5281/zenodo.1234567",
"type": "dataset",
"url": "https://zenodo.org/record/1234567"
}
]
}
続けて get_citation を使うと BibTeX または APA 形式の引用情報を取得できます。また、list_files / download_file を使うとレコードのファイルにアクセスできます。(実際のフィールドと値は、Zenodo から返されるレコードによって異なります。)
使用例
- 文献とデータセットの発見 — AI アシスタントに Zenodo を検索させ、関連するデータセット、ソフトウェア、DOI 付き論文を提示できます。
- 引用情報の取得 — レコードの BibTeX または APA 形式の引用情報を、原稿やノートブックに直接取り込めます。
- 研究エージェント — LangChain / LangGraph エージェントに Zenodo ツールを提供し、オープンな研究データに基づいて回答できるようにします。
- エディター内での調査 — コードやドキュメントの作成中に、Cursor IDE または Claude Desktop から Zenodo に問い合わせられます。
- 再現性のあるワークフロー — 研究成果物をプログラムから特定し、メタデータを確認してダウンロードできます。
比較と代替手段
- Zenodo REST API を直接呼び出す場合との比較 — Zenodo REST API を使うと、入稿やアップロードを含めてすべてを制御できますが、統合を自分で作成し、保守する必要があります。mcp-zenodo は一般的な読み取り・取得操作を MCP ツールとして提供するため、カスタムコードなしであらゆる MCP クライアントから利用できます。
- 汎用 HTTP / fetch MCP サーバーとの比較 — 汎用の fetch ツールで Zenodo の URL にアクセスすることはできますが、レコード、メタデータ、引用情報、ファイル一覧に関する知識はありません。mcp-zenodo は Zenodo 専用の型付きツールを提供します。
- 他の研究リポジトリ向け MCP サーバーとの比較 — arXiv やその他のデータリポジトリなどを対象とする同様の MCP サーバーがあります。mcp-zenodo は Zenodo に特化しています。また、2 つの統合方法(stdio MCP サーバーと FastAPI サービス)を提供しているため、直接 MCP クライアントを使う方法と、LLM フレームワーク / OpenAI 互換の利用方法から選べます。
制限事項/使用を避けるべきケース
- 登録や公開には使用できません — このプロジェクトは Zenodo からの検索と取得に特化しており、Zenodo への登録/アップロードのワークフローは実装していません。
- Zenodo API に依存します — 可用性、レート制限、返されるフィールドは Zenodo によって決まります。一部の操作には Zenodo API トークンが必要な場合があります。
- 取得品質は Zenodo のメタデータに依存します — データ型の検出、キーワードの抽出、要約はレコードのメタデータに基づいており、ベストエフォートで提供されます。
- 実装は 2 つに分かれています — MCP SDK Core サーバーと FastAPI サービスでは設定方法が異なります。単一の統合されたデプロイを想定せず、使用するクライアントに合ったものを選んでください。
FAQ
mcp-zenodo とは何ですか? mcp-zenodo は Zenodo の MCP サーバーです。Model Context Protocol を実装し、オープンアクセスの研究リポジトリである CERN の Zenodo を、大規模言語モデルが呼び出せるツールとして提供します。レコードの検索、メタデータの読み取り、引用情報の取得、ファイルの一覧表示やダウンロードができます。
MCP 経由で Claude や ChatGPT から Zenodo を利用するにはどうすればよいですか?
Claude Desktop または Cursor IDE では、mcp_sdk_core サーバーをインストールし、クイックスタートの説明に従って MCP クライアントの設定(claude_desktop_config.json または mcp.json)に追加してください。OpenAI 互換/ChatGPT スタイルのワークフローでは、mcp_api FastAPI サービスを実行し、フレームワーク(例:LangChain、LangGraph)または OpenAI 互換クライアントから MCP 互換ツールを呼び出してください。
どの MCP クライアントに対応していますか?
MCP 互換クライアントであれば、標準の MCP トランスポートを介して mcp_sdk_core サーバーを利用できます。Cursor IDE でテスト済みで、Claude Desktop でも動作します。mcp_api サービスは、LangChain や LangGraph などの LLM フレームワーク、OpenAI 互換クライアント、および LibreChat などのプラットフォームを対象としています。
Zenodo API トークンは必要ですか?
FastAPI サービスは .env から Zenodo API トークンを読み込みます(.env.example を参照)。トークンなしでも利用できる Zenodo の操作はありますが、安定したアクセスのためにトークンの使用を推奨します。
mcp-zenodo は PyPI で公開されていますか? 現時点では公開されていません。クイックスタートの説明に従って、リポジトリをクローンしてインストールしてください。
コントリビューション
2 つの実装へのコントリビューションを歓迎します。詳細については、各実装の README(mcp_sdk_core、mcp_api)をご覧ください。
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
引用
このプロジェクトを研究などで利用する場合は、引用してください。引用メタデータは CITATION.cff に記載されています。例:
Seyedkazemi Ardebili, M. mcp-zenodo:Zenodo の MCP サーバー。 https://github.com/MSKazemi/mcp-zenodo
法的通知と責任ある利用
このリポジトリ内の資料は、適用法で認められる範囲において、いかなる保証もなく提供されます。これらの資料を利用する、またはデプロイする前に、免責事項と責任ある利用に関する通知をお読みください。この通知は、既存のソフトウェアライセンスを変更したり、法的に放棄できない権利を制限したりするものではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。