Model Context Protocol server for Zotero
This project is a python-based server that implements the Model Context Protocol (MCP)β for Zoteroβ.
Features
This MCP server provides the following tools:
zotero_search_items
: Search for items in your Zotero library using a text queryzotero_item_metadata
: Get detailed information about a specific Zotero itemzotero_item_fulltext
: Get the full text of a specific Zotero item
These can be discovered and accessed through the MCP Inspectorβ or any other MCP clientβ.
Each tool returns formatted text containing relevant information from your Zotero items.
Installation
To use this with Claude Desktop, add the following to the mcpServers
configuration:
"zotero": {
"command": "uvx",
"args": ["zotero-mcp"],
"env": {
"ZOTERO_LOCAL": "true"
}
}
The following environment variables are supported:
ZOTERO_LOCAL=true
: Use the local Zotero API (default: false)ZOTERO_LIBRARY_ID
: Your Zotero library ID (not required for the local API)ZOTERO_LIBRARY_TYPE
: The type of library (user or group, default: user)ZOTERO_API_KEY
: Your Zotero API key (not required for the local API)
You can find your library ID and create an API key in your Zotero account settings: https://www.zotero.org/settings/keysβ
The local Zotero APIβ can be used with Zotero 7 running on the same machine.
n.b. An upcoming Zotero release is needed to support the fulltext API locally: https://github.com/zotero/zotero/pull/5004β
Development
- Clone this repository
- Install dependencies with uvβ by running:
uv sync
- Create a
.env
file in the project root with the environment variables above
Start the MCP Inspectorβ for local development:
npx @modelcontextprotocol/inspector uv run zotero-mcp
Running Tests
To run the test suite:
uv run pytest