This project is a python-based server that implements the Model Context Protocol (MCP) for Zotero.
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.
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: zotero/zotero#5004
- 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
To run the test suite:
uv run pytest