# 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, ba…

- **Type:** Skill
- **Install:** `agentstack add skill-kerim-zotero-mcp-skill-zotero-mcp-skill`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [kerim](https://agentstack.voostack.com/s/kerim)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [kerim](https://github.com/kerim)
- **Source:** https://github.com/kerim/zotero-mcp-skill

## Install

```sh
agentstack add skill-kerim-zotero-mcp-skill-zotero-mcp-skill
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [kerim](https://github.com/kerim)
- **Source:** [kerim/zotero-mcp-skill](https://github.com/kerim/zotero-mcp-skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-kerim-zotero-mcp-skill-zotero-mcp-skill
- Seller: https://agentstack.voostack.com/s/kerim
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
