The Zotero MCP server acts as a bridge between personal research libraries and AI assistants. In simple terms, it allows an AI like Claude to "look into" a user's Zotero collection to find specific academic papers, books, or articles. Instead of a user having to manually copy and paste citation info or PDF text into a chat window, this tool lets the AI browse, search, and read the contents of a library directly to help with drafting bibliographies or summarizing complex research. Under the hood, this Python-based server provides three primary tools that AI agents can use sequentially to complete sophisticated tasks. The `zotero_search_items` tool identifies relevant entries via text queries, while `zotero_item_metadata` pulls detailed bibliographic data for precise referencing. Most impressively, the `zotero_item_fulltext` tool allows the AI to extract the actual text content from stored PDFs, enabling deep analysis of document contents. This functionality can be powered either by the Zotero Web API for cloud-based access or a local API for those who prefer the speed and privacy of the desktop application. For developers and researchers building custom AI workflows, this server is highly flexible and easy to deploy. It supports multiple installation methods, including Docker containers for isolated environments and `uvx` for quick local execution. By standardizing Zotero interactions through the Model Context Protocol, it eliminates the need for developers to write custom scraping or API-handling code for every research project. This makes it an essential utility for anyone wanting to give their LLM-powered applications a "scholarly memory" capable of synthesizing vast amounts of academic data with minimal friction.
Category: Files, Documents & PDFs
Tags: academic, bibliography, pdf, research, zotero
uvx (via the uv package manager) or Docker. You must first choose between the Local API or the Web API.claude_desktop_config.json (or equivalent MCP settings file for Cursor/Cline):uvx (Local API) json { "mcpServers": { "zotero": { "command": "uvx", "args": ["--upgrade", "zotero-mcp"], "env": { "ZOTERO_LOCAL": "true", "ZOTERO_API_KEY": "", "ZOTERO_LIBRARY_ID": "" } } } }PLACEHOLDER with your actual Zotero API key and User ID. json { "mcpServers": { "zotero": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "ZOTERO_API_KEY=PLACEHOLDER", "-e", "ZOTERO_LIBRARY_ID=PLACEHOLDER", "ghcr.io/kujenga/zotero-mcp:main" ] } } }ZOTERO_LOCAL: Set to true for local app access, false for web API. - ZOTERO_API_KEY: Required for Web API. - ZOTERO_LIBRARY_ID: Required for Web API. - ZOTERO_LIBRARY_TYPE: Set to user (default) or group.zotero_search_items: Search for items in your Zotero library using a text query. * zotero_item_metadata: Get detailed metadata (author, date, tags, etc.) about a specific Zotero item. * zotero_item_fulltext: Get the full text content of a specific Zotero item (e.g., PDF contents).zotero_search_items to find the papers, zotero_item_fulltext to read the PDFs, and generates a structured report.zotero_item_metadata, it can format citations in any style (APA, BibTeX, Chicago) or verify if a citation in a draft is accurate. Example: A user says, "I'm writing a paper and need the BibTeX entry for the paper by Smith about neural radiance fields." The AI searches for the item, retrieves its metadata, and outputs the perfectly formatted BibTeX code.zotero_item_fulltext tool, the AI can "read" through the user's library to find specific mentions of data points or evidence that match a natural language query. Example: A user asks, "Which paper in my library mentioned a 15% increase in efficiency using the 'Green-Algorithm'?" The AI searches for likely candidates, checks their full text, and replies: "That was 'Sustainable AI' by Jones et al. (2022), located in the Results section on page 4."Part of MCP Servers
The Zotero MCP server allows AI assistants to interact directly with your Zotero reference library. It provides three primary tools: searching references with text queries, retrieving complete item metadata like authors and dates, and extracting the full text from attached document files like PDFs. This lets language models perform literature synthesis, verify citations, and answer questions based on your academic research.
You can run the server via uvx or Docker. To install using uvx with Claude Desktop, add a new server entry to your claude_desktop_config.json file setting the command to uvx with the argument zotero-mcp@latest. You must configure the environment variables ZOTERO_LOCAL, ZOTERO_API_KEY, and ZOTERO_LIBRARY_ID according to whether you use the local desktop client or the Zotero Web API.
The local API communicates directly with the Zotero desktop app running on your machine, providing faster responses, local privacy, and citation key search. The Web API connects over the internet to Zotero cloud servers using an API key and user ID, which is suitable for containerized setups or remote environments where the desktop application is not running.
The server works with any client that implements the Model Context Protocol, including Claude Desktop, Cursor, Cline, and development environments running the MCP Inspector. Once configured in the client settings file, the assistant automatically detects and calls the search, metadata, and full-text tools as needed during conversational research prompts.
Yes, the Zotero MCP server is open source. The project source code, issue tracking, and release management are maintained publicly on GitHub under the repository kujenga/zotero-mcp, and the Python package is distributed through PyPI and GitHub Container Registry.