MCP server for Zotero 10+. Read and write your library entirely offline through Zotero's native local API. No plugin, no API key, no cloud.
zotero-native-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**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.**
Why 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.
| Criterion | Web API servers | Plugin-based servers | **zotero-native-mcp** |
|---|:---:|:---:|:---:|
| Works offline | ❌ | ✅ | **✅** |
| Needs a zotero.org API key | ✅ required | ❌ | **❌** |
| Needs a Zotero plugin (.xpi) | ❌ | ✅ required | **❌** |
| Create collections | ✅ | ✅ | **✅** |
| Attach local PDFs | ⚠️ via cloud | ✅ | **✅** |
| Typical read latency | 500–1500 ms | [!WARNING]
> **This server can modify and delete items in your Zotero library.** Back it up
> before you start, and keep backing it up.
>
> Deleting is reversible by default: zotero_delete_items and
> zotero_delete_collection move things to **Zotero's trash**, where you can
> restore them from the Zotero window or with zotero_restore_items. But Zotero
> empties that trash automatically after 30 days, and both tools take a
> permanent: true that erases outright, no undo, attachment files removed from
> disk, nothing in the API able to bring them back. zotero_empty_trash does the
> same to everything already in the trash.
>
> These tools are driven by an assistant interpreting instructions in natural
> language, which can misread which item you meant.
>
> **To back up:** quit Zotero, then copy your whole data directory, ~/Zotero
> on macOS and Linux, %USERPROFILE%\Zotero on Windows, or whatever
> **Settings → Advanced → Files and Folders** reports. It holds zotero.sqlite
> and the storage folder with every attachment. Zotero's own guidance is at
> zotero.org/support/zotero_data.
>
> Syncing to zotero.org is **not** a backup: a deletion syncs too.
>
> This software is provided as is, without warranty of any kind, and its authors
> accept no liability for data loss. See LICENSE.
Quick start
Other clients (Claude Desktop, Cursor, …)
--scope user registers it for every project. Without it, claude mcp add
defaults to the *local* scope, which ties the server to the one directory you
ran the command in, open anything else and the tools are simply absent.
No environment variables are needed. Start a new session, then ask your
assistant to run zotero_status to confirm the connection.
The first time a tool **writes**, Zotero shows a dialog asking whether to allow
it. Choose **"Always Allow"** so you are not asked again.