zotero-mcp
Interface with Zotero's MCP server to search and retrieve bibliographic data using advanced semantic search and multi-strategy approaches. Designed for output as a plain markdown formatted outline, suitable for pasting into Logseq. Also offers side-by-side translation of Chinese titles and abstracts for improved English language search within Logseq. Context-aware - uses agents in Claude Code, batched searches in Claude Desktop.
Best use case
zotero-mcp is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Interface with Zotero's MCP server to search and retrieve bibliographic data using advanced semantic search and multi-strategy approaches. Designed for output as a plain markdown formatted outline, suitable for pasting into Logseq. Also offers side-by-side translation of Chinese titles and abstracts for improved English language search within Logseq. Context-aware - uses agents in Claude Code, batched searches in Claude Desktop.
Teams using zotero-mcp should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/zotero-mcp/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How zotero-mcp Compares
| Feature / Agent | zotero-mcp | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Interface with Zotero's MCP server to search and retrieve bibliographic data using advanced semantic search and multi-strategy approaches. Designed for output as a plain markdown formatted outline, suitable for pasting into Logseq. Also offers side-by-side translation of Chinese titles and abstracts for improved English language search within Logseq. Context-aware - uses agents in Claude Code, batched searches in Claude Desktop.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Zotero MCP Search Skill
Interface with Zotero's MCP server to search and retrieve bibliographic data using advanced semantic search and multi-strategy approaches.
**Designed for plain markdown outline output:** This skill generates bibliographies formatted as plain markdown outlines suitable for pasting into Logseq with:
- Outline hierarchy (nested bullets, no markdown headers)
- Compact citation format (Author, Year. Title)
- Side-by-side Chinese-English translations for improved English language search
- Plain text (no bold styling)
- Zotero item links
**Context-Aware Skill:** This skill automatically adapts its strategy based on the environment:
- **Claude Code:** Uses autonomous agents for comprehensive multi-step searches
- **Claude Desktop:** Uses batched manual searches with safety limits
## Core Philosophy
**Search comprehensively, not narrowly.** Never settle for a single search attempt. Always:
- Use semantic search for conceptual discovery
- Try multiple search angles and variations
- Combine different search methods
- Iteratively refine based on results
- Ask clarifying questions when needed
- Format bibliographies for Logseq with proper outline structure
## Environment Detection
**Detect which environment you're running in:**
- **Claude Code:** Agents available (Task tool), no conversation crash risk
- **Claude Desktop:** No agents, conversation deletion risk with large responses
**How to tell:** Check if Task tool is available in your tool list.
---
# PART 1: Claude Desktop Strategy
## ⚠️ CRITICAL: Avoiding Claude Desktop Crashes ⚠️
**KNOWN BUG**: Claude Desktop has a critical bug where large MCP responses cause request timeouts that DELETE the entire conversation without warning or recovery.
### Safe Search Strategy: Batched Iteration
To get comprehensive results safely, use **iterative batched searches**:
**✅ SAFE: Multiple small searches**
- Each search limited to 10-15 results maximum
- Multiple searches with different angles/filters
- Combine results across searches
**❌ UNSAFE: Single large search**
- limit=50 or higher in one call
- Risks conversation deletion
- No recovery possible
### Recommended Approaches for Claude Desktop
#### Approach 1: Multi-Angle Coverage (Preferred)
Instead of one search with limit=50, do **5 searches** with different angles:
```
1. Semantic search: "main concept" (limit=10)
2. Semantic search: "related concept variation" (limit=10)
3. Keyword search: "specific terms" (limit=10)
4. Tag-based search: relevant tags (limit=10)
5. Notes/annotations search: "concept" (limit=10)
```
This gives ~50 results from different perspectives, safer than one large call.
#### Approach 2: Iterative Interactive
For user-guided exploration:
```
1. First batch: limit=10
2. Present results
3. Ask: "Would you like more results, or shall I search from a different angle?"
4. Next batch based on user feedback
```
### Default Limits for Claude Desktop
**Always use these safe defaults:**
- `limit=10` for initial searches
- `limit=15` if user explicitly needs more
- **Never exceed limit=20** in a single call
- For comprehensive results: use multiple searches, not larger limits
---
# PART 2: Claude Code Strategy
## Agent-First Approach
**When running in Claude Code, use autonomous agents** for comprehensive searches.
### When to Use Agents (Claude Code Only)
Use agents when:
- User needs comprehensive literature searches
- User asks exploratory questions ("What do I have about...")
- User needs multi-angle search coverage
- User wants thorough, curated results
- User's query is conceptual or thematic
Don't use agents when:
- User asks for a single specific paper by exact title
- User just wants to see recent additions
- User is browsing collections interactively
### Agent Task Patterns
#### Pattern 1: Comprehensive Topic Search
**User request:** "Find me papers about [topic]"
**Agent task:**
```
Search my Zotero library comprehensively for papers about [topic].
Use multiple search strategies autonomously:
1. SEMANTIC SEARCHES (5-6 variations)
- Try natural language phrasings
- Try different conceptual angles
- Use synonyms and related terms
- No limit restrictions - get comprehensive results
2. KEYWORD SEARCHES (3-4 variations)
- Try exact terms and variations
- Try broader/narrower terms
- Try related methodology terms
3. TAG-BASED SEARCHES
- First use zotero_get_tags to discover relevant tags
- Then search by multiple relevant tags
- Try tag combinations
4. FULL-TEXT & ANNOTATIONS
- Use zotero_search_notes for the concept
- Use zotero_get_annotations to find highlights
- Search for related concepts in notes
5. SYNTHESIS
- Combine all results and deduplicate
- Identify the 20-30 most relevant papers
- Group by theme/approach if applicable
- Provide brief relevance explanations
Return a curated list with:
- Paper metadata (title, authors, year)
- Why each paper is relevant
- Thematic groupings if applicable
- Coverage note (which strategies found what)
```
#### Pattern 2: Author-Focused Search
**User request:** "What do I have by/about [author]?"
**Agent task:**
```
Find all items related to [author] in my Zotero library.
Search comprehensively:
1. DIRECT AUTHORSHIP
- zotero_search_items with author="[author]"
- zotero_advanced_search with author field
2. CITATIONS & MENTIONS
- zotero_search_notes: "[author]" (cited in my notes)
- zotero_get_annotations: "[author]" (mentioned in highlights)
- zotero_semantic_search: "[author]'s main concepts/theories"
3. RELATED WORK
- Search for concepts/theories associated with this author
- Search for methodologies they use
- Search for co-authors
4. SYNTHESIS
- Organize by: (1) authored by, (2) cited in my notes, (3) related concepts
- Include temporal overview if relevant
- Note any thematic clusters
Return organized results with context about how each item relates to [author].
```
#### Pattern 3: Concept in Context
**User request:** "Research about X in context Y"
**Agent task:**
```
Find papers about [X] in the context of [Y].
Multi-angle search strategy:
1. COMBINED SEARCHES
- Semantic: "X in Y" + variations
- Semantic: "Y approaches to X"
- Advanced: keyword=X AND keyword=Y
- Advanced: keyword=X AND keyword=[Y synonyms]
2. SEPARATE THEN CROSS-REFERENCE
- Find strong X papers
- Find strong Y papers
- Identify overlap and connections
- Check if X papers mention Y in fulltext
- Check if Y papers mention X in fulltext
3. TAG ANALYSIS
- Get tags related to X
- Get tags related to Y
- Search items tagged with both domains
- Find bridging concepts in tags
4. ANNOTATION MINING
- Search notes for X+Y together
- Search notes for X and Y separately
- Check if you've annotated connections
5. SYNTHESIS
- Papers directly about X in Y context
- Papers about X that discuss Y
- Papers about Y that discuss X
- Papers that bridge both (even if not explicit)
Return results grouped by relevance strength and connection type.
```
#### Pattern 4: Exploratory Discovery
**User request:** "What's related to X?" or "Explore my library for X"
**Agent task:**
```
Explore my Zotero library to discover all material related to [X].
Comprehensive discovery approach:
1. DIRECT SEARCHES (Cast wide net)
- Semantic search: multiple phrasings of X
- Keyword search: X and synonyms
- Tag search: X-related tags
- Notes/annotations: X mentions
2. EXPANSION PHASE
- Analyze top results to identify:
* Related concepts and theories
* Related methodologies
* Related application domains
* Related authors
- Search for each of these expansions
3. DEEP EXPLORATION
- For promising papers, check fulltext for related concepts
- Look at tags on promising papers, search those tags
- Check annotations for related ideas
- Look for cited works mentioned in your notes
4. THEMATIC CLUSTERING
- Group all findings by themes/approaches
- Identify conceptual clusters
- Note connections between clusters
- Highlight surprising/unexpected connections
5. SYNTHESIS
- Core papers directly about X
- Related theoretical frameworks
- Methodological connections
- Application domains
- Surprising/tangential connections worth noting
Return a thematic map of your library's coverage of this topic.
```
### How to Launch Agents (Claude Code Only)
Use the Task tool with `subagent_type="general-purpose"`:
```
Task(
description="Comprehensive Zotero search for X",
subagent_type="general-purpose",
prompt="[Use one of the task patterns above]"
)
```
---
# PART 3: Universal Search Strategy
## Multi-Method Search Approach
**ALWAYS use multiple search methods in combination** (in both environments):
### A. Semantic Search (Primary for Conceptual Discovery)
- Use `zotero_semantic_search` for conceptual, thematic, or exploratory queries
- Try multiple phrasings of the same concept
- Use natural language descriptions, not just keywords
- Example variations:
- "theories of embodied cognition"
- "how body influences thought and reasoning"
- "physical experience shapes cognitive processes"
- **Claude Desktop:** limit=10
- **Claude Code (agents):** no limit restriction
### B. Keyword Search (Complementary)
- Use `zotero_search_items` with multiple keyword variations
- Try synonyms, related terms, broader/narrower terms
- Use different word forms (singular/plural, verb/noun)
- Example variations for "reading comprehension":
- "reading comprehension"
- "text understanding"
- "literacy"
- "comprehension strategies"
### C. Advanced Search (Targeted)
- Use `zotero_advanced_search` for precise criteria
- Combine multiple fields (author + keyword, year + tag)
- Use for filtering after broader searches
### D. Tag & Collection Filtering
- Use `zotero_get_tags` to discover relevant tags
- Use `zotero_search_by_tag` with multiple tag variations
- Use `zotero_get_collections` and `zotero_get_collection_items` for organized searches
### E. Full-Text & Annotations
- Use `zotero_search_notes` to search annotations and highlights
- Use `zotero_get_item_fulltext` for content not in metadata
- Critical for finding concepts mentioned in text but not in titles/abstracts
## Common Search Patterns
### Pattern: "Find me papers about X"
**Claude Desktop:**
```
1. zotero_semantic_search: "X" (limit=10)
2. zotero_semantic_search: "X alternative phrasing" (limit=10)
3. zotero_search_items: keyword variations of X (limit=10)
4. zotero_get_tags: look for X-related tags
5. zotero_search_by_tag: if relevant tags found (limit=10)
6. zotero_search_notes: "X" (limit=10)
Result: ~50+ results safely retrieved
```
**Claude Code:**
```
Launch agent with Task tool (Pattern 1)
Agent performs comprehensive multi-strategy search
Returns curated results with synthesis
```
### Pattern: "What do I have on [author]?"
**Claude Desktop:**
```
1. zotero_search_items: author="[Author]" (limit=10)
2. zotero_advanced_search: author + recent years (limit=10)
3. zotero_search_notes: "[Author]" (limit=10)
4. zotero_semantic_search: "[Author]'s main concepts" (limit=10)
```
**Claude Code:**
```
Launch agent with Task tool (Pattern 2)
```
## Search Failure Recovery
If initial searches yield poor results:
1. **Ask clarifying questions:**
- "Are you looking for theoretical or empirical work?"
- "Any specific time period or authors?"
- "Is this about methodology, findings, or theory?"
2. **Broaden search:**
- Use more general terms
- Remove filters
- Try related fields/disciplines
3. **Check search database status:**
- Use `zotero_get_search_database_status`
- Suggest `zotero_update_search_database` if outdated
4. **Try alternative angles:**
- If searching for method, search for problems it solves
- If searching for theory, search for phenomena it explains
- If searching for author, search for concepts they study
---
# PART 4: Bibliography Output Formatting
When the user requests a bibliography or formatted output of search results:
## Logseq Formatting Standards
**ALWAYS use outline hierarchy (nested bullet points), NEVER use markdown headers (`#`):**
**NO BOLD STYLING - use plain text for all content**
**Compact citation format:**
```
- Main Topic - Bibliography
- A. Category Name
- Author(s), Year. Title (English Translation if applicable)
- Type: Article Type
- Journal: Journal Name, Volume X, Issue Y, Pages Z
- Zotero: [zotero://select/library/items/ITEM_KEY](zotero://select/library/items/ITEM_KEY)
- DOI: [if available]
- Abstract (Chinese): [if applicable]
- Abstract (English): [translation or original]
```
**Format rules:**
- First line: Author(s), Year. Title (English Translation)
- For Chinese authors: 黃美金 (Huang Mei-Jin)
- For multiple authors: separate with semicolons
- For no date: use "n.d."
- For no author: use institutional name or "N/A"
## Translation Requirements
1. **Chinese Abstracts:**
- Always provide BOTH Chinese original and English translation
- Label clearly as `Abstract (Chinese):` and `Abstract (English):`
- Translate comprehensively, not just summaries
2. **Chinese Titles:**
- Provide English translation in parentheses after Chinese title
- Format: `中文標題 (English Translation)`
- If English title exists in metadata, use that; otherwise translate
3. **Author Names:**
- Include both Chinese characters and romanization when available
- Format: `黃美金 (Huang Mei-Jin)`
## Required Metadata Fields
Each bibliography entry must include (when available):
- Title (with translations as needed)
- Authors (with Chinese/romanization)
- Date (YYYY-MM-DD or YYYY)
- Type (Journal Article, Book Chapter, Thesis, etc.)
- Journal/Publication (with volume, issue, pages)
- Zotero link (format: `zotero://select/library/items/ITEM_KEY`)
- Abstract (Chinese and/or English as applicable)
- DOI (if available)
## What NOT to Include
- ❌ **No summary sections** at the end of bibliographies (no totals, no "organized by themes" recap)
- ❌ **No markdown headers** (`#`, `##`, etc.) - use nested bullets only
- ❌ **No bold styling** (`**text**`) - use plain text throughout
- ❌ **No item counts** or statistics sections at the end
## Bibliography Structure Example
```
- Indigenous Language Proficiency Certification (原住民族語言能力認證) - Bibliography
- A. Core Certification Papers
- 黃美金 (Huang Mei-Jin), 2003. 原住民族語言能力認證:回顧與展望 (Indigenous Language Proficiency Certification: Review and Prospects)
- Type: Journal Article
- Journal: 原住民教育季刊, Issue 9, Pages 5-27
- Zotero: [zotero://select/library/items/W44VF3CG](zotero://select/library/items/W44VF3CG)
- Abstract (Chinese): [full Chinese abstract]
- Abstract (English): [full English translation]
- B. Policy & Historical Context
- [next paper...]
```
## File Handling
When creating bibliographies:
1. Save to `/Users/niyaro/Desktop/` with descriptive filename
2. Use `.md` extension
3. Open in BBEdit automatically (use `bbedit` command)
4. Confirm file creation and location to user
---
# PART 5: Tool Quick Reference
| Tool | Primary Use | Claude Desktop Limit | Claude Code (Agent) |
|------|-------------|---------------------|---------------------|
| `zotero_semantic_search` | Conceptual discovery | limit=10 | No limit, use liberally |
| `zotero_search_items` | Keyword matching | limit=10 | No limit |
| `zotero_advanced_search` | Precise filtering | limit=10 | No limit |
| `zotero_get_tags` | Discover tags | No limit needed | No limit needed |
| `zotero_search_by_tag` | Tag filtering | limit=10 | No limit |
| `zotero_search_notes` | Annotation search | limit=10 | No limit |
| `zotero_get_annotations` | Highlight retrieval | limit=10 | No limit |
| `zotero_get_item_fulltext` | Full-text access | N/A (single item) | N/A (single item) |
| `zotero_get_collections` | Collection discovery | No limit needed | No limit needed |
| `zotero_get_recent` | Recent additions | limit=10 | No limit |
| `zotero_update_search_database` | Update index | N/A | N/A |
---
# Critical Reminders
## For Both Environments
- **Never use just one search method**
- **Never try just one search term variation**
- **Always check tags before searching**
- **Always search both metadata and full-text/annotations**
- **Always explain your search path**
- **Always refine based on initial results**
## Claude Desktop Specific
- **🚨 SAFETY: Always use limit=10 (max 15-20) to prevent conversation deletion**
- **🚨 SAFETY: For comprehensive results, use multiple searches or agents, NOT large limits**
## Claude Code Specific
- **Default to agents** for non-trivial searches
- **Be comprehensive** - no crash limits
- **Let agents explore** - they can handle complexity autonomously
- **Synthesize results** - raw lists are not enough
## Bibliography Formatting
- **Format for Logseq** - use outline hierarchy, not headers; NO bold styling
- **Compact citation format** - Author(s), Year. Title on first line
- **Translate Chinese content** - provide both original and English versions
---
**Remember: This skill adapts to your environment. In Claude Code, leverage agents for comprehensive autonomous searches. In Claude Desktop, use careful batched searches with safety limits.**Related Skills
zotero-search
Search the user's local Zotero library, find related papers via Semantic Scholar, and discover citations/references. **Claude Code only** - this skill requires a local Zotero instance and access to a port on localhost. Use when the user asks to search their Zotero library, find papers on a topic, explore citations of a paper, or find related literature. Supports cross-referencing Semantic Scholar results against the local library.
zotero-mcp-code
Search Zotero library using code execution for efficient multi-strategy searches without crash risks. Use this skill when the user needs comprehensive Zotero searches with automatic deduplication and ranking.
zotero-api-skill
Zotero HTTP API helper for downloading, fetching, searching, creating, and updating Zotero items. Use when syncing or managing Zotero items programmatically; defaults to ZOTERO_USER and ZOTERO_API_KEY environment variables.
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
azure-eventhub-dotnet
Azure Event Hubs SDK for .NET.
azure-eventgrid-py
Azure Event Grid SDK for Python. Use for publishing events, handling CloudEvents, and event-driven architectures.
azure-enterprise-governance
Enterprise-grade Azure governance, security, and compliance framework. Combines Microsoft Cloud Adoption Framework (CAF) naming standards with comprehensive security architecture (Zero Trust), compliance frameworks (NIST, SOC2, PCI-DSS, HIPAA), and best practices. Provides naming validation, security audits, RBAC design, and compliance checklists for production-ready Azure deployments.
azure-diagrams
Visualizes Azure infrastructure from ARM templates, Azure CLI, or descriptions. Use when user has Azure resources to diagram.
azure-diagnostics
Debug and troubleshoot production issues on Azure. Covers Container Apps and Function Apps diagnostics, log analysis with KQL, health checks, and common issue resolution for image pulls, cold starts, health probes, and function invocation failures. USE FOR: debug production issues, troubleshoot container apps, troubleshoot function apps, troubleshoot Azure Functions, analyze logs with KQL, fix image pull failures, resolve cold start issues, investigate health probe failures, check resource health, view application logs, find root cause of errors, function app not working, function invocation failures DO NOT USE FOR: deploying applications (use azure-deploy), creating new resources (use azure-prepare), setting up monitoring (use azure-observability), cost optimization (use azure-cost-optimization)
azure-devops
Complete Azure DevOps automation - boards, repos, pipelines, artifacts
azure-deployment
Deploys applications to Azure using Azure Dev CLI, Bicep infrastructure as code, and GitHub Actions CI/CD. Use this skill when asked to deploy to Azure, create infrastructure, set up CI/CD, configure Azure resources, or create deployment pipelines.
azure-deploy
Deploy applications to Azure App Service, Azure Functions, and Static Web Apps. Analyzes projects to recommend services, provides local preview, and guides deployment. Use phrases like "what Azure service should I use", "analyze my project for Azure", "preview locally", "guide me through deployment".