Zoteroにある論文を大規模言語モデルを使って検索・整理させたり、比較や要約をさせたいことはないでしょうか?
今やGoogle NotebookLMなど複数のPDFをAIが扱うのに便利なツールは多数ありますが、大量に蓄えられたZotero内の文献を一括して調べたいときには不十分です。
そこで今回の記事ではLLMの代表格であるClaudeとZoteroをMCP(Model Context Protocol)を使って連携する方法についてみていきます。セットアップの方法から使い方までみていきますので、ぜひ参考にしてください。
※※※
今回のZotero×Claude連携を含め、Zoteroの情報を幅広く解説した徹底活用ガイドをnoteにて販売中です!更新性で今後も新しくしていくのでぜひ一度ご覧ください。

※※※
セットアップ
必要な物
- Claude desktop版(課金のproモデルが望ましい)
- Python 3.10以降 or Node.js
これらがない方でもダウンロード・インストールするところから見ていきますので、安心して読み進めてください。すでにこれらのツールがある方はしばらく飛ばしてもらっても大丈夫です。
セットアップ手順
1.Claudeのセットアップ
まずはClaudeのデスクトップ版を入手します。下記の公式ページよりダウンロード→インストールすれば簡単に立ち上げることができます。
ブラウザ版ではMCP連携はできませんのでデスクトップ版が必須です。立ち上げたあとAnthropicのアカウント作成が必要ですので、アカウントを作ってログインします。
無料版でもこのMCP連携はできますがすぐにチャットの使用上限に達してしまうため、実質的には使いものになりません。とはいえ課金するとしても一度無料版を試してみて、ちゃんと使えるか確認してからが良いとは思います。
2.Pythonのインストール
MCPサーバーの立ち上げはPythonもしくはNode.jsを使います。どちらでもできるのですが、どちらかというと研究者での応用の幅はPythonの方が広いように思いますので、どちらも持ってない方はPythonをオススメします。Node.jsを使った方法は補足として後述しておきます。
まずは公式サイトからPythonのインストールをします。
最初に表示されているバージョンをインストールしておけば概ね問題ないです。詳細なインストール手順はこちらを参照頂くと良いと思います。
Windows版Pythonのインストール - python.jp
インストールは指示された通り、クリックして進めていけばいいと思いますが、上記ページにも書いてある通り"Add Python 3.x to PATH"は忘れずにチェックを入れておきましょう。
これがあるとコマンドプロンプトなどで"python"と入力するだけでpythonの機能が使えます。ないと全く反応しません。
インストールができたらコマンドプロンプトを開いて
python --version
と入力するとインストールしたPythonのバージョンが表示されます。これでインストールはOKです。
3.MCPサーバーの立ち上げ
続いてPythonを使ってMCPサーバーを立ち上げます。サーバーの立ち上げにはuvというライブラリ(様々な用途のために組まれたPython内のアプリのようなもの)を入れる必要があります。
まずは標準で搭載されているpipというコマンドを使ってこのuvライブラリを取り込みます。
コマンドプロンプトで
pip install uv
と入力するとuvライブラリがPythonにインストールされます。

これでuvというコマンドが使えるようになるため、uvを使ってZotero用のMCPサーバーをインストールします。
uv tool install "git+https://github.com/54yyyu/zotero-mcp.git"
と入力しましょう。すると以下の様な画面でZotero用のMCPサーバーに必要なツールが一括ダウンロードされます。

次にZotero側の設定を確認します。Local APIと呼ばれるローカル環境でのアプリ連携機能を使うので「設定」→「詳細」から以下のチェックボックスにチェックを入れておきます。

チェックを確認した後、再度コマンドプロンプトに戻って
zotero-mcp setup
と入力します。成功すると以下の様な画面になるはずです。Zotero側の設定をすることで"Local API: true"となって接続が成功します。

