MCP.so
ログイン

Zotero MCP Server

@kaliaboi

基本情報

カテゴリ

その他

ライセンス

MIT

トランスポート

stdio

作者

kaliaboi

Zotero MCP Server について

Claude Desktop から Zotero Cloud 上のコレクションとソースを扱うためのコネクタです。

Zotero MCP Server の設定

以下の設定を使って、このサーバーを MCP 対応クライアントに追加してください。

{
  "mcpServers": {
    "mcp-zotero": {
      "command": "npx",
      "args": [
        "mcp-zotero"
      ]
    }
  }
}

Zotero MCP Server のツール

5

List all collections in your library

Get items in a specific collection

Get detailed information about a paper

Search your entire library

Get recently added papers

概要

Zotero MCP Server とは?

Zotero MCP Server は、Claude などの MCP クライアントが Zotero Web API を通じて Zotero ライブラリを読み取れるようにする、コミュニティ製の zotero mcp コネクタです。コレクションの一覧表示、アイテムの参照、文献の検索、最近追加した論文の確認ができます。

kaliaboi によるオープンソースの Node.js プロジェクト(MIT ライセンス)で、npm では mcp-zotero として公開されています。Zotero 公式チームによるものではありません。API キーを使って Zotero のクラウドライブラリ(zotero.org)にアクセスするため、ライブラリをオンラインに同期しておく必要があります。Zotero デスクトップ版のローカルデータベースを直接読み取ることはありません。

Zotero MCP Server の使い方

Node.js(npx/npm 用)、ライブラリを同期済みの Zotero アカウント、そして Zotero API キーと数値のユーザー ID の 2 つの値が必要です。

  1. https://www.zotero.org/settings/keys で API キーを作成します。
  2. そのキーを使ってユーザー ID を確認します:
curl -H "Zotero-API-Key: YOUR_API_KEY" https://api.zotero.org/keys/current

返ってくる JSON に userID フィールドが含まれており、この数値が ZOTERO_USER_ID になります。

  1. 環境変数を設定し、正しく動作するか確認します:
export ZOTERO_API_KEY="your-api-key"
export ZOTERO_USER_ID="user-id-from-curl"

curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
     "https://api.zotero.org/users/$ZOTERO_USER_ID/collections"

コレクション一覧が表示されれば、認証情報は有効です。

  1. サーバーをインストールして実行します:
# Install globally
npm install -g mcp-zotero
mcp-zotero

# Or run directly with npx
npx mcp-zotero

どちらかの値が設定されていないと、サーバーは "Missing ZOTERO_API_KEY or ZOTERO_USER_ID environment variables" というエラーで終了します。そのため、以下のクライアント設定ではすべて env で両方の値を渡しています。

Claude Desktop

claude_desktop_config.json に次の内容を追加します(README より。値は引用符で囲んでください):

{
  "mcpServers": {
    "zotero": {
      "command": "mcp-zotero",
      "env": {
        "ZOTERO_API_KEY": "YOUR_API_KEY",
        "ZOTERO_USER_ID": "YOUR_USER_ID"
      }
    }
  }
}

この書き方にはグローバルインストールが必要です。インストールしていない場合は、このページに表示されている設定のように "command": "npx" と "args": ["mcp-zotero"] を使います。

Claude Code

claude mcp add zotero \
  -e ZOTERO_API_KEY=YOUR_API_KEY \
  -e ZOTERO_USER_ID=YOUR_USER_ID \
  -- npx -y mcp-zotero

Cursor

同じ mcpServers ブロックを ~/.cursor/mcp.json(またはプロジェクト内の .cursor/mcp.json)に追加します。command と args には npx と mcp-zotero を指定し、env に両方の変数を入れます。

Zotero MCP Server の主な機能

  • 個人用 Zotero ライブラリのすべてのコレクションを key とともに一覧表示します。
  • コレクション内のアイテムを、タイトル、著者、日付、アイテムタイプ、要旨、タグ、DOI、URL、掲載誌名とともに返します。
  • key を指定して 1 件のアイテムの詳細(所属するコレクションを含む)を取得します。
  • プレーンテキストのクエリで、Zotero Web API を使ってライブラリ全体を検索します。
  • 最近追加した論文を追加日順に表示します(デフォルト 10 件、上限 100 件)。
  • コードは小規模:zotero-api-client と公式 MCP SDK を使った TypeScript ファイル 1 つで、stdio トランスポートを使用します。
  • npm で mcp-zotero として配布されており、リポジトリには Dockerfile と Smithery 設定もあります。

Zotero MCP Server のツール

このサーバーは読み取り専用の 5 つのツールを提供しており、2 つのグループに分かれます:

  • 閲覧:get_collections はコレクションとその key を一覧表示します。get_collection_items はコレクションの key を受け取り、その中のアイテムを返します。get_item_details はアイテムの key を受け取り、その論文の完全なメタデータを返します。
  • 検索:search_library は query を受け取り、ライブラリ全体を検索します。get_recent は最新の追加アイテムを返し、limit を任意で指定できます。

