# zotero-mcp

> Zotero MCP: Connects your Zotero research library with Claude and other AI assistants via the Model Context Protocol to discuss papers, get summaries, analyze citations, and more.

- **URL**: https://www.freshcrate.ai/projects/zotero-mcp
- **Author**: 54yyyu
- **Category**: MCP Servers
- **Latest version**: `v0.4.1` (2026-05-23)
- **License**: MIT
- **Source**: https://github.com/54yyyu/zotero-mcp
- **Homepage**: https://stevenyuyy.com/zotero-mcp/
- **Language**: Python
- **GitHub**: 2,645 stars, 248 forks
- **Registry**: github
- **Tags**: `claude`, `mcp`, `python`, `semantic-search`, `zotero`

## Description

Zotero MCP: Connects your Zotero research library with Claude and other AI assistants via the Model Context Protocol to discuss papers, get summaries, analyze citations, and more.

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v0.4.1` | 2026-05-23 | High | ## Bug Fixes  - **Local fulltext extraction**: Read `.zotero-ft-cache` and scan storage when filenames drift (#291) - **Windows PDF extraction**: Force UTF-8 encoding on pdfminer subprocess (#286) - **Annotations**: Build annotation document text from `annotation.text` instead of placeholder (#287) - **Better BibTeX**: Correct `item.citationkey` signature, inject missing citekey, drop broken `item.search` (#293) - **Collections**: Surface trashed collections; reject writes against them (#233) - |
| `v0.3.0` | 2026-04-09 | High | ## What's New  ### New Tools - **Note CRUD** — `zotero_update_note` and `zotero_delete_note` for full note lifecycle management, plus `raw_html` parameter on note readers for round-trip editing (#199) - **PDF area annotations** — `zotero_create_area_annotation` for creating image/area annotations on PDFs using normalized coordinates (#190)  ### New Features - **Gemini embedding v2** — support for `gemini-embedding-2-preview` (3072-dim, 8192-token context) with in-prompt task prefixes and batched |
| `v0.2.2` | 2026-03-26 | Medium | ## What's New  ### Added - **Scite citation intelligence integration** — new optional `[scite]` extra that enriches Zotero library items with citation data from [scite.ai](https://scite.ai). No Scite account required (#180).   - `scite_enrich_item`: Citation tallies (supporting/contrasting/mentioning) and editorial notice alerts.   - `scite_enrich_search`: Search your Zotero library with Scite tallies inline.   - `scite_check_retractions`: Scan your library for retractions, corrections, and edit |
| `v0.2.1` | 2026-03-22 | Low | ### Fixed - **`create_annotation` crash** — fixed `_client._client.` double-indirection typo introduced in v0.2.0 refactor (#168) - **`attachments:` path resolution** — now reads `baseAttachmentPath` from Zotero's `prefs.js` instead of wrongly resolving against the storage directory (#169)  **Full Changelog**: https://github.com/54yyyu/zotero-mcp/compare/v0.2.0...v0.2.1 |
| `v0.2.0` | 2026-03-22 | Low | ## Architecture  - **Split `server.py` (4,800 lines) into `tools/` subpackage** — search, retrieval, annotations, write, connectors, and shared helpers are now separate modules. `server.py` is a 109-line re-export shim. - **Removed `_ServerModule` sys.modules hack** — tool modules use module-level attribute access; tests patch canonical locations directly. - **Optional dependency groups** — `[semantic]` (ChromaDB, embeddings), `[pdf]` (PyMuPDF, EPUB), `[all]`. Base install is lightweight with no |
| `v0.1.5` | 2026-03-22 | Low | ## What's New in v0.1.5  ### New Features - **Write operations** — 10+ new tools: `create_item`, `update_item`, `create_note`, `add_tags`, `batch_update_tags`, `create_collection`, `add_to_collection`, `remove_from_collection`, `add_by_doi`, `add_by_url`, `add_from_file` (PR #165) - **BetterBibTeX citation key lookup** — `zotero_search_by_citation_key` searches both BetterBibTeX JSON-RPC and the Extra field - **PDF outline extraction** — `zotero_get_pdf_outline` returns table of contents fr |
| `v0.1.6` | 2026-03-22 | Low | Patch release — identical to v0.1.5 but with updated README (removed stale fork section). Bumped for PyPI republish.  See [v0.1.5 release notes](https://github.com/54yyyu/zotero-mcp/releases/tag/v0.1.5) for full changelog. |
| `v0.1.4` | 2026-03-09 | Low | ## [0.1.4] - 2026-03-09  ### Added - Model-aware token truncation for embedding models.  ### Fixed - Truncate documents to embedding model token limit to prevent failures with large texts. - Search notes now correctly finds notes by content. - Note creation properly attaches notes as child items via web API. - Auto-reset ChromaDB collection on embedding model change. - Updated default Gemini model to `gemini-embedding-001`. - Implemented `get_config`/`build_from_config` for ChromaDB embedding fu |
| `v0.1.3` | 2026-02-20 | Low | # 🎉 First Official PyPI Release Zotero MCP is now available on PyPI as zotero-mcp-server!  ## Install  Recommended ``` uv tool install zotero-mcp-server ```  Or with pip ``` pip install zotero-mcp-server ```  Or with pipx ``` pipx install zotero-mcp-server ``` Then run `zotero-mcp setup` to auto-configure your MCP client.  ## What's Changed  - Published to PyPI — no more installing from git URLs. pip install zotero-mcp-server just works. - Updater uses PyPI — zotero-mcp |

## Citation

- HTML: https://www.freshcrate.ai/projects/zotero-mcp
- Markdown: https://www.freshcrate.ai/projects/zotero-mcp.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/zotero-mcp/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
