MCP.Market

Zotero Native MCP server

by dvdsosa·io.github.dvdsosa/zotero-native-mcp·v1.0.2·9 stars

Read and write your local Zotero 10 library. No plugin, no zotero.org API key, no cloud.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

9 stars414 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • zotero_add_items_to_collection

    File existing items into a collection, keeping every collection they already belong to. An

  • zotero_attach_file

    Attach a file from disk to a Zotero item, or add it as a standalone attachment. mode="linked"

  • zotero_authorize

    Request a local API key so write tools (creating collections, items, and attachments) can

  • zotero_create_collectionwrite action

    Create one or more collections, optionally nested under an existing collection. Up to 50 per

  • zotero_create_itemswrite action

    Create up to 50 items in one call. Set `collections` on an item to file it into collections

  • zotero_delete_collectionwrite action

    Move collections to Zotero's trash, which is reversible and the default. The items inside

  • zotero_delete_itemswrite action

    Move up to 50 items to Zotero's trash, where the user can restore them from the Zotero

  • zotero_empty_trash

    Permanently erase every item in the trash. This is irreversible and removes attachment

  • zotero_export_items

    Export items in a citation format. Use format "bibtex", "biblatex", "ris", "csljson", "csv"

  • zotero_get_attachment_path

    Resolve an attachment to its absolute path on this machine, so the file can be opened and

  • zotero_get_collection

    Fetch one collection by key, including its name, parent collection, item count and current

  • zotero_get_item

    Fetch one item by key with all of its metadata. Set includeChildren to also return its notes

  • zotero_get_item_children

    List the child notes, attachments and annotations of an item. Attachment children carry the

  • zotero_get_item_fulltext

    Return the indexed full text of an attachment. Passing a regular item key works too: its

  • zotero_get_item_type_fields

    List the valid field names and creator types for a Zotero item type, or list every item

  • zotero_list_collections

    List collections in a library. scope="all" returns every collection flat (each carrying its

  • zotero_list_libraries

    List the personal library and every group library available locally. Use this to get the

  • zotero_list_saved_searches

    List the saved searches defined in the library, with their conditions. Run one with

  • zotero_list_tags

    List tags in the library, optionally only those used within one collection or matching a

  • zotero_list_trash

    List the items currently in Zotero's trash, which are the ones zotero_restore_items can

  • zotero_remove_items_from_collectionwrite action

    Remove items from one collection. The items stay in the library and in any other collection

  • zotero_restore_collection

    Bring collections back out of Zotero's trash, undoing a non-permanent

  • zotero_restore_items

    Bring items back out of Zotero's trash, undoing a non-permanent zotero_delete_items. The

  • zotero_run_saved_searchwrite action

    Execute a saved search and return the matching items. The search runs against the local

  • zotero_search_items

    Search the local Zotero library. `q` runs Zotero's quicksearch: qmode "titleCreatorYear"

  • zotero_status

    Check that the local Zotero instance is running and reachable, and report its version,

  • zotero_update_collectionwrite action

    Rename a collection and/or move it under a different parent. Pass parentCollectionKey=null to

  • zotero_update_itemwrite action

    Patch 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

no findings
  • 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
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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 ms

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.

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 Gateway
    Your OpenWork org's skills, plugins, workflows, and connections through one OAuth MCP URL.
    A