Zotero Server
FreeNot checkedGives Claude full read/write access to your Zotero reference library, enabling search, collection management, and article addition through natural language.
About
Gives Claude full read/write access to your Zotero reference library, enabling search, collection management, and article addition through natural language.
README
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_library |
Search your Zotero library by keyword, title, author, or phrase |
get_collections |
List all collections (folders) with keys and item counts |
get_collection_items |
Get all items in a specific collection |
get_item_details |
Get full metadata for a specific item by key |
get_recent_items |
Get the most recently added items |
Write
| Tool | Description |
|---|---|
add_article |
Add a journal article to your library (pairs well with CrossRef, Scopus, ERIC, etc.) |
add_multiple_articles |
Batch-add articles from search results |
create_collection |
Create a new collection or sub-collection |
add_item_to_collection |
Add an existing item to a collection |
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.txt
Or run directly with uv (dependencies are declared inline):
uv run server.py
3. 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
Installing Zotero Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/SMABoundless/zotero-mcp-serverFAQ
Is Zotero Server MCP free?
Yes, Zotero Server MCP is free — one-click install via Unyly at no cost.
Does Zotero Server need an API key?
No, Zotero Server runs without API keys or environment variables.
Is Zotero Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Zotero Server in Claude Desktop, Claude Code or Cursor?
Open Zotero Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Zotero Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
