home / mcp / zotero mcp server
Model Context Protocol (MCP) server for the Zotero API, in Python
Configuration
View docs{
"mcpServers": {
"kujenga-zotero-mcp": {
"command": "uvx",
"args": [
"--upgrade",
"zotero-mcp"
],
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}You can access your Zotero library from AI assistants by running the Model Context Protocol (MCP) server for Zotero. This MCP server exposes targeted Zotero interactions so you can search items, view metadata, and retrieve full-text content within your conversational or automation flows.
You connect an MCP client to the Zotero MCP server to perform common Zotero actions. Start the local server using your preferred method, then in your MCP client configuration, point to the server and begin issuing requests. The main actions you can perform are: searching for items with a text query, getting item metadata, and retrieving the full text of items.
Typical usage patterns include: search for items by a topic, fetch detailed metadata for a selected item, then pull the full-text content when you need to read or extract data from PDFs. You can chain these actions to build workflows like literature reviews, bibliographic summaries, or source extraction for writing assistants.
Prerequisites: you need a Python runtime and/or a container runtime, plus an MCP client to connect to the server. The following installation methods show concrete commands you can run.
Option A: Run via the Ultralight VM (uvx) for a local Python MCP server and enable Zotero local API usage.
Option B: Run in Docker if you prefer containerized execution and the Zotero Web API.
To enable local Zotero API access, ensure you toggle the Zotero communication setting in Zotero before starting the MCP server. If you want to use the local API fully, you may need a Zotero Beta Build for full-item content retrieval.
The server supports two local startup configurations. Use one that fits your environment and adjust environment variables as needed for your Zotero setup.
Environment variables you may configure include the Zotero local flag, API key, and library ID. Keep these values secure and do not expose them in public configurations.
If you run the Docker container, pass the Zotero API key and library ID as environment variables to ensure the server can access your library. When using the local UVX flow, you can request upgrades to the MCP runtime and set local Zotero flags accordingly.
When starting from development or testing environments, you can use the MCP Inspector to verify tool availability and item flows as you test search, metadata, and full-text retrieval.
Limit access to the MCP server to trusted clients. Use network access controls and API keys where applicable. Regularly update the MCP runtime and keep Zotero API access keys rotated as needed.
If a request cannot reach Zotero, verify that Zotero is running (for local API) or that your API key and library ID are correct for the Web API. Check that the MCP server process has the required permissions to access Zotero endpoints.
Search your Zotero library for items matching a text query and return formatted results that include item titles, creators, dates, and IDs.
Retrieve detailed metadata for a specific Zotero item, including metadata fields such as title, creators, date, item type, and extra fields.
Obtain the full text content of a Zotero item, such as the PDF contents, for detailed reading or extraction.