Skip to main content
Glama
upascal

zotero-assistant-mcp

by upascal

zotero-assistant-mcp

Zotero library management MCP server for Cloudflare Workers, designed for deployment via mcp-deploy.

Tools (16)

Groups

  • list_groups — list Zotero groups the user belongs to (returns group IDs for use with group_id params)

Search & Browse

  • search_items — search by text, tags, type, collection, or date range

  • get_collection_items — list items in a specific collection

  • list_collections — list all collections (folders)

  • create_collection — create a new collection

  • list_tags — list tags with item counts

  • get_library_stats — library overview with totals and top tags

Read

  • get_item — full metadata and children for a single item

  • read_attachment — read attachment content (auto-detects type, accepts parent or attachment key)

  • get_note — read note content

Write

  • save_item — create an item with metadata and optional attachment (PDF URL, snapshot, or base64 file)

  • attach — attach a file to an existing item (supports pdf_url, snapshot_url, or file via base64)

  • create_note — create a note on an existing item

  • update_item — update metadata, tags, or collections

  • trash_item — move a note or attachment to trash

All tools that operate on library data accept an optional group_id parameter. Omit it for the personal library; pass a group ID (from list_groups) to operate on a group library.

Features

  • Server instructions — workflow guidance injected once at init, not per-tool

  • Progress notifications — multi-step operations (attach, save with attachment, read) emit MCP progress events

  • Group library support — call list_groups to discover groups, pass group_id to any tool

  • Smart author parsing — handles "Last, First", suffixes (Jr., III), and institutional authors

  • Curated responsesget_item returns only non-empty, agent-relevant fields; search results are compact summaries

Deploy

Install mcp-deploy and deploy to Cloudflare Workers:

npm install -g mcp-deploy
mcp-deploy login
mcp-deploy add upascal/zotero-assistant-mcp
mcp-deploy deploy zotero-assistant-mcp

Or use the web UI: mcp-deploy gui

How it works

This repo contains only MCP logic. Auth, deployment, and UI are handled by mcp-deploy (npm install -g mcp-deploy). The repo ships:

  • src/ — MCP server code (Cloudflare Workers + Durable Objects)

  • mcp-deploy.json — deployment contract (secrets, config, worker settings)

Configuration

Secret

Required

Description

ZOTERO_API_KEY

Yes

Zotero API key

ZOTERO_LIBRARY_ID

Yes

Your numeric user library ID

Local development

npm install

# Create .dev.vars with your Zotero credentials:
# ZOTERO_API_KEY=your-api-key
# ZOTERO_LIBRARY_ID=your-library-id

npx wrangler dev

Testing

npm test

Integration tests run against a live Zotero library. Set .dev.vars with your credentials. Tests create temporary items/collections and clean up after themselves.

Release

Tag a version to trigger the GitHub Actions release workflow:

git tag v0.5.0
git push --tags

This builds worker.mjs and publishes it alongside mcp-deploy.json as release assets. mcp-deploy fetches these assets to deploy the worker.

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/upascal/zotero-assistant-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server