この記事はまだ公開されていません。検索エンジンにも記事一覧にも出ません。

AI の活用

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

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

この記事は AI を使って下書きした段階で、まだ人が内容を確認していません。

「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.orgWeb APIで、Zoteroのアカウント設定(https://www.zotero.org/settings/keys/new)で作るキーを使います。ローカルAPIと違ってこちらは認証があり——キーはZotero-API-Keyヘッダで渡します——レート制限もあります。速度を落としてほしいときはBackoffRetry-Afterヘッダ、あるいは429が返ってきます。Zoteroを呼ぶ側が同じマシンに無い場合や、現時点で書き込みをしたい場合はこちらになります。だからサーバ側は両方を組み合わせていて、richardjlyon/zotero-mcp54yyyu/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-serverpipx 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_KEYZOTERO_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と話したい——に対しては、仕掛けが大げさです。

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

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

それが何で、何でないかを正確に書きます。

  • LitlasはMCPサーバを提供していません。これはMCPではありません。受け渡しです。Litlasが材料を用意し、選んだAIを開く。そのあと接続が残るわけではありません。
  • Litlas自身はAIモデルを一切持っていません。推論をしているのは渡した先のAIで、Litlasは運び役です。
  • 一度に扱えるのは 1 件です。Claudeの中から「自分の 4,000 件を検索して」に答えることはできません。それはMCPができてこちらができないことです。

代わりに得られるのは、自分のマシンに何も入れなくてよいことです。Webアプリなので借り物のPCからでもスマートフォンからでも使え、その日使いたい 4 つの宛先のどれでも、それぞれを設定し直すことなく選べます。

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

無料プランではボード 3 個・保存 100 件、1 日あたり✨の受け渡し 3 回・検索 5 回・引用グラフ表示 5 回まで使え、クレジットカードの登録は要りません。AI会話のリンクを論文に恒久的に紐づけて保存するのは有料機能ですが、受け渡しそのものは無料です。

選び方

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

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

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

参照した情報

Litlas の機能に関する記述は 2026-08-07 に Litlas のコードベースで確認(intent_rubric.md §1)。Zotero のローカル API の挙動は Zotero 公式ドキュメント(zotero.org/support/dev/web_api/v3/local_api)、セットアップ手順は 54yyyu/zotero-mcp の README と PyPI パッケージ zotero-mcp-server、Claude Code の CLI 構文は code.claude.com/docs/en/mcp から。いずれも 2026-08-07 に確認し、同日時点で Zotero 公式の MCP サーバは存在しない。Claude Desktop の Linux ベータ・ChatGPT のトランスポート対応・クレートのダウンロード数は、2026-08-08 に各社の公式ドキュメントと crates.io の API で確認した。

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