loading…
Search for a command to run...
loading…
MCP server that enables one-click saving of open scholarly sources (arXiv, bioRxiv, medRxiv, etc.) into Zotero with automatic metadata extraction and PDF attach
MCP server that enables one-click saving of open scholarly sources (arXiv, bioRxiv, medRxiv, etc.) into Zotero with automatic metadata extraction and PDF attachment.

MCP Server for Zotero Connector
Python 3.10+ MCP License: MIT Platforms
🌍 Language / 语言选择: 🇺🇸 English | 🇨🇳 中文
A lightweight, production-ready MCP server that brings open scholarly sources into Zotero with one command.
❤️ Like ZotLink? Give it a star 🌟 to support the development!
~/.zotlink/zotlink.logClick the image above to watch a 1-minute demo video on Bilibili.
pip install zotlink
python -m playwright install chromium
Requires Python 3.10+. Includes full browser support for all preprint servers by default!
Use zotlink init to automatically generate MCP configuration:
# Auto-detect Zotero path
zotlink init
# Or specify path manually
zotlink init /Users/yourname/Zotero
The command outputs ready-to-use configuration JSON, for example:
{
"mcpServers": {
"zotlink": {
"command": "/opt/homebrew/.../zotlink",
"args": [],
"env": {
"ZOTLINK_ZOTERO_ROOT": "/Users/yourname/Zotero"
}
}
}
}
Copy the generated configuration to your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json~/.config/claude/claude_desktop_config.json ~/AppData/Roaming/Claude/claude_desktop_config.jsonRestart Claude Desktop and you're ready to go!
git clone https://github.com/your-org/ZotLink.git
cd ZotLink
pip install -e .
python -m playwright install chromium
If you need manual configuration (without using zotlink init), see examples below:
Recommended configuration (simple - just specify Zotero directory):
{
"mcpServers": {
"zotlink": {
"command": "/path/to/zotlink",
"args": [],
"env": {
"ZOTLINK_ZOTERO_ROOT": "/Users/yourname/Zotero"
}
}
}
}
Advanced configuration (specify paths separately):
{
"mcpServers": {
"zotlink": {
"command": "/path/to/zotlink",
"args": [],
"env": {
"ZOTLINK_ZOTERO_DB": "/Users/yourname/Zotero/zotero.sqlite",
"ZOTLINK_ZOTERO_DIR": "/Users/yourname/Zotero/storage"
}
}
}
}
Minimal config (auto-detect Zotero paths):
{
"mcpServers": {
"zotlink": { "command": "zotlink", "args": [] }
}
}
Note: Using env variables follows MCP standard and works with all MCP clients (Claude Desktop, Cherry Studio, etc.).
check_zotero_status: Check if Zotero is running and reachableget_zotero_collections: List collections (tree view) from the local DBsave_paper_to_zotero: Save a paper by URL (arXiv/CVF/rxiv), attach PDF/metadataextract_arxiv_metadata: Extract full arXiv metadata (title/authors/subjects/DOI/comment)Logs are written to ~/.zotlink/zotlink.log.
Browser-driven extraction is included by default! All preprint servers (bioRxiv, medRxiv, chemRxiv) work automatically.
The server switches to browser strategy automatically when needed (falls back to HTTP mode on Windows).
Linux may require additional system dependencies:
sudo apt-get install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libgbm1 libasound2
Recommended - Single directory:
# macOS/Linux
export ZOTLINK_ZOTERO_ROOT=/Users/yourname/Zotero
# Windows PowerShell
$env:ZOTLINK_ZOTERO_ROOT='C:\Users\YourName\Zotero'
Advanced - Separate paths:
# macOS/Linux
export ZOTLINK_ZOTERO_DB=/Users/yourname/Zotero/zotero.sqlite
export ZOTLINK_ZOTERO_DIR=/Users/yourname/Zotero/storage
# Windows PowerShell
$env:ZOTLINK_ZOTERO_DB='C:\Users\YourName\Zotero\zotero.sqlite'
$env:ZOTLINK_ZOTERO_DIR='C:\Users\YourName\Zotero\storage'
Local config file ~/.zotlink/config.json:
{
"zotero": {
"database_path": "/Users/yourname/Zotero/zotero.sqlite",
"storage_dir": "/Users/yourname/Zotero/storage"
}
}
Configuration precedence: ENV vars > MCP env config > local config file > auto-detection
Auth-required sources (e.g., Nature) are planned via bookmark-based cookie sync.
pip install -e .
python -m playwright install chromium
zotlink # or: python run_server.py
See docs/DEVELOPMENT.md for code structure, adding new extractors, and release tips.
Sources
Stability & Quality
Integration & DX
MIT (see SPDX identifier in packaging metadata)
Made with ❤️ for Zotero community
Run in your terminal:
claude mcp add zotlink -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.