zotero_collection_get_treeLABSCO SUMMARY
It refuses the shortcut that breaks Zotero libraries.
The tempting implementation is to write straight to the Zotero database, and that is exactly what this does not do: writes go through Zotero's internal APIs while the plugin runs inside Zotero, so the app's own invariants hold. Everything else follows — loopback only, no cloud writes, and nothing permanently erased, since delete-like flows use the trash or a controlled merge. Start in readonly or askforapprove and only consider yolo after watching a few dry runs.
What it is
A Zotero plugin that hosts an MCP endpoint inside Zotero. Writes go through Zotero's internal APIs rather than the database file, and every write is planned as a dry run first. Starting Zotero starts the endpoint; closing Zotero stops it.
What you get
- Items and collections read, searched, created and edited; DOI records checked in batch; membership in top-level collections or subcollections managed in bulk
- Attachments added, moved, renamed and inspected, with PDF and EPUB imported through Zotero's own metadata recognition and attachment rename logic
- PDF annotations read, created and updated, and citations and bibliographies formatted by Zotero
- BibTeX, RIS and CSL JSON imported and exported
- Basic search, advanced search, and saved searches read and updated — a read-only query such as
zotero_collection_get_treeneeds no approval - Duplicates found and merged under a controlled flow
- A safety workflow around every write: dry-run plan, warnings, affected targets, approval, audit, file-level backup and undo
Requirements
Zotero 9.x desktop and the plugin XPI from the project's releases, dragged into Tools → Plugins. Run mode is chosen in Settings → Zotero Local MCP Bridge: readonly blocks all writes, askforapprove requires your approval after the dry run, and yolo lets ordinary writes execute while high-risk operations still ask. Clients that speak Streamable HTTP connect straight to http://127.0.0.1:23119/zotero-local-mcp-bridge/mcp; stdio-only clients install the adapter with npm install -g zotero-local-mcp-bridge-stdio-adapter, and zotero-local-mcp-bridge-stdio doctor prints ready-to-copy configurations. Local user libraries only — no Zotero Web API, no group libraries, and no ZOTERO_API_KEY is requested or stored.
Setup effort
Follow the published steps — npm install -g zotero-local-mcp-bridge-stdio-adapter
USE CASES
Checking what you already have before adding more
Run one batch DOI lookup and get the matches, reusable item keys, and the DOIs you are missing.
Filing a reading queue
Create the subcollection and add existing items to it in one approved batch, skipping the ones already in there.
Importing PDFs with metadata attached
Let Zotero's own recognition create the parent items and rename the attachments according to your preferences.
Producing a bibliography
Export the selected items as BibTeX, or have Zotero format the bibliography in the style you need — both read-only.
2 tools
Listed in project docs. Your client may show a different list.
zotero_command_catalogBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation.
Requires
zotero-local-mcp-bridge-stdio on PATH
INSTALLATION
Connect your client
Server setup
Download zotero-local-mcp-bridge.xpi from https://github.com/PhoenixChenLu/zotero-local-mcp-bridge/releases
In Zotero 9.x open Tools → Plugins, drag zotero-local-mcp-bridge.xpi into the plugin manager window, confirm the installation, and restart Zotero
Choose a run mode under Settings → Zotero Local MCP Bridge — start with readonly or askforapprove
npm install -g zotero-local-mcp-bridge-stdio-adapterKeep Zotero open while you use it: Claude Code and Codex connect straight to http://127.0.0.1:23119/zotero-local-mcp-bridge/mcp; stdio-only clients use the adapter installed above
MCP Clients
Claude Code
claude mcp add --transport http zotero-local-mcp-bridge http://127.0.0.1:23119/zotero-local-mcp-bridge/mcpCodex
[mcp_servers.zotero-local-mcp-bridge]
url = "http://127.0.0.1:23119/zotero-local-mcp-bridge/mcp"
startup_timeout_sec = 10
tool_timeout_sec = 120OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"zotero-local-mcp-bridge": {
"type": "local",
"command": [
"zotero-local-mcp-bridge-stdio"
]
}
}
}Claude Desktop
Install zotero-local-mcp-bridge-<YOUR_VERSION>.mcpb in Claude Desktop on macOS or Windows
Any MCP client — stdio
{
"mcpServers": {
"zotero-local-mcp-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"zotero-local-mcp-bridge-stdio-adapter"
]
}
}
}