zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
claude mcp add --transport stdio kujenga-zotero-mcp uvx --upgrade zotero-mcp \ --env ZOTERO_LOCAL="true" \ --env ZOTERO_API_KEY="" \ --env ZOTERO_LIBRARY_ID="" \ --env ZOTERO_LIBRARY_TYPE="user"
How to use
This MCP server provides a lightweight bridge to your Zotero library, exposing a small but practical set of tools through the MCP interface. The available tools include zotero_search_items for searching items in your library by text query, zotero_item_metadata for retrieving detailed metadata about a specific item, and zotero_item_fulltext for obtaining the full text contents of an item when available. These tools are designed to work with MCP clients and the MCP Inspector, allowing you to discover items and then fetch richer details or content in a predictable, structured way. Use the tools in sequence if needed: search for items, select an item, then request its metadata or full text to power an AI assistant’s understanding and summarization capabilities.
How to install
Prerequisites:\n- Python 3.9+ (or a compatible Python environment)\n- Optional but recommended: uv (the Python runner) if you want to run via uvx/uv locally, as described in the README.\n\nInstallation steps:\n1) Install Python and a virtual environment tool if you don’t have them.\n2) Install uv, then install the Zotero MCP package (zotero-mcp) from PyPI or from source. Example (via pipx or pip):\n\nbash\n# Using pip (global or within a virtualenv)\npip install uv # if not already installed\npip install zotero-mcp # install the MCP server package\n
\n3) Ensure you have a Zotero API key and library ID if you plan to use the Web API, or enable the local Zotero API in the Zotero app if you prefer the local route.\n4) Create an environment file or export the necessary environment variables (ZOTERO_LOCAL, ZOTERO_API_KEY, ZOTERO_LIBRARY_ID, ZOTERO_LIBRARY_TYPE). For local API, set ZOTERO_LOCAL=true and omit API_KEY and LIBRARY_ID.\n5) Start the server using uvx as shown below (or follow your preferred development workflow):\n\nbash\nuvx run zotero-mcp # or uv run zotero-mcp depending on your setup\n
\nIf you prefer Docker, refer to the Docker instructions in the project README to pull and run the container with the appropriate environment variables.
Additional notes
Tips and caveats:\n- You can choose between the local Zotero API and the Zotero Web API. The local API can be faster but requires the Zotero desktop application to be running with API access enabled. The Web API requires an API key and library ID.\n- When using the local API for the fulltext endpoint, a Zotero Beta Build may be required (as noted in the README). If you don’t want to deal with beta builds, use the Web API instead.\n- If you’re deploying with Docker, you can easily pass ZOTERO_API_KEY and ZOTERO_LIBRARY_ID via environment flags in the docker run command.\n- The configuration field ZOTERO_LIBRARY_TYPE defaults to user but can be set to group if you’re querying a group library.\n- To upgrade or test locally, you can use uvx --upgrade zotero-mcp to fetch the latest release.\n- See the README’s development and testing sections for running tests and inspector-based debugging workflows.\n- For debugging, the MCP Inspector provides a convenient UI to explore available tools and responses.
Related MCP Servers
web-eval-agent
An MCP server that autonomously evaluates web applications.
mcp-neo4j
Neo4j Labs Model Context Protocol servers
Gitingest
mcp server for gitingest
fhir
FHIR MCP Server – helping you expose any FHIR Server or API as a MCP Server.
unitree-go2
The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.
sympy
A MCP server for symbolic manipulation of mathematical expressions