Complete reference for all Zotero MCP tools and functions
AI-powered vector search for finding conceptually related papers
zotero_semantic_searchPerform AI-powered semantic search across your Zotero library. Finds papers based on conceptual similarity rather than exact keyword matches.
| Name | Type | Description | Default |
|---|---|---|---|
query |
string | Semantic search query (can be natural language, concepts, or even an abstract) | Required |
limit |
integer | Maximum number of results to return | 10 |
Markdown-formatted results with similarity scores and item metadata.
{
"query": "machine learning applications in medical imaging",
"limit": 5
}
zotero_update_search_databaseManually trigger an update of the semantic search database.
| Name | Type | Description | Default |
|---|---|---|---|
extract_fulltext |
boolean | Whether to extract full-text content from PDFs | false |
force_rebuild |
boolean | Force complete database rebuild | false |
zotero_get_search_database_statusGet the current status and statistics of the semantic search database.
None
Database statistics including item count, last update time, and embedding model info.
Traditional keyword and criteria-based search tools
zotero_search_itemsSearch for items in your Zotero library by keywords.
| Name | Type | Description | Default |
|---|---|---|---|
query |
string | Search query string | Required |
qmode |
string | Query mode: "titleCreatorYear" or "everything" | "titleCreatorYear" |
item_type |
string | Item type filter. Use "-attachment" to exclude attachments. | "-attachment" |
limit |
integer | Maximum results to return | 10 |
tag |
array | List of tag conditions to filter by | null |
{
"query": "machine learning",
"qmode": "everything",
"limit": 5
}
zotero_search_by_tag NewSearch for items using tag filters with AND/OR logic and exclusions.
| Name | Type | Description | Default |
|---|---|---|---|
tag |
array | List of tag conditions. Use "||" for OR, "-" for exclusion. Example: ["research || important", "-draft"] | Required |
item_type |
string | Item type filter | "-attachment" |
limit |
integer | Maximum results to return | 10 |
{
"tag": ["#ML || #AI", "-#draft"],
"limit": 20
}
zotero_advanced_searchPerform advanced search with multiple criteria.
| Name | Type | Description | Default |
|---|---|---|---|
conditions |
array | List of condition objects: {field, operation, value} | Required |
join_mode |
string | "all" (AND) or "any" (OR) | "all" |
sort_by |
string | Field to sort by (dateAdded, dateModified, title, creator) | null |
sort_direction |
string | "asc" or "desc" | "asc" |
limit |
integer | Maximum results to return | 50 |
{
"conditions": [
{"field": "creator", "operation": "contains", "value": "Smith"},
{"field": "date", "operation": "is", "value": "2023"}
],
"join_mode": "all",
"sort_by": "dateAdded",
"sort_direction": "desc"
}
zotero_get_collectionsList all collections in your Zotero library with hierarchical structure.
| Name | Type | Description | Default |
|---|---|---|---|
limit |
integer | Maximum number of collections to return | null (no limit) |
zotero_get_collection_itemsGet all items in a specific collection.
| Name | Type | Description | Default |
|---|---|---|---|
collection_key |
string | The collection key/ID | Required |
limit |
integer | Maximum items to return | 50 |
zotero_get_tagsGet all tags used in your library, organized alphabetically.
| Name | Type | Description | Default |
|---|---|---|---|
limit |
integer | Maximum tags to return | null (no limit) |
zotero_get_recentGet recently added items to your library.
| Name | Type | Description | Default |
|---|---|---|---|
limit |
integer | Number of items to return | 10 |
Access item metadata, full text, and attachments
zotero_get_item_metadataGet detailed metadata for a specific item. Supports BibTeX export format.
| Name | Type | Description | Default |
|---|---|---|---|
item_key |
string | Zotero item key/ID | Required |
include_abstract |
boolean | Whether to include the abstract | true |
format |
string | Output format: "markdown" or "bibtex" | "markdown" |
{
"item_key": "ABC123XY",
"format": "bibtex"
}
zotero_get_item_fulltextGet the full text content of an item from its PDF or HTML attachment.
| Name | Type | Description | Default |
|---|---|---|---|
item_key |
string | Zotero item key/ID | Required |
zotero_get_item_childrenGet all child items (attachments, notes) for a specific item.
| Name | Type | Description | Default |
|---|---|---|---|
item_key |
string | Zotero item key/ID | Required |
Work with PDF annotations and research notes
zotero_get_annotationsGet annotations for a specific item or across your entire library.
| Name | Type | Description | Default |
|---|---|---|---|
item_key |
string | Filter by parent item (optional) | null |
use_pdf_extraction |
boolean | Extract directly from PDF as fallback | false |
limit |
integer | Maximum annotations to return | null |
zotero_get_notesRetrieve notes from your library.
| Name | Type | Description | Default |
|---|---|---|---|
item_key |
string | Filter by parent item (optional) | null |
limit |
integer | Maximum notes to return | 20 |
zotero_search_notesSearch for notes and annotations by content.
| Name | Type | Description | Default |
|---|---|---|---|
query |
string | Search query string | Required |
limit |
integer | Maximum results to return | 20 |
zotero_create_note BetaCreate a new note for a Zotero item.
| Name | Type | Description | Default |
|---|---|---|---|
item_key |
string | Parent item key to attach note to | Required |
note_title |
string | Title for the note | Required |
note_text |
string | Note content (supports basic HTML) | Required |
tags |
array | Tags to apply to the note | null |
{
"item_key": "ABC123XY",
"note_title": "Summary Notes",
"note_text": "Key findings from this paper...
",
"tags": ["summary", "important"]
}
Batch operations and library management
zotero_batch_update_tagsBatch add or remove tags across multiple items.
| Name | Type | Description | Default |
|---|---|---|---|
query |
string | Search query to find items | Required |
add_tags |
array | Tags to add | null |
remove_tags |
array | Tags to remove | null |
limit |
integer | Maximum items to process | 50 |
{
"query": "machine learning",
"add_tags": ["AI", "research"],
"remove_tags": ["to-read"],
"limit": 100
}
Real-world examples of using Zotero MCP with your AI assistant
You: Find papers in my library related to transformer architectures in computer vision
Claude: I'll search your library for conceptually related papers using semantic search.
[Uses zotero_semantic_search with the query]
Claude: I found 5 papers related to transformers in vision:
You: Export the BibTeX citation for my attention mechanism paper
Claude: Let me find and export that paper.
[Uses zotero_search_items, then zotero_get_item_metadata with format="bibtex"]
Claude: Here's your BibTeX citation:
@article{vaswani2017attention,
title={Attention is all you need},
author={Vaswani, Ashish and Shazeer, Noam and ...},
journal={Advances in neural information processing systems},
year={2017}
}
You: Show me all papers tagged with #ML but not #reviewed
Claude: I'll search using tag filters.
[Uses zotero_search_by_tag with tag=["#ML", "-#reviewed"]]
Claude: Found 12 papers with #ML that haven't been reviewed yet:
You: Extract my annotations from the quantum computing paper and create a summary note
Claude: I'll extract your annotations and create a summary.
[Uses zotero_search_items to find the paper]
[Uses zotero_get_annotations to extract highlights and notes]
[Uses zotero_create_note to save the summary]
Claude: I found 15 annotations in your paper. Key themes:
I've created a summary note attached to the paper with all your annotations organized by topic.