AI の活用

Zotero MCP:ライブラリをClaudeにつなぐ手順と、設定なしで済ませる道

ZoteroのライブラリをMCP経由でClaudeやChatGPTにつなぐには実際に何が必要なのかをご紹介します。ローカルAPI、サードパーティ製サーバ、実際の設定例、そして論文 1 本ずつの受け渡しで足りる場面まで扱います。

この記事は AI を使って下書きし、公開前に人が内容を確認しています。

Zotero MCPは、サードパーティ製のMCPサーバを介して、ClaudeなどのAIクライアントからZoteroライブラリを扱う仕組みです。ライブラリ全体を繰り返し参照するなら候補になりますが、ローカル設定とサーバの保守が必要です。論文をときどき 1 本渡すだけなら、直接アップロードするほうが簡単です。

「zotero mcp」で検索する人の動機はたいてい 1 つです。Zoteroに数千件の文献があり、別のウィンドウではClaudeやChatGPTを開いています。しかし、両者のあいだで何かを移そうとすると、エクスポートするかコピーするかアップロードし直すことになります。MCPはその隙間を埋めるための規格です。実際に何が必要なのか、そしてどこからは用途に対して大げさすぎるのかをご紹介します。

MCPとは何か(1 段落で)

Model Context Protocol(MCP)は、LLMクライアントと外部のデータ源をつなぐためのオープンな規格です。Anthropicが 2024 年後半に公開し、2025 年 12 月にLinux Foundation傘下のAgentic AI Foundationへ寄贈しました。2026 年 8 月時点の最新の仕様リビジョンは 2026-07-28 です。形はいつも同じで、クライアント(Claude Desktop、Claude Code、Cursor、ChatGPTなど)がサーバ(特定の 1 つのものを読む方法を知っている小さなプログラム)と話します。サーバが読む対象は、手元のファイルであったり、データベースであったり、Zoteroのライブラリであったりします。クライアントはサーバが提供するツールを発見し、会話の中で必要になったら呼び出します。サーバの動かし方は 2 通りで、クライアントが起動するローカルのサブプロセスとして動くstdioか、ネットワーク越しに到達するStreamable HTTPかのいずれかです。現行仕様が定めるトランスポートはこの 2 つだけで、手元のクライアントがどちらを話すかで以降のほとんどが決まります。ここにZotero固有の話はありません。Zoteroは「誰かがサーバを書いた対象」の 1 つにすぎません。

Zotero公式のMCPサーバは存在しない

始める前にはっきりさせておくべき点です。ZoteroはMCPサーバを公開していません。見つかる「Zotero MCP」はすべてサードパーティのプロジェクトです。2026 年 8 月時点で、公式のMCPレジストリだけでも 6 つ以上の別々のZoteroサーバが登録されており、その外にもまだあります。Zotero自身のフォーラムでも話題にはなっていますが、公認されているわけではありません。いくつかを 2026 年 8 月時点の状態とともにご紹介します。

  • 54yyyu/zotero-mcp:Python製で、MITライセンスです。PyPIにはzotero-mcp-serverとして公開されています。この中では突出して利用者が多く、ドキュメントも最も厚く、開発も続いています。設定を自動で書き込むコマンドがあります。
  • richardjlyon/zotero-mcp:Rust製です。cargo install zotero-mcpで入り、stdioとHTTPの両方を話します。ただしずっと新しく、規模もずっと小さいプロジェクトで、crates.ioへの初回公開は 2026 年 5 月、ダウンロード総数は 200 件に達していません。
  • kaliaboi/mcp-zotero:Node製です。npm install -g mcp-zoteroで入り、ZoteroのWeb API経由で動きます。今もよくリンクされていますが、npmへの最終公開は 2024 年 12 月、最終コミットは 2025 年 2 月なので、保守中というより休止中と考えたほうがよいものです。
  • ほかにもいくつもあります。たとえばcookjohn/zotero-mcpはさらに形が違い、MCPサーバを同梱したZoteroプラグインとして配布されています。kujenga/zotero-mcpはPyPIのzotero-mcpという名前を押さえているプロジェクトです。

これらは互換ではありません。インストール方法も、設定のキー名も、できることも、手入れのされぐあいも違います。選んだもののREADMEを読み、最終更新がいつかを確かめてください。記事に載っている設定例は、この記事のものも含めて、あるプロジェクトのある時点のスナップショットにすぎません。この記事のそれは 2026 年 8 月時点のものです。

