Zotero Native MCP server
io.github.dvdsosa/zotero-native-mcp·v1.0.2·9 starsRead and write your local Zotero 10 library. No plugin, no zotero.org API key, no cloud.
9 stars414 downloads/wk
Reviews
Write oneNobody has reviewed Zotero Native MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Zotero Native MCP tools (28, 8 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
zotero_add_items_to_collectionFile existing items into a collection, keeping every collection they already belong to. An
zotero_attach_fileAttach a file from disk to a Zotero item, or add it as a standalone attachment. mode="linked"
zotero_authorizeRequest a local API key so write tools (creating collections, items, and attachments) can
zotero_create_collectionwrite actionCreate one or more collections, optionally nested under an existing collection. Up to 50 per
zotero_create_itemswrite actionCreate up to 50 items in one call. Set `collections` on an item to file it into collections
zotero_delete_collectionwrite actionMove collections to Zotero's trash, which is reversible and the default. The items inside
zotero_delete_itemswrite actionMove up to 50 items to Zotero's trash, where the user can restore them from the Zotero
zotero_empty_trashPermanently erase every item in the trash. This is irreversible and removes attachment
zotero_export_itemsExport items in a citation format. Use format "bibtex", "biblatex", "ris", "csljson", "csv"
zotero_get_attachment_pathResolve an attachment to its absolute path on this machine, so the file can be opened and
zotero_get_collectionFetch one collection by key, including its name, parent collection, item count and current
zotero_get_itemFetch one item by key with all of its metadata. Set includeChildren to also return its notes
zotero_get_item_childrenList the child notes, attachments and annotations of an item. Attachment children carry the
zotero_get_item_fulltextReturn the indexed full text of an attachment. Passing a regular item key works too: its
zotero_get_item_type_fieldsList the valid field names and creator types for a Zotero item type, or list every item
zotero_list_collectionsList collections in a library. scope="all" returns every collection flat (each carrying its
zotero_list_librariesList the personal library and every group library available locally. Use this to get the
zotero_list_saved_searchesList the saved searches defined in the library, with their conditions. Run one with
zotero_list_tagsList tags in the library, optionally only those used within one collection or matching a
zotero_list_trashList the items currently in Zotero's trash, which are the ones zotero_restore_items can
zotero_remove_items_from_collectionwrite actionRemove items from one collection. The items stay in the library and in any other collection
zotero_restore_collectionBring collections back out of Zotero's trash, undoing a non-permanent
zotero_restore_itemsBring items back out of Zotero's trash, undoing a non-permanent zotero_delete_items. The
zotero_run_saved_searchwrite actionExecute a saved search and return the matching items. The search runs against the local
zotero_search_itemsSearch the local Zotero library. `q` runs Zotero's quicksearch: qmode "titleCreatorYear"
zotero_statusCheck that the local Zotero instance is running and reachable, and report its version,
zotero_update_collectionwrite actionRename a collection and/or move it under a different parent. Pass parentCollectionKey=null to
zotero_update_itemwrite actionPatch fields on an existing item. Only the fields passed in `fields` change; everything else
Public scan report
scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it
- Code scan14 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 9 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Zotero Native MCP compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 93% of 48,243 servers
- Tools
- 28
- the typical server has 7
- Tools that change things
- 29%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 9
- more than 87% of 28,706 servers
- Downloads a week
- 414
- more than 85% of 12,306 servers with a package
What its tools let an agent do: 20 read · 8 change
Release history: 2 versions in the registry since 2026-09-03, latest 2026-10-07, typically one every 34 days.
Install Zotero Native MCP in Claude Code, Cursor or VS Code
Runs npx -y zotero-native-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add zotero-native-mcp -- npx -y zotero-native-mcp
What the publisher says
From the Zotero Native MCP repository's README, as published. We do not edit it. Read it on GitHub
zotero-native-mcp
An MCP server that reads and writes your Zotero 10+ library, entirely offline.
Connect Zotero to Claude, Claude Code, Cursor, or any Model Context Protocol client. Your assistant can search your library, read PDF full text, create collections, add references, and attach PDFs from your disk.
Every operation runs against the Zotero application on 127.0.0.1. No zotero.org account. No web API key. No Zotero plugin. No cloud round trip.
You: "File that arXiv paper under Thesis > Methods and attach the PDF
I just downloaded."
Claude: ✓ created collection "Methods" under "Thesis"
✓ added "Attention Is All You Need" (Vaswani et al., 2017)
✓ attached transformer.pdf … in 180 msWhy this exists
Zotero 10 added write support to its built-in local API. Before that, every Zotero MCP server had to work around a read-only local endpoint, either by routing writes through api.zotero.org (slow, needs an API key, needs your library synced to the cloud) or by shipping a separate Zotero plugin you had to install and keep up to date.
This server uses the native capability directly. Nothing to install inside Zotero, no credentials to manage, and reads land in 8–60 ms because nothing touches the network.
Requirements
writing through the local API did not exist before Zotero 10. On Zotero 7–9 the read tools work and every write fails.
- Zotero 10 or newer, running. This is a hard floor, not a preference:
"Allow other applications on this computer to communicate with Zotero".
- Zotero → Settings → Advanced → enable
- Node.js 22 or newer. Node 20 reached end of life in April 2026.
Tested on
Everything below is a statement of evidence, not of intent. Other platforms and clients are expected to work. The server is portable TypeScript talking to 127.0.0.1, with nothing platform-specific by design. But they have not been verified, and this table is the honest extent of it.
CI runs the unit and mock-protocol suites across a matrix of Linux, macOS and Windows × Node 22, 24 and 26, so portability of the code itself is covered on all three platforms. What no runner can cover is the conversation with a real Zotero, since none is installed there. That part was done by hand: scripts/coverage.mjs reaches all 28 tools on all three operating systems, against a live library.
Not yet verified. Intel Macs; Claude Code on Linux, where only the scripts were run; Claude Desktop, Cursor and other MCP clients anywhere.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Zotero Native MCP: common questions
- Is Zotero Native MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Zotero Native MCP safety report
- How do I install Zotero Native MCP?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Zotero Native MCP need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is Zotero Native MCP maintained?
- The last commit was 29 days ago (2026-10-07). The latest release is v1.0.2.
- What can I use instead of Zotero Native MCP?
- Servers from other publishers that do the same job: OpenWork MCP Gateway MCP server.
- How does Zotero Native MCP compare with other MCP servers?
- safety score 92/100 (higher than 93% of 48,243 servers); tools 28 (the typical server has 7); tools that change things 29% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Zotero Native MCP
Same job from other publishers: the closest match first, then the best rated.
OpenWork MCP GatewayYour OpenWork org's skills, plugins, workflows, and connections through one OAuth MCP URL.not reviewedEstablishedA