# MCPサーバー セットアップガイド Claude Scholarは拡張機能のためにMCP(Model Context Protocol)サーバーを利用します。MCPサーバーはこのリポジトリには**含まれていません** — ユーザーが個別にインストールおよび設定する必要があります。 ## 必須MCPサーバー ### 1. Zotero MCP(研究ワークフロー) **使用先**: `literature-reviewer`エージェント、`/research-init`、`/zotero-review`、`/zotero-notes`コマンド **パッケージ**: [Galaxy-Dawn/zotero-mcp](https://github.com/Galaxy-Dawn/zotero-mcp) — ローカルZoteroデスクトップとWeb APIモードを自動検出。Web認証情報はリモートアクセスまたは書き込みツールの場合にのみ必要。 #### 機能 | カテゴリ | ツール | |---------|-------| | **インポート** | `zotero_add_items_by_doi`, `zotero_add_items_by_arxiv`, `zotero_add_item_by_url` | | **読み取り** | `zotero_get_collections`, `zotero_get_collection_items`, `zotero_search_items`, `zotero_semantic_search` | | **更新** | `zotero_update_item`, `zotero_update_note`, `zotero_create_collection`, `zotero_move_items_to_collection` | | **削除** | `zotero_delete_items`(ゴミ箱へ移動), `zotero_delete_collection` | | **PDF** | `zotero_find_and_attach_pdfs`(Unpaywall経由), `zotero_add_linked_url_attachment` | #### 前提条件 1. Web API認証情報なしでローカル読み取り専用アクセスを行う場合は[Zotero](https://www.zotero.org/)をインストール 2. 書き込みツールまたはリモートWeb APIアクセスの場合は、[Zotero設定 -> セキュリティ -> アプリケーション](https://www.zotero.org/settings/security#applications)を開く 3. `Create new private key`をクリックしてAPIキーを生成 4. 同じページでボタンの下に表示される`User ID`をコピー。個人ライブラリの場合、この数値を`ZOTERO_LIBRARY_ID`として使用 #### インストール ```bash # uv経由でインストール(推奨) uv tool install git+https://github.com/Galaxy-Dawn/zotero-mcp.git ``` #### 設定 以下からプラットフォームを選択してください: ##### Claude Code Claude Code v2.1.5以降の場合、`~/.claude.json`の`mcpServers`に追加。 それ以前のバージョンの場合、`~/.claude/settings.json`の`mcpServers`に追加: ```json { "mcpServers": { "zotero": { "command": "zotero-mcp", "args": ["serve"], "env": { "ZOTERO_API_KEY": "your-api-key", "ZOTERO_LIBRARY_ID": "your-user-id", "ZOTERO_LIBRARY_TYPE": "user", "UNPAYWALL_EMAIL": "your-email@example.com", "UNSAFE_OPERATIONS": "all" } } } } ``` ##### Codex CLI `~/.codex/config.toml`に追加: ```toml [mcp_servers.zotero] command = "zotero-mcp" args = ["serve"] enabled = true [mcp_servers.zotero.env] ZOTERO_API_KEY = "your-api-key" ZOTERO_LIBRARY_ID = "your-user-id" ZOTERO_LIBRARY_TYPE = "user" UNPAYWALL_EMAIL = "your-email@example.com" UNSAFE_OPERATIONS = "all" NO_PROXY = "localhost,127.0.0.1" ``` ##### OpenCode `~/.opencode/opencode.jsonc`に追加: ```jsonc { "mcp": { "zotero": { "type": "local", "command": ["zotero-mcp", "serve"], "enabled": true } } } ``` 次に`~/.zshrc`で環境変数を設定: ```bash # Zotero MCP export ZOTERO_API_KEY="your-api-key" export ZOTERO_LIBRARY_ID="your-user-id" export ZOTERO_LIBRARY_TYPE="user" export UNPAYWALL_EMAIL="your-email@example.com" export UNSAFE_OPERATIONS="all" ``` #### 環境変数 | 変数 | 必須 | 説明 | |------|-----|------| | `ZOTERO_API_KEY` | ローカル読み取り専用: 不要、Web/書き込みツール: 必要 | Zotero APIキー | | `ZOTERO_LIBRARY_ID` | ローカル読み取り専用: 不要、Web/書き込みツール: 必要 | 個人ライブラリ用のZotero `User ID`(数値) | | `ZOTERO_LIBRARY_TYPE` | 必要 | `user`または`group` | | `UNPAYWALL_EMAIL` | 不要 | Unpaywall PDF検索用メールアドレス | | `UNSAFE_OPERATIONS` | 不要 | `items`(delete_items)、`all`(delete_collection) | | `NO_PROXY` | 不要 | localhostのプロキシをバイパス | 注意: - 最小限のローカルセットアップは`command = "zotero-mcp"`と`args = ["serve"]`のみです。 - 本番設定に`your-api-key`、`your-user-id`、`your-email@example.com`などのプレースホルダー値を残さないでください。 #### 利用可能なツール | ツール | 用途 | |-------|------| | `zotero_get_collections` | 全コレクションを一覧表示 | | `zotero_get_collection_items` | コレクション内のアイテムを取得 | | `zotero_search_items` | キーワードでライブラリを検索 | | `zotero_search_by_tag` | タグで検索 | | `zotero_get_item_metadata` | アイテムのメタデータとアブストラクトを取得 | | `zotero_get_item_fulltext` | PDFフルテキストを読解 | | `zotero_get_annotations` | PDFアノテーションを取得 | | `zotero_get_notes` | ノートを取得 | | `zotero_semantic_search` | セマンティック検索(埋め込みを使用) | | `zotero_advanced_search` | 高度な検索 | | `zotero_add_items_by_doi` | DOIで論文をインポート | | `zotero_add_items_by_arxiv` | arXiv IDでプレプリントをインポート | | `zotero_add_item_by_url` | Webページをアイテムとして保存 | | `zotero_update_item` | アイテムのフィールドを更新 | | `zotero_update_note` | ノートの内容を更新 | | `zotero_create_collection` | コレクションを作成 | | `zotero_move_items_to_collection` | コレクション間でアイテムを移動 | | `zotero_update_collection` | コレクション名を変更 | | `zotero_delete_collection` | コレクションを削除 | | `zotero_delete_items` | アイテムをゴミ箱に移動 | | `zotero_find_and_attach_pdfs` | OA PDFを検索して添付 | | `zotero_add_linked_url_attachment` | リンクURL添付ファイルを追加 | ### 2. ブラウザオートメーションMCP(任意) 用途: Chromeブラウザ制御、Webページインタラクション。 #### 設定 ```json { "mcpServers": { "streamable-mcp-server": { "type": "streamable-http", "url": "http://127.0.0.1:12306/mcp" } } } ``` ## 検証 設定後、CLIを再起動してMCPサーバーの接続を確認: ``` # Zoteroの例: > List my Zotero collections ``` ツールがデータ(例: コレクション)を返せば、セットアップは完了です。 ## トラブルシューティング | 問題 | 解決方法 | |------|---------| | ツールがエラーを返す | APIキーとライブラリIDが正しいか確認 | | PDF添付が失敗する | `UNPAYWALL_EMAIL`が設定されているか確認 | | 削除操作がブロックされる | `UNSAFE_OPERATIONS=items`または`all`を設定 | | HTTPエラー | `NO_PROXY`にlocalhostが含まれているか確認 | | APIレート制限(429) | 一度に10件以下の論文をバッチ処理し、バッチ間に遅延を追加 |