From zotero-research
Read and extract content from a specific paper or book in the user's Zotero library. Use this skill when the user wants to know what a specific item says about a topic, needs content from particular sections/pages, or asks questions that require reading the actual document. Triggers on: "what does [paper] say about X", "read chapter 3", "find the section on X in [book]", "extract the equation for X", "summarize [paper]", or any request that requires extracting content from a known Zotero item. This skill assumes the item is already identified — if the user hasn't specified which paper/book, use zotero-find first.
npx claudepluginhub philipnickel/zotero-research-pluginThis skill uses the workspace's default tool permissions.
Extract and present content from a specific item in the user's Zotero library. This skill is about **reading** — getting precise content with page/section references.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Extract and present content from a specific item in the user's Zotero library. This skill is about reading — getting precise content with page/section references.
zot CLI: Required for targeted page extraction. Install with uv tool install zotero-cli-cc.The user should have already identified which item (via zotero-find or by naming it). If not clear, ask.
Resolve to an item key:
mcp__zotero__zotero_search_items(query="Hesthaven Warburton", limit=3)
Always get these before reading content — they tell you where to look:
# Run all three in parallel:
mcp__zotero__zotero_get_item_metadata(item_key="<KEY>")
mcp__zotero__zotero_get_pdf_outline(item_key="<KEY>")
mcp__zotero__zotero_get_annotations(item_key="<KEY>")
Why annotations first: if the user has highlighted relevant passages, those are the fastest path to the answer — no page scanning needed.
The outline gives PDF page numbers (may differ from printed page numbers). Use PDF page numbers with zot pdf --pages.
Use fulltext — fast and gets everything:
mcp__zotero__zotero_get_item_fulltext(item_key="<KEY>")
Scan the entire outline for sections relevant to the user's question. A topic may appear in multiple chapters (e.g., boundary conditions in Chapter 6 for hyperbolic AND Chapter 7 for elliptic problems).
Prioritize and limit: Pick the top 3-4 most relevant sections (max ~30 pages total). Extract these first:
zot pdf <KEY> --pages 207-215
If multiple sections are relevant, extract them in parallel using multiple tool calls (not subagents).
Present these results to the user first. If the user wants more depth, they can ask — then extract additional sections. This two-phase approach avoids burning 100k+ tokens on content the user may not need.
If the user says "tell me more" or "what about section X", extract additional page ranges. The outline and Phase 1 results inform where to look next.
The user must always distinguish between what the document says and your interpretation. Mixing these can present hallucinated content as real.
1. Direct quote — blockquote with exact page reference:
"The exponential filter is applied in the modal space, damping the highest-order modes..." — Hesthaven & Warburton (2008), Section 6.1, p. 134
2. Your summary — clearly labeled:
Summary: The authors use modal filtering to stabilize aliasing-driven instabilities. The filter transfer function (Eq. 6.3, p. 134) controls which modes are damped.
(Author Year, Section X.Y, p. N) for single pages(Author Year, Section X.Y, pp. N-M) for rangesmcp__zotero__zotero_get_item_metadata(item_key="<KEY>", format="bibtex")
Or: zot export <KEY> / zot export <KEY> --format csl-json
| Tool | Purpose |
|---|---|
zotero_search_items | Resolve title/author to item key |
zotero_search_by_citation_key | Resolve citekey to item key |
zotero_get_item_metadata | Metadata, abstract, BibTeX |
zotero_get_pdf_outline | Table of contents with page numbers |
zotero_get_item_fulltext | Full text (short papers only) |
zotero_get_annotations | User's highlights and notes |
zot pdf <KEY> --pages X-Y | Extract specific pages (large docs) |
zot export <KEY> | Export BibTeX/CSL-JSON/RIS |
zot pdf caches extracted text locally — repeated reads are instant.