Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. 🧠 Knowledge & Memory
  3. Zotero Library Mcp
Z
Health: Not checked yetWe have not completed a health check for this listing yet.Last checked 8/11/2026, 12:11:44 AM

Zotero Library Mcp

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository

Add papers and books to Zotero by DOI, arXiv ID, or ISBN and manage your library

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "zotero-library-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "zotero-library-mcp"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing Alternatives🧠 More in Knowledge & Memory

Documentation Overview

zotero-library-mcp

An MCP server that lets Claude, Codex, and ChatGPT add papers and books to your Zotero library by DOI, arXiv ID, or ISBN β€” and manage your collections, tags, and items.

The server supports both MCP transports used by these clients:

  • stdio (default) for Claude Code, Claude Desktop, Codex CLI/IDE, and the ChatGPT desktop app
  • Streamable HTTP for a hosted ChatGPT app or any remote MCP client

Tools

Adding papers

  • add_paper_by_doi β€” Resolve a DOI via CrossRef and add the paper to Zotero (with duplicate detection)
  • add_papers_by_dois β€” Batch-add up to 50 papers at once
  • add_paper_by_arxiv_id β€” Add a preprint by arXiv ID (uses DOI when available, falls back to arXiv metadata)
  • add_item_from_metadata β€” Create any supported Zotero item type from validated manual metadata

Adding books

  • add_book_by_isbn β€” Resolve an ISBN via Open Library and add the book to Zotero (with duplicate detection)

Searching & browsing

  • search_library β€” Search your Zotero library by title, author, tag, etc., paginated via start/limit (falls back to fuzzy matching when the exact search returns no results)
  • get_item_details β€” View full metadata for any item
  • get_recent_items β€” List recently added items
  • get_unfiled_items β€” Get items not in any collection
  • search_fulltext β€” Search Zotero metadata and indexed full text
  • find_duplicates β€” Find duplicate items by DOI, ISBN, or normalized title
  • list_attachments β€” List every attachment and choose a specific PDF key
  • health_check β€” Verify library credentials, access, and storage configuration