MCPの設定にはここに出ているclaude_desktop_config.jsonというファイルにMCPサーバーの情報が書き込まれますが、ここでは自動で処理されます。
これで設定は完了です。お疲れさまでした。
Claudeを起動するとsearch & toolsのところにzoteroという項目が追加されていると思います。これで成功です。

基本的な使い方
使用例
セットアップが完了すればClaudeを開いて「Zotero内の~を調べて」というように指示するだけでZoteroにアクセスしてくれるようになります。
例えば適当な文献を選んで要約させてみましょう。
プロンプト例:「Zotero内にある認知症とスタチンの研究の論文を要約して。」

基本的には指示に応じてZotero内の検索や論文、メモの確認などのコマンドをClaudeが自動的に使い分けてくれます。検索時に余計な手間をかけないようにするには論文名やタグ・コレクション名を正確に入力するのが大事です。
全文検索もできるため、特定の手法に絞って論文を探したりもできます。意味検索(文脈を含めた単語や文章の検索)はできませんが、こちらの意図をくみ取ってClaudeがキーワードを調整してくれますので結構指示通りに見つかります。
プロンプト例:「傾向スコアを研究の手法として使った観察研究の英語論文をZotero内でチェックして。手法の解説ではなくて、この統計手法を使った論文を探してほしいです。」

ただし、大量に似た文献がある場合は処理しきれないところもありますので、仕組みを考慮しながら指示を考えるほうが良さそうです。
また、メモの作成機能も実装されていますがエラーがあり、実際に使うことができません。Claude内で表示させてメモに手動でコピペするしか現時点ではなさそうです。作成者のGithubのissueにはあがっていましたので、また修正されるかもしれません。
Claudeの上手なコントロール方法
指示を出した時にClaudeがどのような動きをしているかを観察しておくと、どこまでの内容ならうまくチェックできるのか、あるいはできないのかがよく分かります。
例えば「~という論文を探して」という場合、たいてい以下のような動作をします。

Request
{ `query`: `propensity score`, `limit`: `15` }
とありますが、これはpropensity scoreという検索ワードでテキスト検索をし、15個を上限として表示している、という意味です。この検索ワードを色々と試しながら文献タイトルを収集し、ユーザーの希望にあったものを探していきます。
そして興味がありそうな文献を見つけると全文を読み始め、クエリにあっているかどうか判断します。

こうして情報収集を繰り返し、一定の段階まで達すると結果を報告してくれます。
この仕組みから分かるように、検索する場合もすべてに目を通しているわけではありません。入力できる情報には限りがあるため、ある程度上手に絞り込めるように意識することが必要です。
しかしながら、横断的に検索したり、ぱっと要約をさせるには十分な精度と手軽さがあります。動作の仕方を頭に入れて、過信しすぎないようにしつつも文献調査の効率化に役立ててみてください。
補足:Node.jsを使った方法
MCPサーバーの立ち上げにはPythonの代わりにNode.jsを使うこともできます。Node.jsというのはjavascriptと呼ばれるウェブブラウザでよく使われる言語を他の用途でも幅広く使えるようにするためのものです。
こちらについては以前のObsidianの記事にやり方を記載していますので、こちらを参考にしてやってもらえると良いと思います。
インストールが成功したら以下のコマンドを入れましょう。
npx -y @smithery/cli install @54yyyu/zotero-mcp --client claude
これだけでMCPサーバーの立ち上げが完了します。
まとめ
ZoteroとClaudeをMCPで連携させる方法を詳しくみてきました。文献数が多い場合は、見る文献を適切に絞れるように工夫する必要がありますが、Claudeがうまく調整してくれることも多いので、非常に便利です。
さっとライブラリ内の文献を見直したり、メモをまとめ直したりしたいときには重宝すると思います。MCP連携は慣れるまで大変かもしれませんが、一度使っておくと今後どんなツールが来ても対応できるようになると思いますので、ぜひ一度は試してみてください。
コメント