実務上の意味ははっきり書いておきます。文献ライブラリ全体を読み、設定によっては書き込みもできるサードパーティ製ソフトウェアを自分の環境に入れる、ということです。素性の分からないプラグインを入れるときと同じ扱いをしてください。

どのサーバを選んでも共通する部分

Zotero 7 以降のデスクトップアプリは、Zotero Web APIのローカル版をhttp://localhost:23119/api/で公開しており、手元のデータベースの内容をそのまま返します。これはMCPサーバ側が発明したものではなくZotero自身の機能で、多くのサーバはここを読んでいます。

有効化が必要です。設定→詳細→「このコンピュータ上の他のアプリケーションとの通信を許可する」。これは 2026 年 8 月時点の最新版であるZotero 9 での文言と場所です。

Zotero公式ドキュメントによれば、読み取りリクエストに認証は不要で、レート制限も無く、ネットワークを一切使わないのでオフラインでも動きます。取得できるのはローカルでログインしているユーザーのデータだけです。ローカルAPI経由の書き込みはZotero 10 から入るもので、Zoteroが確認ダイアログで発行するローカルAPIキーが必要です。ただしZotero 10 は 2026 年 8 月時点でまだベータなので、現行の安定版ではローカルAPIは読み取り専用です。

もう一方の経路がapi.zotero.orgのWeb APIで、Zoteroのアカウント設定(https://www.zotero.org/settings/keys/new)で作るキーを使います。ローカルAPIと違ってこちらは認証があり(キーはZotero-API-Keyヘッダで渡します)、レート制限もあります。速度を落としてほしいときはBackoffやRetry-Afterヘッダ、あるいは429が返ってきます。Zoteroを呼ぶ側が同じマシンに無い場合や、現時点で書き込みをしたい場合はこちらになります。だからサーバ側は両方を組み合わせていて、richardjlyon/zotero-mcpも54yyyu/zotero-mcpも読み取りをローカルAPI、書き込みをWeb APIで行います。

ローカル経路を使うにはZoteroデスクトップが起動している必要があります。設定は正しいのにサーバが何も返さない、という状態のいちばん多い原因がこれです。

実際の設定例: Claude Desktop

具体例を 1 つご紹介します。いちばんドキュメントが厚い54yyyu/zotero-mcpを使います。要件としてPython 3.10 以上とZotero 7 以降が挙げられています。

まず上のとおりローカルAPIを有効化し、Zoteroは起動したままにします。次にインストール:

uv tool install zotero-mcp-server

pip install zotero-mcp-serverやpipx install zotero-mcp-serverでも入ります。名前に注意してください。パッケージ名はzotero-mcp-serverで、リポジトリ名とインストールされるコマンドはどちらもzotero-mcpです。そしてPyPIのzotero-mcpはまったく別のプロジェクト(kujenga/zotero-mcp)です。pip install zotero-mcpで入るのはこのサーバではなく別人のサーバです。

クライアント側の設定は自動で書かせられます:

zotero-mcp setup

手で書くなら、Claude Desktopの設定ファイルはmacOSでは~/Library/Application Support/Claude/claude_desktop_config.json、Windowsでは%APPDATA%\Claude\claude_desktop_config.jsonにあります。Linux版もあり(2026 年 8 月時点でベータ、対象はUbuntu 22.04 以降とDebian 12 以降)、そちらの設定ファイルの位置はAnthropicのドキュメントに明記がありません。どの環境でも確実なのは設定→Developer→ Edit Configで、正しいファイルが開きます(無ければ作られます)。項目はこうなります:

{
  "mcpServers": {
    "zotero": {
      "command": "zotero-mcp",
      "env": {
        "ZOTERO_LOCAL": "true"
      }
    }
  }
}

ローカルの読み取り専用で使うなら、項目はこれだけで足ります。ローカルAPIではなくWeb APIを使うなら、ZOTERO_LOCALを外してZOTERO_API_KEYとZOTERO_LIBRARY_IDを渡します。ローカルの速い読み取りを保ったまま書き込みも通したいなら、ZOTERO_LOCALを残したうえでその 2 つを足します。このサーバがハイブリッドモードと呼んでいる構成です。

Claude Desktopを再起動したら、自分のライブラリしか答えられない質問(「Xについて何を保存している?」など)で確かめます。推測でも答えられそうな質問では確認になりません。

Claude Codeでは、同じサーバをターミナルから追加します:

claude mcp add --env ZOTERO_LOCAL=true --transport stdio zotero -- zotero-mcp

claude mcp listで接続できたかどうかが分かります。

ChatGPTは 2 通りあり、どちらを使っているかで話が変わります。デスクトップアプリは同じマシンのCodexとMCPの設定を共有していて、ローカルのstdioサーバも起動します。つまり上とほぼ同じ項目で済みます。設定ファイルの位置はアプリ自身のMCPドキュメントで確認してください。制約があるのはWeb版のコネクタのほうで、こちらはHTTPSでリモートから到達できるサーバを前提にしています。そのため上のサーバはHTTPトランスポートで起動してトンネルで外に出し、デベロッパーモードを有効にしたうえでカスタムコネクタとして登録する、という手順になります。54yyyu/zotero-mcpはngrokを使うこの手順をドキュメント化しています。トンネルに手を伸ばす前に、自分が使っているのがどちらなのかを確かめてください。この手順は自分のライブラリへの入口をインターネット上に置くことになり、デスクトップアプリならそもそも不要です。

この方法が向く場面と、向かない場面

MCPで得られるのはライブラリ全体への常設の接続です。全体を横断して検索し、メタデータを取り、注釈を読めます。これは他の手段では代わりが利きません。ただし、条件が揃っていればの話です。

その条件とは、ソフトウェアを入れられるマシンが 1 台あり、そこでZoteroデスクトップが動いており、クライアントがstdioのMCPを話すことです。どれか 1 つでも欠けるとこの構成は成立しません。スマートフォンでも、ブラウザのタブでも、管理者権限の無い研究室の共用機でも、共著者のノートPCでも使えません。

そして、いちばん頻度の高い用途、つまり「いま目の前にあるこの 1 本について、AIに相談したい」という場面に対しては、仕組みが大げさすぎます。

ライブラリを他のツールから使う道はMCPだけではありません。読書ノートをMarkdownで書いているのであれば、ZoteroとObsidianをつなぐ方法のほうが、入れるものも決めることも少なく済みます。

サーバなしで、論文 1 本ずつ同じことをする

Litlasには、その狭い版を担う✨ボタンがあります。論文PDFの本文(保存済みのWebページでも、執筆中のドキュメントでも構いません)を、プロンプトを用意した状態でChatGPT・Claude・Gemini・Gemini Notebookのいずれかに新しいタブで渡します。

仕組みは単純です。Litlasが材料を用意し、選んだAIをその場で開きます。MCPのような常設の接続は張らず、推論をするのは渡した先のAIです。

その単純さがそのまま利点になります。自分のマシンには何も入れないので、Webアプリが開ける環境ならどこでも使えます。借り物のPCからでも、スマートフォンからでも使えます。宛先も、その日使いたい 4 つのうちどれでも、それぞれを設定し直すことなく選べます。Pythonのバージョンも、Zoteroが起動しているかどうかも関係ありません。

Zoteroのライブラリを持ち込む手順は一般的なものです。ZoteroからBibTeXまたはRISで書き出し、Litlasに取り込みます。取り込みは手書きのメモを上書きせず保護しますし、Litlas側からもBibTeXとCSL-JSONで書き出せます。

無料プランはカード登録なしで今すぐ使えます。

→いますぐLitlasを試す

選び方

やりたいこと 向いているもの
AIに、こちらから指示せずZoteroライブラリ全体を検索させたい Zotero MCPサーバ
Zoteroを正本のまま使い続けたい Zotero MCPサーバ
どの端末からでも、何も入れずに論文 1 本をAIに渡したい 1 件ずつの受け渡し
複数のAIを、それぞれ設定せずに使い分けたい 1 件ずつの受け渡し
両方したい 両方使えます(衝突しません)

この 2 つは本当のところ競合していません。片方は 1 台のマシンに一度だけ用意するインフラで、もう片方は押すだけのボタンです。一日中ターミナルでClaude Codeを開いているなら、サーバの構築は 30 分の価値があります。主に論文を読んでいて、目の前の 1 本についてAIの見解が欲しいだけなら、その価値はありません。

どちらを選ぶにせよ共通する助言が 1 つあります。入れるサーバを決めたら、記事ではなくそのプロジェクトのREADMEを読んでください。この種のプロジェクトは動きが速く、 2026 年 8 月時点で正しい設定が半年後も正しいとは限りません。

参考文献