Lets agents work with collections and sources in a Zotero Cloud library.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add zotero-cloud --env ZOTERO_API_KEY='<ZOTERO_API_KEY>' --env ZOTERO_USER_ID='<ZOTERO_USER_ID>' -- npx mcp-zotero~/.codex/config.toml
[mcp_servers.zotero-cloud]
command = "npx"
args = ["mcp-zotero"]
env = { ZOTERO_API_KEY = "<ZOTERO_API_KEY>", ZOTERO_USER_ID = "<ZOTERO_USER_ID>" }
# codex mcp add zotero-cloud --env ZOTERO_API_KEY='<ZOTERO_API_KEY>' --env ZOTERO_USER_ID='<ZOTERO_USER_ID>' -- npx mcp-zotero~/.cursor/mcp.json
{
"mcpServers": {
"zotero-cloud": {
"command": "npx",
"args": [
"mcp-zotero"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"zotero-cloud": {
"type": "stdio",
"command": "npx",
"args": [
"mcp-zotero"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"zotero-cloud": {
"command": "npx",
"args": [
"mcp-zotero"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"zotero-cloud": {
"command": "npx",
"args": [
"mcp-zotero"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"zotero-cloud": {
"command": "npx",
"args": [
"mcp-zotero"
],
"env": {
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_USER_ID": "<ZOTERO_USER_ID>"
}
}
}
}Environment variables
ZOTERO_API_KEYZOTERO_USER_ID
Replace the placeholders with your own credentials and keep them out of version control.