Labsco
MCP SERVER

Zotero

by kujenga

Search a Zotero library from the client, then spend the item key on either its citation details or the full text of its attachment.

Academic Literature & CitationsVerified
Summary
Three tools is enough because the search returns keys and the other two spend them.

Search narrows in either mode and hands back summaries; the metadata call turns a key into a citation key and publication details, and the full-text call turns the same key into the text of the attachment. That split keeps a wide search cheap — the body of only the item you settled on gets pulled into context. The wider search mode reaches abstracts and full text, which is what you want when you remember an argument rather than a title.

What it is

A server over a Zotero library, reached either through the desktop application's local API or over the Zotero Web API, with search, metadata and full-text retrieval in three tools.

What you get
  • Search in two modes — titles, creator names and years for known-item lookup, or a wider mode that also reaches abstracts and full text
  • A tag filter alongside the query, and match summaries that are resolved into detail only for the items you choose
  • Complete item metadata rendered from whatever fields the API returns, including the citation key, publication details, identifiers and timestamps — fields the server does not recognise still appear rather than being dropped
  • The full text of a parent item or of one specific attachment, by item key
Requirements

A Zotero library and uv, or the published Docker image. Two ways in: set ZOTERO_LOCAL=true and run Zotero with "Allow other applications on this computer to communicate with Zotero" enabled under Settings → Advanced, or use the Web API with ZOTERO_API_KEY and ZOTERO_LIBRARY_ID, adding ZOTERO_LIBRARY_TYPE=group for a group library. The two differ in one way worth knowing: the local API indexes citation keys in search, the Web API does not. MIT.

Setup effort

One command plus a key — docker pull ghcr.io/kujenga/zotero-mcp:main, then supply credentials