A MCP (Model Context Protocol) server to let your MCP clients (e.g. Anthropic Claude App, Goose, possibly vscode Cline too) interact with your local Zotero repository. This server enables programmatic access to your Zotero library, allowing you to search papers, manage notes, and more.
pip install -e .
.env
file in the root directory with your Zotero credentials:ZOTERO_API_KEY=your_api_key_here
ZOTERO_USER_ID=your_user_id_here
You can get your Zotero API key and user ID from Zotero's settings page.
To integrate with the Anthropic Desktop app, add the following configuration to ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"zotero-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/Users/swairshah/work/research/zotero-mcp",
"run",
"python",
"-m",
"zotero_mcp.server"
]
}
}
}
If this gives an error like
{"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}
error: unexpected argument '--directory' found
Then use the following config, make sure to do uv venv
; source .venv/bin/activate
; uv pip install ".[dev]"
to make sure the server can be run with all dependencies.
{
"mcpServers": {
"zotero-mcp-server": {
"command": "bash",
"args": [
"-c",
"cd /Users/shahswai/personal/zotero-mcp-server && source .venv/bin/activate && python -m zotero_mcp.server"
]
}
}
}
The server allows you to:
{
"mcpServers": {
"zotero-mcp-server": {
"env": {},
"args": [
"--directory",
"/Users/swairshah/work/research/zotero-mcp",
"run",
"python",
"-m",
"zotero_mcp.server"
],
"command": "uv"
}
}
}
Seamless access to top MCP servers powering the future of AI integration.