# Zotero MCP server

Agent View of the PolicyLayer registry record for Zotero: identity, probed posture, risk grade, and all 27 tools classified. HTML page: https://policylayer.com/tools/zotero

## Facts

- Server id: `zotero-mcp`
- Install: `npx -y zotero-mcp`
- Homepage: git+https://github.com/cookjohn/zotero-mcp.git
- Registry record: grade D, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 27
- Tool categories present: Destructive, Read, Write
- Tags: zotero, admin
- Record last modified: 2026-06-12T13:17:19.959Z

## Tools (27)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `delete_collection` | Destructive | Critical | https://policylayer.com/tools/zotero/delete-collection.md |
| `find_similar` | Read | Low | https://policylayer.com/tools/zotero/find-similar.md |
| `fulltext_database` | Read | Low | https://policylayer.com/tools/zotero/fulltext-database.md |
| `get_annotations` | Read | Low | https://policylayer.com/tools/zotero/get-annotations.md |
| `get_collection_details` | Read | Low | https://policylayer.com/tools/zotero/get-collection-details.md |
| `get_collection_items` | Read | Low | https://policylayer.com/tools/zotero/get-collection-items.md |
| `get_collections` | Read | Low | https://policylayer.com/tools/zotero/get-collections.md |
| `get_content` | Read | Low | https://policylayer.com/tools/zotero/get-content.md |
| `get_item_abstract` | Read | Low | https://policylayer.com/tools/zotero/get-item-abstract.md |
| `get_item_details` | Read | Low | https://policylayer.com/tools/zotero/get-item-details.md |
| `get_libraries` | Read | Low | https://policylayer.com/tools/zotero/get-libraries.md |
| `get_subcollections` | Read | Low | https://policylayer.com/tools/zotero/get-subcollections.md |
| `search_annotations` | Read | Low | https://policylayer.com/tools/zotero/search-annotations.md |
| `search_collections` | Read | Low | https://policylayer.com/tools/zotero/search-collections.md |
| `search_fulltext` | Read | Low | https://policylayer.com/tools/zotero/search-fulltext.md |
| `search_libraries` | Read | Low | https://policylayer.com/tools/zotero/search-libraries.md |
| `search_library` | Read | Low | https://policylayer.com/tools/zotero/search-library.md |
| `semantic_search` | Read | Low | https://policylayer.com/tools/zotero/semantic-search.md |
| `semantic_status` | Read | Low | https://policylayer.com/tools/zotero/semantic-status.md |
| `add_items_to_collection` | Write | Medium | https://policylayer.com/tools/zotero/add-items-to-collection.md |
| `create_collection` | Write | Medium | https://policylayer.com/tools/zotero/create-collection.md |
| `remove_items_from_collection` | Write | Medium | https://policylayer.com/tools/zotero/remove-items-from-collection.md |
| `update_collection` | Write | Medium | https://policylayer.com/tools/zotero/update-collection.md |
| `write_item` | Write | Medium | https://policylayer.com/tools/zotero/write-item.md |
| `write_metadata` | Write | Medium | https://policylayer.com/tools/zotero/write-metadata.md |
| `write_note` | Write | Medium | https://policylayer.com/tools/zotero/write-note.md |
| `write_tag` | Write | Medium | https://policylayer.com/tools/zotero/write-tag.md |

## Tool descriptions

- `delete_collection` — Delete a collection. WARNING: This is a destructive operation. By default, items in the collection are NOT deleted (only removed from the collection). Set deleteItems=true to also send items to trash.
- `find_similar` — Find items semantically similar to a given item using AI embeddings. Useful for expanding research from a known relevant paper and discovering thematic clusters.
- `fulltext_database` — Access the cached full-text content database (read-only). Faster than re-extracting from Zotero. Actions: list (cached items), search (find text), get (retrieve content), stats (database info).
- `get_annotations` — Get annotations and notes for specific items with color/tag filtering. REQUIRED: provide one of itemKey, annotationId, or annotationIds (use search_library first to find the itemKey; use search_annotations to search by colors/tags across…
- `get_collection_details` — Get detailed information about a specific collection
- `get_collection_items` — Get items in a specific collection
- `get_collections` — Get collections in the library. By default returns a flat, paginated list of top-level collections. Use recursive=true to retrieve the complete nested collection tree (all levels) in one call. Use parentCollection to scope to a specific …
- `get_content` — Get full-text content from PDFs, attachments, notes, and abstracts. May contain OCR artifacts. When user asks for complete text, provide it without summarization.
- `get_item_abstract` — Get the abstract/summary of a specific item. Typically the author\
- `get_item_details` — Get detailed bibliographic metadata for a specific item (title, authors, dates, identifiers, attachments, notes, tags). Use get_content for full text. Suitable for generating citations and references.
- `get_libraries` — List all Zotero libraries available in the current client. Returns minimal library metadata for each library as a paginated array.
- `get_subcollections` — Get subcollections (child collections) of a specific collection. Use recursive=true to retrieve the full nested hierarchy of all descendant collections.
- `search_annotations` — Search and filter annotations (highlights, notes, comments) by query, colors, or tags. Returns user\
- `search_collections` — Search collections by name
- `search_fulltext` — Search within full-text content of all documents. Returns matching passages with context. Use get_content with itemKey for complete text of a result.
- `search_libraries` — Search libraries by name
- `search_library` — Search the Zotero library with advanced parameters, boolean operators, relevance scoring, and pagination. Results are from user\
- `semantic_search` — AI-powered semantic search using embeddings. Finds conceptually related content even without exact keyword matches. Combine with keyword search (search_library, search_fulltext) for comprehensive results.
- `semantic_status` — Get the status of the semantic search service including index statistics.
- `add_items_to_collection` — Add one or more items to a collection by their item keys.
- `create_collection` — Create a new collection in the library. Optionally nest it under a parent collection.
- `remove_items_from_collection` — Remove one or more items from a collection. Items are NOT deleted from the library, only removed from this collection.
- `update_collection` — Rename or move an existing collection. Provide name to rename, parentCollection to move (empty string moves to top level).
- `write_item` — Create a new Zotero item, re-parent existing attachments, or import a local file as an attachment. Common workflows: (1) read PDF → extract metadata → create item → attach PDF via attachmentKeys; (2) convert PDF to Markdown → import the …
- `write_metadata` — Update metadata fields on Zotero items (title, abstract, date, URL, DOI, creators, etc.). Only works on regular items, not notes or attachments. Confirm with user before executing.
- `write_note` — Create or modify Zotero notes. Supports child notes (attached to items), standalone notes, updating, or appending. Markdown is auto-converted to HTML. Confirm with user before writing.
- `write_tag` — Add, remove, or replace tags on Zotero items. Works on any item type. Response includes before/after tag lists for verification. Confirm with user before executing.

## Related servers

- UnClick (1658 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- Yaver (812 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Pfsense (680 tools) — https://policylayer.com/tools/abl030-pfsense-mcp.md
- AdButler (622 tools) — https://policylayer.com/tools/adbutler.md
- Crow (587 tools) — https://policylayer.com/tools/kh0pper-crow.md
- Fortimanager (584 tools) — https://policylayer.com/tools/jmpijll-fortimanager-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=zotero · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/zotero
