zotero
Model Context Protocol server for Zotero - search, cite, and manage research references in AI applications
claude mcp add --transport stdio danielostrow-zotero-mcp-server node /absolute/path/to/ZoteroMCP/dist/index.js \ --env ZOTERO_API_KEY="your_api_key_here" \ --env ZOTERO_USER_ID="your_user_id_here" \ --env ZOTERO_GROUP_ID="optional_group_id_here"
How to use
This MCP server provides programmatic access to your Zotero library, enabling AI assistants to search, retrieve, cite, and manage references directly from Zotero. The server exposes tools such as search_items to query your library with filters, get_item to fetch a specific item by key or DOI, generate_citation to produce formatted citations in styles like APA or MLA, extract_pdf_text to pull full-text from PDF attachments, and create_item / update_item / delete_items for manipulating library items. Additional capabilities include managing collections and tags, as well as browsing Zotero resources (collections, tags, and citation styles). To use these tools, connect your MCP-enabled client (for example, Claude Desktop or another integration) to the zotero MCP endpoint and pass the appropriate JSON payloads for each tool. The server handles authentication via your Zotero API key and user or group ID, so ensure those are correctly configured in your environment.
Typical usage flows include searching for relevant articles, generating citations for a bibliography, and extracting full text from PDFs for analysis. You can also create new items or organize your library by programmatically creating collections and tagging items. The included example configurations show how to wire the server into Claude Desktop, enabling direct access to Zotero tools from that environment.
How to install
Prerequisites:
- Node.js 20.16.0 or higher
- Git
- Access to a Zotero account with API permissions and an API key
Installation steps:
- Install Node and Git on your system (download from the official sites or use a package manager).
- Clone the repository and install dependencies:
git clone <repository-url>
cd zotero-mcp-server
npm install
- Build the project (if applicable):
npm run build
- Create a .env file in the project root and add your Zotero credentials:
ZOTERO_API_KEY=your_api_key_here
ZOTERO_USER_ID=your_user_id_here
# Optional for group libraries
ZOTERO_GROUP_ID=your_group_id_here
- Run the server (development):
npm run dev
- If you want to run the compiled dist directly, use the Node entry point (adjust the path as needed):
node dist/index.js
- (Optional) Integrate with Claude Desktop by pointing it to the Node entry and supplying the environment variables in the Claude config, as shown in the README example.
Additional notes
Environment variables and configuration:
- ZOTERO_API_KEY and ZOTERO_USER_ID are required for authentication with the Zotero API. Ensure the IDs match your Zotero account and API key permissions.
- For group libraries, you may need ZOTERO_GROUP_ID in addition to the user ID.
- Optional configuration like ZOTERO_BASE_URL, ZOTERO_TIMEOUT, ZOTERO_MAX_RETRIES, CACHE_ENABLED, and CACHE_TTL_SECONDS can improve performance and reliability in production.
- If Claude Desktop doesn’t display Zotero tools, verify the absolute path in claude_desktop_config.json, ensure environment variables are set, restart Claude Desktop, and check logs for errors.
- The MCP server includes rate limiting, caching, and error handling to gracefully manage API limits and transient errors.
Related MCP Servers
Remote
A type-safe solution to remote MCP communication, enabling effortless integration for centralized management of Model Context.
toolbase
A desktop application that adds powerful tools to Claude and AI platforms
docmole
Dig through any documentation with AI - MCP server for Claude, Cursor, and other AI assistants
phabricator
MCP server for Phabricator
obsidian
MCP server for Obsidian vault management - enables Claude and other AI assistants to read, write, search, and organize your notes
vscode-context
MCP Server to Connect with VS Code IDE