From zotero-research
Find papers, books, and references in the user's Zotero library by topic, author, or title. Use this skill whenever the user wants to find, locate, or discover items in their research library. Triggers on: "find papers about X", "what do I have on X", "search my library", "which paper covers X", "do I have anything by [author]", "that paper about X", or any question that requires identifying which items in Zotero are relevant — even if the user doesn't say "Zotero" explicitly. Also triggers when the user asks a content question like "which paper explains how to do X" — that requires searching inside documents, not just metadata.
npx claudepluginhub philipnickel/zotero-research-pluginThis skill uses the workspace's default tool permissions.
Find and identify items in the user's Zotero library. This skill focuses on **discovery** — figuring out *which* papers/books are relevant. For deep reading, hand off to `zotero-read`. For comparing papers, hand off to `zotero-compare`.
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.
Find and identify items in the user's Zotero library. This skill focuses on discovery — figuring out which papers/books are relevant. For deep reading, hand off to zotero-read. For comparing papers, hand off to zotero-compare.
Before searching, determine the query type — this controls which search modes to use:
| Query type | Example | Search strategy |
|---|---|---|
| Author | "anything by Stomakhin" | Keyword titleCreatorYear (primary) + semantic (secondary) |
| Topic | "papers about p-multigrid" | Semantic (primary) + keyword everything (secondary) |
| Specific item | "the Hesthaven book" | Keyword titleCreatorYear only — fast and precise |
| Content | "which paper explains X" | Keyword everything (primary) + semantic (secondary) |
Don't always list all collections. Instead:
zotero_search_collections to find matching collections directly:
mcp__zotero__zotero_search_collections(query="multigrid")
Skip scoping entirely when:
Run the appropriate searches in parallel as tool calls (not subagents — tool calls are faster):
# Run these two in parallel:
mcp__zotero__zotero_semantic_search(query="<natural language query>", limit=10)
mcp__zotero__zotero_search_items(query="<key technical terms>", qmode="everything", limit=10)
# Run these two in parallel:
mcp__zotero__zotero_search_items(query="<Lastname>", qmode="titleCreatorYear", limit=10)
mcp__zotero__zotero_semantic_search(query="<Lastname topic>", limit=10)
# Single search is enough:
mcp__zotero__zotero_search_items(query="<title fragment or author>", qmode="titleCreatorYear", limit=5)
Use advanced_search for precision:
mcp__zotero__zotero_advanced_search(conditions=[
{"field": "creator", "operator": "contains", "value": "Stomakhin"},
{"field": "date", "operator": "is", "value": "2013"}
], join_mode="all", limit=10)
qmode="everything" with different term combinationsCombine results from all searches:
Deduplicate by item key. Filter out attachment items (type: "attachment").
If the two search modes returned completely different results with zero overlap, note this — it means the topic uses different vocabulary across papers. Keyword-only hits are likely the most directly relevant.
Show a scannable list — no workflow documentation, just results:
Found 3 items:
Melander et al. (2024) — A p-Multigrid Accelerated Nodal SEM... [preprint] Match: keyword + semantic | Collection: Multigrid Methods
Zhang et al. (2010) — Chebyshev pseudospectral multigrid... [paper] Match: keyword only
Ghia et al. (1982) — High-Re solutions... [paper] Match: semantic only (uses h-multigrid, not p-multigrid)
Keep it short. Include author, year, title, match mode, and one-line context only when it adds value (e.g., clarifying why a semantic-only hit is tangential).
Do not extract PDF content — that's zotero-read's job.
| Tool | Purpose |
|---|---|
zotero_search_collections | Find collection by name (for smart scoping) |
zotero_get_collections | List all collections (fallback) |
zotero_get_collection_items | Browse items in a collection |
zotero_semantic_search | AI-powered conceptual search |
zotero_search_items | Keyword search (title/author/year or full-text) |
zotero_advanced_search | Multi-criteria structured search |
zotero_get_item_metadata | Get metadata, abstract, BibTeX |