# Zotero MCP

> Zotero manages your academic research library, allowing you to list collections, search specific items, and pull full bibliographic data directly through your AI agent. You keep control of your entire source network without leaving your writing environment.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** reference-management, citation-tools, academic-research, bibliography, document-organization

## Description

You can connect your Zotero sources right into your workflow, letting your AI agent treat your reference library like any other data source. Instead of manually searching tabs or juggling PDF files, you ask your agent to pull specific details—like the full publication date and creator for a given item—or list all available notes attached to a key paper. This capability means you can manage complex reading lists and organize entire research projects simply by talking to your AI client. Because credentials pass through Vinkius's zero-trust proxy, your sensitive API keys never sit on disk; they only move across the connection when needed. You get full control over everything in your library, from browsing top-level collections to finding specific items and managing tags.

## Tools

### create_items
Adds entirely new research sources to your Zotero library when the schema is properly provided.

### delete_item
Removes a single source item from your collection permanently.

### delete_items
Clears out up to 50 outdated or duplicate sources in one batch operation.

### get_collection
Retrieves all items and details from a specific, named collection within the library.

### get_deleted
Shows you what sources were deleted since a certain point in your library's history.

### get_item
Fetches the full record and metadata for one specific source item using its unique key.

### get_item_type_fields
Lists all valid data fields that can be used when creating or modifying an item.

### get_new_item_template
Generates a required JSON structure so you know exactly how to build a new citation correctly.

### get_tag
Looks up all tags that match a specific name across the entire library.

### list_collection_items
Retrieves a list of sources contained within one specific collection you identify.

### list_collections
Provides an exhaustive list of every top-level research grouping in your library.

### list_item_children
Shows all related notes, attachments, and sub-elements tied to a specific source item.

### list_item_fields
Lists every available piece of data you can attach to any Zotero item.

### list_item_tags
Returns all tags currently applied to a single, specific source item.

### list_item_types
Provides an exhaustive list of all types of sources (book, article, etc.) in the system.

### list_items
Gathers a simple listing of every source item available in your entire Zotero library.

### list_publications
Lists all the sources you have marked as part of 'My Publications'.

### list_subcollections
Shows all smaller, nested collections that belong to a larger main collection.

### list_tags
Gathers every single tag used across your entire library for easy filtering.

### list_top_collections
Retrieves a list of the main, highest-level groupings in your research library.

### list_top_items
Gathers a simple list of all top-level sources that don't belong to any specific collection.

### list_trash_items
Shows you every source item that has been moved to the trash bin.

### update_item
Makes partial changes, like adding notes or fixing a title, to an existing research source item.

## Prompt Examples

**Prompt:** 
```
List all my top-level collections in Zotero.
```

**Response:** 
```
I've retrieved your top-level collections. You have 'Thesis Research' (Key: A1B2C3D4), 'Machine Learning Papers' (Key: E5F6G7H8), and 'General Reading' (Key: I9J0K1L2). Which one would you like to explore?
```

**Prompt:** 
```
Search for items in my library with the tag 'artificial-intelligence'.
```

**Response:** 
```
Searching for items tagged 'artificial-intelligence'... I found 3 items, including 'Attention Is All You Need' and 'Deep Learning Review'. Would you like the full details for any of these?
```

**Prompt:** 
```
Get the complete bibliographic details for item key ABCD1234.
```

**Response:** 
```
Fetching details for item ABCD1234... This is a journal article titled 'Neural Networks for Beginners' by Smith et al. (2023), published in the Journal of AI Research. It currently has 5 tags and 2 attached notes.
```

## Capabilities

### Map all research collections
List every top-level collection or subcollection you own, giving you a map of your entire library structure.

### Extract item metadata
Fetch the complete bibliographic details for any single source, including creator names and publication years.

### Search and filter sources
Query thousands of items across your library using advanced filters based on tags or keywords.

### Manage content structure
Create new citations in the library, delete multiple old items at once, or update existing item details.

## Use Cases

### The Literature Review Cleanup
A researcher realizes they have dozens of sources with the same topic but different citations. They ask their agent to list_tags for 'AI Ethics' and then use get_item on all resulting items to confirm which ones need updating, preventing citation errors.

### The Thesis Outline Builder
A student is structuring a chapter. They prompt the agent to list top-level collections for 'Chapter 2: Methodology' and then use get_item on all items found there to gather specific metadata, building an instant source index.

### The Source Audit
An academic needs to prove which sources were used in a paper. They ask the agent to list_item_children for key papers and confirm that all supporting documentation was correctly linked before submission.

## Benefits

- Stop juggling tabs. Instead of manually searching for sources, you can ask your agent to list all top-level collections or pull specific item details using get_item, keeping your work focused on writing, not finding files.
- No more lost notes. You can use list_item_children to see every attachment and note linked to a source, making sure you never forget context for a key paper.
- Build structured workflows that span multiple platforms. By combining this MCP with other tools—say, one that drafts text and another that manages citations—you build automations that keep all your sources centralized in Vinkius's secure environment.
- Save time on cleanup. Instead of manually checking hundreds of files for duplicates, you can use delete_items to clear out old or redundant references in bulk.
- Keep track of everything. You can list_tags and list_item_types to understand exactly how your library is structured, helping you organize future research efforts efficiently.

## How It Works

The bottom line is you get immediate, conversational access to structured academic data without ever touching the Zotero desktop app.

1. First, subscribe to this MCP and provide your Zotero API Key and User ID.
2. Next, connect the service credentials from Claude, Cursor, or any compatible client through Vinkius.
3. Finally, prompt your agent with a request—like 'List all my sources related to machine learning'—and get instant data back.

## Frequently Asked Questions

**Can I search for specific items in my library using keywords?**
Yes! Use the `list_items` tool with the `q` parameter. It performs a quick search across titles and creators to find exactly what you need.

**How do I view the subcollections nested inside a main collection?**
Simply use the `list_subcollections` tool and provide the `collection_key` of the parent collection. The agent will return all nested folders.

**Does this support shared group libraries or only my personal library?**
It supports both! Most tools, like `list_collections` or `list_items`, accept an optional `group_id`. If provided, the agent will query that specific group library instead of your personal one.

**If I use get_item, how do I verify what specific fields or data points are available for that item type?**
You must first call list_item_fields to see every possible field name. This tells your agent exactly which metadata you can request when fetching an item.

**What is the correct workflow if I want to create a new item using create_items?**
Start by calling get_new_item_template for the desired type. This provides the required JSON schema, ensuring your agent sends data in the proper format every time.

**If I accidentally delete an item, can I use list_trash_items to recover it?**
Yes, using list_trash_items retrieves objects that were deleted. You can review these records and potentially restore them if needed.

**When making changes to a single record, do I need to send the entire item data, or is there an easier way? Should I use update_item?**
You should use update_item. This tool handles partial updates (PATCH), meaning you only need to send the specific fields that changed, saving bandwidth and processing time.

**How do I list all available tags across my entire Zotero library using list_tags?**
list_tags pulls a comprehensive list of every tag name used in your library. This lets your agent search or filter items based on any existing keyword.