Zotero MCP Server
Provides read/write access to a Zotero reference library, enabling searching, browsing collections, adding articles, and organizing references through natural language.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zotero MCP ServerSearch my Zotero library for recent papers on climate change"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zotero MCP Server
An MCP (Model Context Protocol) server that gives Claude full read/write access to your Zotero reference library. Search your library, browse collections, add articles, and organize references — all through natural language.
Built with the MCP Python SDK and pyzotero.
Tools
Read
Tool | Description |
| Search your Zotero library by keyword, title, author, or phrase |
| List all collections (folders) with keys and item counts |
| Get all items in a specific collection |
| Get full metadata for a specific item by key |
| Get the most recently added items |
Write
Tool | Description |
| Add a journal article to your library (pairs well with CrossRef, Scopus, ERIC, etc.) |
| Batch-add articles from search results |
| Create a new collection or sub-collection |
| Add an existing item to a collection |
Related MCP server: Zotero MCP Connector
Setup
1. Get Zotero API credentials
Go to zotero.org/settings/keys
Create a new API key with read/write access to your library
Note your user ID (shown on the same page)
2. Install
cd zotero-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtOr run directly with uv (dependencies are declared inline):
uv run server.py3. Add to Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"zotero": {
"command": "/path/to/zotero-mcp-server/venv/bin/python",
"args": ["/path/to/zotero-mcp-server/server.py"],
"env": {
"ZOTERO_API_KEY": "your-api-key",
"ZOTERO_USER_ID": "your-user-id",
"ZOTERO_LIB_TYPE": "user"
}
}
}
}Or with uv:
{
"mcpServers": {
"zotero": {
"command": "uv",
"args": ["run", "/path/to/zotero-mcp-server/server.py"],
"env": {
"ZOTERO_API_KEY": "your-api-key",
"ZOTERO_USER_ID": "your-user-id",
"ZOTERO_LIB_TYPE": "user"
}
}
}
}Usage examples
"Search my Zotero library for papers on curiosity"
"Show me my Zotero collections"
"Add this CrossRef result to my Zotero library"
"Create a new collection called 'Literature Review' and add these 5 papers to it"
"What are the most recent items I've added to Zotero?"
Group libraries
To connect to a Zotero group library instead of your personal one, set ZOTERO_LIB_TYPE=group and use the group ID as ZOTERO_USER_ID.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SMABoundless/zotero-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server