zotero-paper-reader について
zotero-paper-reader は、Zotero ライブラリから論文を探し、PDF を取得して Markdown に変換し、指定箇所を読むスキルです。ローカルとウェブのライブラリに対応し、Zotero MCP ツールで検索や添付ファイル情報の取得を行います。
主な機能
- 01タイトル、著者、キーワードで検索
- 02PDF 添付ファイル情報の取得
- 03ローカル PDF の検索またはダウンロード
- 04PDF から Markdown への変換
- 05論文の指定箇所の読解と分析
活用シーン
- 01Zotero ライブラリで論文を検索
- 02PDF 形式の論文を読む
- 03Zotero の論文を Markdown に変換
- 04長い論文から関連箇所を探す
MCP 対応
Zotero MCP ツールでライブラリ項目を検索し、添付ファイル情報を取得します。その後、付属スクリプトで PDF を取得し、mistral-pdf-to-markdown スキルで変換します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fuzhiyu/ researchprojecttemplate --skill zotero-paper-readerインストール後、Claude Code で/zotero-paper-readerを入力して読み込まれたか確認します。
同梱ファイルscripts/get_zotero_pdf.py
詳細
Zotero 論文リーダー
概要
Zotero ライブラリから学術論文を直接読み、分析します。このスキルでは、Zotero での検索から PDF を読みやすい Markdown 形式に変換するまでのワークフロー全体を処理します。
使用する場面
ユーザーから次のような依頼があった場合に、このスキルを使用します。
- 「Zotero からこの論文を読んで」
- 「[paper title] を見つけて読んで」
- 「[author name] の論文にアクセスして」
- 「[topic] に関する論文を取得して」
- 「Zotero の [paper] を Markdown に変換して」
ワークフロー
ステップ 1:Zotero ライブラリを検索する
Zotero MCP ツールを使って論文を検索します。
# Search by title, author, or keywords
mcp__zotero__zotero_search_items(query="paper title or author", limit=5)
複数の論文が見つかった場合は、検索結果をユーザーに提示します。選択された論文から item_key を取得します。
ステップ 2:PDF 添付ファイルを取得する
PDF 添付ファイルの情報を取得します。
# Get child items (attachments) for the paper
mcp__zotero__zotero_get_item_children(item_key="ITEM_KEY")
type: application/pdf の添付ファイルを探し、その Key(添付ファイルのキー)と Filename を控えます。
ステップ 3:PDF ファイルを取得する(ローカルまたはダウンロード)
付属のスクリプトを使用して PDF を取得します。まずローカルストレージを確認し、必要に応じてダウンロードします。
uv run python .claude/skills/zotero-paper-reader/scripts/get_zotero_pdf.py ATTACHMENT_KEY
スクリプトのワークフロー:
- まず Zotero のローカルストレージ(
~/Zotero/storage/ATTACHMENT_KEY/)を検索します - ローカルに見つかった場合は、そのパスを返します
- ローカルに見つからない場合は、API を使って Zotero のウェブライブラリからダウンロードします
- Zotero のメタデータから元のファイル名を取得し、
/tmp/[original_filename]にダウンロードします
セキュリティに関する注意: Zotero API キーとライブラリの設定は、Python スクリプトが Notes/.env から直接読み込み、LLM に公開されることはありません。必要な環境変数:ZOTERO_API_KEY、ZOTERO_LIBRARY_TYPE、ZOTERO_LIBRARY_ID。
ステップ 4:Markdown に変換する
mistral-pdf-to-markdown スキルを使って PDF を変換します。
uv run python .claude/skills/mistral-pdf-to-markdown/scripts/convert_pdf_to_markdown.py \
"PATH_TO_PDF" \
"Notes/PaperInMarkdown/CLEAN_FILENAME.md"
ファイル名の規則: 論文のメタデータから、わかりやすいファイル名を作成します。
- 形式:
Author_Year_Title.md - 例:
Du_et_al_2023_Are_Intermediary_Constraints_Priced.md - スペースをアンダースコアに置き換え、特殊文字を削除します
ステップ 5:読み、分析する
変換した Markdown ファイルを読み込みます。
# For large papers, read in sections
Read(file_path="Notes/PaperInMarkdown/FILENAME.md", offset=1, limit=500)
学術論文は大容量(>25k tokens)であることが多いため、効率的に読み進めます。
- 要約と序論(最初の 300~500 行)から読み始めます
- 必要に応じて Grep を使い、特定のセクションを検索します
- ユーザーの関心に応じて、該当するセクションを読みます
ユーザーには次の内容を提示します。
- 論文のメタデータ(タイトル、著者、出版年)
- 要約の簡潔なまとめ
- 主な調査結果または関心のあるセクション
- 特定のセクションを読んだり、特定の内容を検索したりできることを案内します
使用例
ユーザーの依頼: 「Zotero ライブラリから『Are Intermediary Constraints Priced』を読んで」
ワークフロー:
- 検索:
mcp__zotero__zotero_search_items(query="Are Intermediary Constraints Priced") - 添付ファイルを取得:
mcp__zotero__zotero_get_item_children(item_key="KPRQ2DLZ") - PDF を取得:
uv run python .claude/skills/zotero-paper-reader/scripts/get_zotero_pdf.py 2HSELEHX- 利用可能な場合はローカルパスを返し、そうでない場合はダウンロードして一時パスを返します
- 変換:
uv run python .claude/skills/mistral-pdf-to-markdown/scripts/convert_pdf_to_markdown.py [PDF_PATH] Notes/PaperInMarkdown/Du_et_al_2023_Are_Intermediary_Constraints_Priced.md - 読み込み:
Read(file_path="Notes/PaperInMarkdown/Du_et_al_2023_Are_Intermediary_Constraints_Priced.md", limit=500) - 要約し、特定のセクションについてさらに詳しく確認することを提案します
メモ
- このスキルはローカルとウェブの両方の Zotero ライブラリに対応しています
- ウェブライブラリを使用するには、
Notes/.envにZOTERO_API_KEY、ZOTERO_LIBRARY_TYPE、ZOTERO_LIBRARY_IDが必要です - ローカルライブラリを使用するには、Zotero の設定でローカル API を有効にする必要があります
- PDF 変換には
Notes/.envの Mistral API キーが必要です - 変換後の Markdown ファイルには、抽出した画像が
images/サブフォルダーに含まれます - 大容量の論文(>40k tokens)は、コンテキストの制限を避けるためにセクションごとに読む必要があります
リソース
scripts/
get_zotero_pdf.py- まずローカルストレージを確認し、必要に応じてウェブ API からダウンロードする統合スクリプト