どのツールもアイテムの作成、編集、削除は行いません。Claude は文献を読んで要約できますが、このサーバー経由でライブラリを変更することはできません。

Zotero MCP Server のユースケース

  • 文献レビューの準備:「'Thesis – Chapter 2' コレクションの論文を一覧にして、研究手法ごとにまとめて。」
  • うろ覚えの文献を探す:「Zotero ライブラリから transformer の解釈可能性に関する論文を検索して、DOI を教えて。」
  • 引用情報をすばやく取得:「このアイテムの詳細を取得して、著者・年・ジャーナルを参考文献リスト用に整形して。」
  • 最近の読書を振り返る:「最近追加した論文 20 本を表示して、要旨を要約して。」
  • タグとトピックの概要:「'Climate policy' コレクションのアイテムで最も多く使われているタグは?」

Zotero MCP Server と代替ツールの比較

主な代替は 54yyyu の zotero-mcp です。これは別のコミュニティプロジェクトで、はるかに活発に開発されており、Python で書かれています(pip install zotero-mcp-server)。Web API に加えて Zotero 7 のローカル API(ZOTERO_LOCAL=true)でも接続でき、README にはセマンティック検索、PDF と注釈のサポート、Claude Desktop を自動設定する zotero-mcp setup などの機能が挙げられています。

API キーだけで閲覧と検索ができる、小さな読み取り専用の Node.js サーバーが欲しいなら kaliaboi の mcp-zotero server を選びましょう。クラウドのキーなしでローカルライブラリにアクセスしたい、全文検索やセマンティック検索、注釈を使いたい場合は 54yyyu の zotero-mcp server が向いています。どちらも Zotero の公式製品ではありません。

Zotero MCP Server のトラブルシューティング

  • サーバーが起動しない / 変数が見つからない:echo $ZOTERO_API_KEY と echo $ZOTERO_USER_ID で確認し、シェルだけでなくクライアントの env ブロックに両方が設定されているか確かめてください。
  • コマンドが見つからない:npm list -g mcp-zotero でグローバルインストールを確認します。壊れている場合は npm uninstall -g mcp-zotero の後に npm install -g mcp-zotero を実行するか、設定を npx に切り替えてください。
  • 結果が空になる:上記の curl .../collections チェックを実行してください。ユーザー ID の誤り(ユーザー名を入れている)、期限切れのキー、zotero.org に同期されていないライブラリは、いずれも結果が返らない原因になります。
  • 一部のアイテムやコレクションしか返らない:未解決の issue(#14)で、コレクションとコレクション内アイテムについて Zotero API の結果の最初のページ(約 25 件)しか返されないと報告されています。大規模なライブラリでは不完全に見えることがあります。
  • すべての呼び出しで "fetch failed" になる:未解決の issue(#18)で、HTTP(S) プロキシ経由でしかインターネットに接続できないネットワークではサーバーが失敗すると報告されています。

よくある質問

1

Zotero MCP Server は公式ですか?

いいえ。kaliaboi によるコミュニティプロジェクトで、MIT ライセンスで公開されています。Zotero 自体は MCP サーバーを提供していません。

2

Zotero MCP Server は無料ですか?

はい。サーバーはオープンソースで npm から無料で利用でき、Zotero アカウント設定で無料で作成できる API キーを使って Zotero Web API にアクセスします。

3

どの認証情報が必要ですか?

2 つの環境変数です。`ZOTERO_API_KEY`(zotero.org/settings/keys で作成)と `ZOTERO_USER_ID`(`https://api.zotero.org/keys/current` が返す数値の `userID`)です。

4

ローカルの Zotero デスクトップのライブラリで使えますか?

直接は使えません。Web API 経由で同期済みのクラウドライブラリを読み取るため、アイテムを zotero.org に同期しておく必要があります。ローカルでのアクセスが必要なら、上で紹介した 54yyyu の zotero-mcp を検討してください。

5

グループライブラリは読み取れますか?

コードは個人のユーザーライブラリのみを照会します。グループライブラリへの対応は未解決の機能リクエスト(#2)です。

6

Claude が Zotero のアイテムを編集・削除することはありますか?

いいえ。5 つのツールはすべて読み取り専用です。さらに、API キーを読み取り専用の権限で作成すれば、キーでできる操作を制限できます。

7

この zotero mcp server は Claude Code や Cursor で使えますか?

はい。標準的な stdio MCP サーバーなので、ローカル MCP サーバーを実行できるクライアントであれば、`npx mcp-zotero` と 2 つの環境変数で起動できます。README に記載されているのは Claude Desktop の設定ですが、上記の Claude Code と Cursor の設定も同じコマンドを使っています。

8

このプロジェクトはまだメンテナンスされていますか?

リポジトリはアーカイブされていませんが、最後のコードのプッシュは 2025 年 2 月で、ページネーション、プロキシ対応、グループライブラリなど複数の issue が未解決のままです。

コメント

「その他」の他のコンテンツ