Reading & annotating

  • get_item_fulltext β€” Return bounded plain text from Zotero's index or a PDF, without leaking temporary paths
  • get_bibtex β€” Read-only BibTeX/BibLaTeX export for items, a collection, or the full library
  • save_bibtex β€” Save an export to an authorized local path
  • get_annotations β€” List all highlights and annotations on a paper's PDF
  • create_annotation β€” Highlight a text passage in a PDF (searches for the exact text, creates a visible highlight in Zotero's reader, and returns a preview image for verification). Smart overlap handling: exact duplicates update the existing comment; sub-passages get a contrasting highlight color automatically.
  • add_note β€” Add a note to an item
  • list_notes, update_note, delete_note β€” Manage existing notes
  • update_annotation, delete_annotation β€” Edit or remove annotations

File attachments

  • attach_file β€” Attach a local file over stdio or a ChatGPT file input over HTTP
  • download_pdf β€” Return a remote-safe MCP file resource
  • save_pdf β€” Save a PDF to an authorized local path

Collections

  • list_collections β€” List all collections (with nesting)
  • create_collection β€” Create a new collection (optionally nested under a parent)
  • get_collection_items β€” Browse items in a collection, paginated via start/limit
  • add_to_collection β€” Add an existing item to a collection
  • remove_from_collection β€” Remove an item from a collection (keeps it in your library)
  • rename_collection, move_collection β€” Reorganize collections

Tags

  • list_tags β€” List all tags in your library
  • add_tags β€” Add one or more tags to an item (with optional color)
  • remove_tags β€” Remove tags from an item
  • delete_tags β€” Delete tags from the entire library
  • set_tag_color β€” Assign a color to a tag (appears in Zotero's tag selector)
  • rename_tag β€” Rename a tag across all items in your library
  • unset_tag_color β€” Remove a tag color without deleting the tag

Verification

  • verify_items β€” Re-check recent items against CrossRef to catch bad DOIs or title mismatches

Deleting

  • delete_item β€” Permanently delete an item from your library
  • delete_collection β€” Permanently delete a collection
  • trash_item, restore_item β€” Prefer reversible trash operations for ordinary cleanup

The server also exposes the standard read-only search and fetch tool shapes used by ChatGPT company knowledge and deep research.

Prerequisites

  1. A Zotero account
  2. A Zotero API key with write permissions: https://www.zotero.org/settings/keys
  3. Your Zotero library ID (shown on the same page, or in your profile URL)
  4. uv installed

Quick Start

Codex and the ChatGPT desktop app

Codex and the ChatGPT desktop app share MCP configuration on the same Codex host. Add the server once:

bash
codex mcp add zotero \
  --env ZOTERO_LIBRARY_ID=your_library_id \
  --env ZOTERO_API_KEY=your_api_key \
  -- uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcp

Then restart Codex or the ChatGPT desktop app. In Codex, use /mcp to confirm that zotero is connected. In ChatGPT desktop, open Settings β†’ MCP servers to view the same server.

For WebDAV storage, add the three ZOTERO_WEBDAV_* values shown in the WebDAV example. If the desktop app cannot find uvx, replace it with the full path returned by which uvx.

You can also configure the server directly in ~/.codex/config.toml:

toml
[mcp_servers.zotero]
command = "/full/path/to/uvx"
args = ["--from", "git+https://github.com/RaulSimpetru/zotero-library-mcp", "zotero-mcp"]
env_vars = ["ZOTERO_LIBRARY_ID", "ZOTERO_API_KEY", "ZOTERO_LIBRARY_TYPE", "CROSSREF_MAILTO", "ZOTERO_WEBDAV_URL", "ZOTERO_WEBDAV_USER", "ZOTERO_WEBDAV_PASSWORD"]
startup_timeout_sec = 30
tool_timeout_sec = 120

With env_vars, start Codex/ChatGPT from an environment that contains those variables. Use [mcp_servers.zotero.env] instead if you intentionally want to store their values in the config file.

Claude Code

Terminal
claude mcp add zotero \
  -e ZOTERO_LIBRARY_ID=your_library_id \
  -e ZOTERO_API_KEY=your_api_key \
  -- uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcp

WebDAV setup

To use WebDAV file storage (e.g. Synology, Nextcloud), include the WebDAV variables:

Terminal
claude mcp add zotero \
  -e ZOTERO_LIBRARY_ID=your_library_id \
  -e ZOTERO_API_KEY=your_api_key \
  -e ZOTERO_WEBDAV_URL=https://your-webdav-server.com \
  -e ZOTERO_WEBDAV_USER=your_username \
  -e ZOTERO_WEBDAV_PASSWORD=your_password \
  -- uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcp

Claude Desktop

Add this to your claude_desktop_config.json:

config.json
{
  "mcpServers": {
    "zotero": {
      "command": "/full/path/to/uvx",
      "args": ["--from", "git+https://github.com/RaulSimpetru/zotero-library-mcp", "zotero-mcp"],
      "env": {
        "ZOTERO_LIBRARY_ID": "your_library_id",
        "ZOTERO_API_KEY": "your_api_key",
        "ZOTERO_WEBDAV_URL": "https://your-webdav-server.com",
        "ZOTERO_WEBDAV_USER": "your_username",
        "ZOTERO_WEBDAV_PASSWORD": "your_password"
      }
    }
  }
}

Note: Claude Desktop doesn't inherit your shell's PATH, so you need the full path to uvx. Find it with which uvx in your terminal.

ChatGPT on the web (Apps SDK / developer mode)

ChatGPT web connects to an HTTPS Streamable HTTP endpoint. Start the server locally with the HTTP transport, then make it reachable through Secure MCP Tunnel or another authenticated HTTPS deployment:

bash
ZOTERO_LIBRARY_ID=your_id ZOTERO_API_KEY=your_key \
  uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcp \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8000 \
  --allowed-host your-tunnel.example.com

The MCP endpoint is https://your-tunnel.example.com/mcp. Enable developer mode in ChatGPT, create a developer-mode app, and enter that URL as the MCP server URL. See OpenAI's Connect from ChatGPT guide for the current UI flow.

Security: The safest personal setup is OpenAI Secure MCP Tunnel with the MCP server bound to loopback. HTTP mode disables all server-path reads and writes by default. attach_file accepts ChatGPT's authorized file object, while download_pdf returns an opaque MCP resource link. Safety annotations are approval hints, not an authorization boundary.

For a public single-library deployment, configure an external OAuth 2.1 identity provider. The server validates JWT access tokens against its JWKS endpoint:

server.ts
export ZOTERO_MCP_OAUTH_ISSUER=https://auth.example.com
export ZOTERO_MCP_OAUTH_RESOURCE=https://zotero.example.com
export ZOTERO_MCP_OAUTH_JWKS_URL=https://auth.example.com/.well-known/jwks.json
export ZOTERO_MCP_OAUTH_SCOPES=zotero:read,zotero:write

The authorization server must publish OAuth/OIDC discovery metadata, support the MCP OAuth 2.1 flow with PKCE, issue tokens for ZOTERO_MCP_OAUTH_RESOURCE, and include the configured scopes. See OpenAI's authentication guide. For testing behind an already authenticated gateway only, --allow-unauthenticated-http explicitly acknowledges an unauthenticated non-loopback listener.

This process still uses one server-side Zotero library key. A true multi-user service must map the verified OAuth identity to separate Zotero credentials and enforce per-user authorization; that deployment architecture is intentionally outside this personal-server package.

If an HTTP deployment genuinely needs server paths, enable them only inside confined roots:

bash
zotero-mcp --transport streamable-http \
  --allow-server-files \
  --file-root /srv/zotero-mcp/exports

HTTP launch settings can also be supplied as environment variables:

CLI optionEnvironment variableDefault
--transportZOTERO_MCP_TRANSPORTstdio
--hostZOTERO_MCP_HOST127.0.0.1
--portZOTERO_MCP_PORT or PORT8000
--http-pathZOTERO_MCP_HTTP_PATH/mcp
--allowed-hostZOTERO_MCP_ALLOWED_HOSTS (comma-separated)local hosts
--allowed-originZOTERO_MCP_ALLOWED_ORIGINS (comma-separated)local origins
--stateless-httpZOTERO_MCP_STATELESS_HTTPfalse
--allow-unauthenticated-httpZOTERO_MCP_ALLOW_UNAUTHENTICATED_HTTPfalse
--allow-server-filesZOTERO_MCP_ALLOW_SERVER_FILESfalse in HTTP mode
--file-rootZOTERO_MCP_FILE_ROOTS (comma-separated)none

Run standalone

bash
ZOTERO_LIBRARY_ID=your_id ZOTERO_API_KEY=your_key \
  uvx --from git+https://github.com/RaulSimpetru/zotero-library-mcp zotero-mcp

Environment Variables

VariableRequiredDescription
ZOTERO_LIBRARY_IDYesYour Zotero user or group library ID
ZOTERO_API_KEYYesAPI key with read/write permissions
ZOTERO_LIBRARY_TYPENouser (default) or group
CROSSREF_MAILTONoYour email for CrossRef polite pool (faster API access)
UNPAYWALL_EMAILNoContact email for open-access PDF lookup (defaults to CROSSREF_MAILTO)
ZOTERO_WEBDAV_URLNoWebDAV URL for file storage (e.g. https://dav.example.com)
ZOTERO_WEBDAV_USERNoWebDAV username
ZOTERO_WEBDAV_PASSWORDNoWebDAV password
ZOTERO_MCP_OAUTH_ISSUERNoExternal OAuth/OIDC issuer URL for protected HTTP deployments
ZOTERO_MCP_OAUTH_RESOURCENoCanonical HTTPS MCP resource/audience URL
ZOTERO_MCP_OAUTH_JWKS_URLNoJWKS URL used to verify JWT access tokens
ZOTERO_MCP_OAUTH_SCOPESNoComma-separated required scopes (defaults to read and write)
ZOTERO_MCP_FILE_ROOTSNoComma-separated allowed roots when HTTP server paths are enabled

Note: If all three ZOTERO_WEBDAV_* variables are set, file attachments are uploaded to your WebDAV server instead of Zotero's built-in storage. The server automatically appends /zotero to the base URL, matching Zotero Desktop's behavior.

Upgrading to 0.8

Two path-writing operations were split from their read-only counterparts so remote clients can apply correct safety approvals:

  • get_bibtex(save_path=...) is now save_bibtex(save_path=...); get_bibtex only returns data.
  • download_pdf(save_path=...) is now save_pdf(save_path=...); download_pdf returns an opaque MCP resource link.

Existing read-only calls to get_bibtex and download_pdf continue to work.

0.8.1

  • PDF and annotation-preview resources now keep their precise MIME type when read by clients.
  • PDF downloads report progress and return a clear WebDAV timeout error.
  • health_check reports API-key write permission without modifying the library.
  • Server instructions are shorter, reducing repeated client context usage.

How it works

  1. You provide a DOI, arXiv ID, or ISBN
  2. The server queries the appropriate API to get full metadata:
    • DOI β†’ CrossRef API
    • arXiv ID β†’ arXiv API (with CrossRef fallback when a DOI exists)
    • ISBN β†’ Open Library API
  3. Metadata is mapped to Zotero's item format (title, authors, journal/publisher, date, etc.)
  4. The item is created in your Zotero library via the Zotero Web API

License

MIT

mcp-name: io.github.RaulSimpetru/zotero-library-mcp

Related MCP Servers

View all in Knowledge & Memory View all alternatives
  • Moxie Docs MCP logoMoxie Docs MCP
    β˜… Featured

    MCP & Agent Skills for Automated Documentation, and codebase conventions + context

    🧠 Knowledge & Memory17 views
    Compare vs Moxie Docs MCP β†’
  • Mcp Obsidian logoMcp Obsidian

    Universal AI bridge for Obsidian vaults using MCP. Provides safe read/write access to notes with 11 comprehensive methods for vault operations including search, batch operations, tag management, and frontmatter handling. Works with Claude, ChatGPT, and any MCP-compatible AI assistant.

    🧠 Knowledge & Memory2 views
    Compare vs Mcp Obsidian β†’
  • Mcp Server logoMcp Server

    Apple Developer Documentation with Semantic Search, RAG, and AI reranking for MCP clients

    🧠 Knowledge & Memory0 views
    Compare vs Mcp Server β†’
  • M
    MCP for Zotero

    Connect your Zotero reference library to AI assistants via Model Context Protocol.

    🧠 Knowledge & Memory0 views
    Compare vs MCP for Zotero β†’

Frequently Asked Questions about Zotero Library Mcp

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "zotero-library-mcp": { "command": "npx", "args": ["-y", "zotero-library-mcp"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewZotero Library Mcp AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/zotero-library-mcp?style=directory)](https://allmcps.com/mcp/zotero-library-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/zotero-library-mcp"><img src="https://allmcps.com/api/badge/zotero-library-mcp?style=directory" alt="Zotero Library Mcp on AllMCPs" /></a>

Technical Specs & Signals

Category🧠Knowledge & Memory
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
0/5 checks healthy over the last 6h
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
27Quality signal: Emerging Β· 27/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools11/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… FeaturedAllMCPs Server logo

AllMCPs Server

The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 3,181+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in 🧠 Knowledge & Memory β†’Best MCP servers for Memory & Knowledge β†’Alternatives to Zotero Library Mcp β†’Install in Claude DesktopInstall in CursorInstall in VS Code