Zotero MCP Server
@swairshah
MCP server to expose local zotero repository to MCP clients
Overview
What is Zotero MCP Server?
It is a Model Context Protocol server that lets MCP clients (e.g., Anthropic Claude App, Goose, and possibly VS Code Cline) interact with your local Zotero repository. The server enables programmatic access to your Zotero library, allowing you to search papers, manage notes, and more. It is designed for users who want AI-driven tools to query and modify their Zotero collections.
How to use Zotero MCP Server?
Install dependencies with pip install -e . and create a .env file with ZOTERO_API_KEY and ZOTERO_USER_ID. Integrate with the Anthropic Desktop app by adding the server configuration to claude_desktop_config.json. An alternative SQLite–database mode is available, which bypasses the Zotero API and requires closing Zotero before use.
Key features of Zotero MCP Server
- Search papers by tags.
- Get paper details and attached notes.
- Add notes to papers.
- Direct SQLite database access as an alternative.
Use cases of Zotero MCP Server
- Search your Zotero library by tags using natural language.
- Retrieve details and notes for a specific paper.
- Append new notes to existing papers through an AI assistant.
- Manage your Zotero collection without manual browsing.
FAQ from Zotero MCP Server
How do I obtain the Zotero API key and user ID?
You can get them from Zotero's settings page. Add the credentials to a .env file in the server root directory.
Is there a way to use the server without API keys?
Yes, the project provides an alternative SQLite database server (zotero_mcp/db_server.py) that accesses your local Zotero SQLite database directly, bypassing the Zotero API entirely.
What are the runtime requirements for the SQLite alternative?
You must close Zotero completely before using the SQLite mode, because SQLite locks the database when Zotero is running.
Which transport or authentication does the server support?
The README only describes local configuration for the Anthropic Desktop app via claude_desktop_config.json and does not specify additional transports or authentication methods beyond the Zotero API key.