zotero-library-mcp
Allows adding preprints to Zotero by arXiv ID, retrieving metadata via the arXiv API.
Can be configured to use Nextcloud as WebDAV storage for file attachments in Zotero.
Can be configured to use Synology as WebDAV storage for file attachments in Zotero.
Provides tools for managing a Zotero library: adding items by DOI, arXiv ID, or ISBN; searching; managing collections, tags, and annotations; and attaching files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zotero-library-mcpadd the paper with DOI 10.1038/s41586-023-06478-5 to my library"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zotero-library-mcp
An MCP server that lets AI assistants add papers and books to your Zotero library by DOI, arXiv ID, or ISBN — and manage your collections, tags, and items.
Tools
Adding papers
add_paper_by_doi— Resolve a DOI via CrossRef and add the paper to Zotero (with duplicate detection)add_papers_by_dois— Batch-add up to 50 papers at onceadd_paper_by_arxiv_id— Add a preprint by arXiv ID (uses DOI when available, falls back to arXiv metadata)
Adding books
add_book_by_isbn— Resolve an ISBN via Open Library and add the book to Zotero (with duplicate detection)
Searching & browsing
search_library— Search your Zotero library by title, author, tag, etc. (falls back to fuzzy matching when the exact search returns no results)get_item_details— View full metadata for any itemget_recent_items— List recently added itemsget_unfiled_items— Get items not in any collection
Reading & annotating
get_item_fulltext— Get the full text of an indexed PDFget_bibtex— Export BibTeX for one or more items, a collection, or your full library (abstracts stripped by default to save tokens; with optionalsave_pathto write a.bibfile directly)get_annotations— List all highlights and annotations on a paper's PDFcreate_annotation— Highlight a text passage in a PDF (searches for the exact text, creates a visible highlight in Zotero's reader, and returns a preview image for verification). Smart overlap handling: exact duplicates update the existing comment; sub-passages get a contrasting highlight color automatically.add_note— Add a note to an item
File attachments
attach_file— Attach a local file to an itemdownload_pdf— Download a PDF attachment to a local file (useful when Zotero's fulltext index is incomplete)
Collections
list_collections— List all collections (with nesting)create_collection— Create a new collection (optionally nested under a parent)get_collection_items— Browse items in a collectionadd_to_collection— Add an existing item to a collectionremove_from_collection— Remove an item from a collection (keeps it in your library)
Tags
list_tags— List all tags in your libraryadd_tags— Add one or more tags to an item (with optional color)remove_tags— Remove tags from an itemdelete_tags— Delete tags from the entire libraryset_tag_color— Assign a color to a tag (appears in Zotero's tag selector)rename_tag— Rename a tag across all items in your library
Verification
verify_items— Re-check recent items against CrossRef to catch bad DOIs or title mismatches
Deleting
delete_item— Permanently delete an item from your librarydelete_collection— Permanently delete a collection
Related MCP server: zoty
Prerequisites
A Zotero API key with write permissions: https://www.zotero.org/settings/keys
Your Zotero library ID (shown on the same page, or in your profile URL)
uv installed
Quick Start
Claude Code
claude mcp add zotero \
-e ZOTERO_LIBRARY_ID=your_library_id \
-e ZOTERO_API_KEY=your_api_key \
-- uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcpWebDAV setup
To use WebDAV file storage (e.g. Synology, Nextcloud), include the WebDAV variables:
claude mcp add zotero \
-e ZOTERO_LIBRARY_ID=your_library_id \
-e ZOTERO_API_KEY=your_api_key \
-e ZOTERO_WEBDAV_URL=https://your-webdav-server.com \
-e ZOTERO_WEBDAV_USER=your_username \
-e ZOTERO_WEBDAV_PASSWORD=your_password \
-- uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcpClaude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"zotero": {
"command": "/full/path/to/uvx",
"args": ["--from", "git+https://github.com/RaulSimpetru/zotero-library-mcp", "zotero-mcp"],
"env": {
"ZOTERO_LIBRARY_ID": "your_library_id",
"ZOTERO_API_KEY": "your_api_key",
"ZOTERO_WEBDAV_URL": "https://your-webdav-server.com",
"ZOTERO_WEBDAV_USER": "your_username",
"ZOTERO_WEBDAV_PASSWORD": "your_password"
}
}
}
}Note: Claude Desktop doesn't inherit your shell's PATH, so you need the full path to
uvx. Find it withwhich uvxin your terminal.
Run standalone
ZOTERO_LIBRARY_ID=your_id ZOTERO_API_KEY=your_key \
uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcpEnvironment Variables
Variable | Required | Description |
| Yes | Your Zotero user or group library ID |
| Yes | API key with read/write permissions |
| No |
|
| No | Your email for CrossRef polite pool (faster API access) |
| No | WebDAV URL for file storage (e.g. |
| No | WebDAV username |
| No | WebDAV password |
Note: If all three
ZOTERO_WEBDAV_*variables are set, file attachments are uploaded to your WebDAV server instead of Zotero's built-in storage. The server automatically appends/zoteroto the base URL, matching Zotero Desktop's behavior.
How it works
You provide a DOI, arXiv ID, or ISBN
The server queries the appropriate API to get full metadata:
DOI → CrossRef API
arXiv ID → arXiv API (with CrossRef fallback when a DOI exists)
ISBN → Open Library API
Metadata is mapped to Zotero's item format (title, authors, journal/publisher, date, etc.)
The item is created in your Zotero library via the Zotero Web API
License
MIT
mcp-name: io.github.RaulSimpetru/zotero-library-mcp
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RaulSimpetru/zotero-library-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server