Zotero Native MCP — Claude Code MCP server: setup guide
Links AI assistants to a local Zotero 10 library without plugins or web credentials. It lets models query citations, manage collections, and link PDF files on disk.
claude mcp add --env ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> --env ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> --transport stdio zotero-native-mcp -- npx -y zotero-native-mcpWhat Zotero Native MCP does
The server communicates directly with the desktop app over 127.0.0.1. No network round trip occurs. Read latency stays within 8 to 60 ms because requests stay on your machine. All 28 packaged tools interact with personal and shared group libraries.
Agents can search full text across stored papers, create collections, update tags, and link local PDFs. Item removal defaults to sending files into the Zotero trash bin. However, passing permanent: true or invoking the trash purge removes records from disk immediately. Copying the folder with zotero.sqlite beforehand prevents accidental data loss.
Running Zotero 10 or newer is mandatory for write operations. Earlier releases reject any modifications. You also need Node.js 22 or later. In Zotero advanced preferences, remember to allow communication with other local applications.
What it helps with
- Attach downloaded PDF documents to citation records on disk
- Search research papers by indexed full-text content locally
- Organize reference libraries into targeted topical collections
- Batch update inconsistent tags across research items
Example prompts for the agent
- Run zotero_status to verify the local connection
- Search my local library for papers on neural scaling laws and show summaries
- Create a Zotero collection named Survey Draft and place matching references there
How to install Zotero Native MCP
Platform CLI
claude mcp add --env ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> --env ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> --transport stdio zotero-native-mcp -- npx -y zotero-native-mcpReplace <…> with your own values
Platform CLI
codex mcp add zotero-native-mcp --env ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> --env ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> -- npx -y zotero-native-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"zotero-native-mcp": {
"command": "npx",
"args": [
"-y",
"zotero-native-mcp"
],
"env": {
"ZOTERO_LOCAL_PORT": "<ZOTERO_LOCAL_PORT>",
"ZOTERO_LOCAL_APP_NAME": "<ZOTERO_LOCAL_APP_NAME>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"zotero-native-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"zotero-native-mcp"
],
"env": {
"ZOTERO_LOCAL_PORT": "<ZOTERO_LOCAL_PORT>",
"ZOTERO_LOCAL_APP_NAME": "<ZOTERO_LOCAL_APP_NAME>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e ZOTERO_LOCAL_PORT=<ZOTERO_LOCAL_PORT> -e ZOTERO_LOCAL_APP_NAME=<ZOTERO_LOCAL_APP_NAME> zotero-native-mcp npx -y zotero-native-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Zotero Native MCP
How to install Zotero Native MCP in Claude Code?
Run claude mcp add zotero-native-mcp -- npx -y zotero-native-mcp. The tools will be ready in your next session once Zotero is running.
What makes Zotero Native MCP different from web-based servers?
It operates offline over the loopback interface without external traffic. You do not need a zotero.org account key, and you do not install extra .xpi add-ons.
Which Zotero versions are supported?
Full read and write operations require Zotero 10 or newer. Reading works on versions 7 through 9, but any write attempt fails on those older releases.