Unofficial Zotero server: search your library, add papers by DOI, import PDFs, cite in Word
Connect Runs on your machine
claude mcp add mcp-zotero -e ZOTERO_API_KEY=<ZOTERO_API_KEY> -e ZOTERO_USER_ID=<ZOTERO_USER_ID> -e ZOTERO_LIBRARY_TYPE=<ZOTERO_LIBRARY_TYPE> -e ZOTERO_LIBRARY_ID=<ZOTERO_LIBRARY_ID> -e UNPAYWALL_EMAIL=<UNPAYWALL_EMAIL> -e UNSAFE_OPERATIONS=<UNSAFE_OPERATIONS> -- npx -y @xevos117/[email protected]
{
"mcpServers": {
"mcp-zotero": {
"command": "npx",
"args": [
"-y",
"@xevos117/[email protected]"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>",
"ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
"ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
"UNSAFE_OPERATIONS": "<UNSAFE_OPERATIONS>"
}
}
}
}
{
"mcpServers": {
"mcp-zotero": {
"command": "npx",
"args": [
"-y",
"@xevos117/[email protected]"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>",
"ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
"ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
"UNSAFE_OPERATIONS": "<UNSAFE_OPERATIONS>"
}
}
}
}
{
"servers": {
"mcp-zotero": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@xevos117/[email protected]"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>",
"ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
"ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
"UNSAFE_OPERATIONS": "<UNSAFE_OPERATIONS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
ZOTERO_API_KEYRequired, secret | Zotero Web API key (zotero.org/settings/keys) with library read/write and file access |
ZOTERO_USER_IDRequired | Your numeric Zotero user ID (shown on zotero.org/settings/keys); the default library is this user's |
ZOTERO_LIBRARY_TYPEOptional | Default library type: 'user' (personal library) or 'group' |
ZOTERO_LIBRARY_IDOptional | Numeric group ID; required when ZOTERO_LIBRARY_TYPE is 'group', otherwise defaults to ZOTERO_USER_ID |
UNPAYWALL_EMAILOptional | Email sent to the Unpaywall API to find open-access PDFs; if unset, OA PDF lookup is skipped |
UNSAFE_OPERATIONSOptional | Deletions allowed: 'none' (default, all blocked), 'items' (delete_items) or 'all' (also delete_collection) |
Details
| Package | @xevos117/[email protected] (NPM, stdio) |
| First published | 11 Nov 2026 |
| Last updated | 11 Nov 2026 |
| Registry name | io.github.Xevos117/mcp-zotero |
More search and web servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
