zotero-mcp-local — Claude Code MCP server: search your Zotero library
A local MCP server that lets your coding agent search a Zotero library, read PDFs and surface related papers. Read-only.
claude mcp add zotero-mcp-local -- uvx zotero-mcp-localWhat zotero-mcp-local does
This server hooks your agent up to a Zotero library on the same machine. Three jobs: look up entries, open PDFs, and suggest papers similar to one you already have. Nothing gets written back to the library.
It runs through uvx, so uv has to be installed and Zotero needs to be running with a local library. Without that the server won't start. Setup differs per client: Claude and Codex take a single claude mcp add or codex mcp add line, while Cursor and GitHub Copilot want a JSON block with command and args.
Supported clients include Claude, Codex, Cursor, GitHub Copilot, Windsurf, Cline, Zed and Gemini CLI. If your papers live in Zotero and you want the agent to cite them, this saves you from pasting quotes by hand.
What it helps with
- look up papers in a Zotero library by topic
- read a Zotero PDF inside the agent context
- find papers similar to one already in the library
- cite sources without copying quotes manually
- keep library access local instead of sending it to a cloud service
Example prompts for the agent
- Search my Zotero library for papers on retrieval-augmented generation
- Open the PDF for this entry and summarise the main findings
- Suggest related papers for the one I have open in Zotero
How to install zotero-mcp-local
Platform CLI
claude mcp add zotero-mcp-local -- uvx zotero-mcp-localuvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-local <command>
Platform CLI
codex mcp add zotero-mcp-local -- uvx zotero-mcp-localuvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-local <command>
Config file
{
"mcpServers": {
"zotero-mcp-local": {
"command": "uvx",
"args": [
"zotero-mcp-local"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-local <command>
Config file
{
"servers": {
"zotero-mcp-local": {
"type": "stdio",
"command": "uvx",
"args": [
"zotero-mcp-local"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-local <command>
Platform CLI
gemini mcp add zotero-mcp-local uvx zotero-mcp-localuvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-local <command>
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-mcp-local
How do I install zotero-mcp-local in Claude Code?
Run claude mcp add zotero-mcp-local -- uvx zotero-mcp-local. That single command registers the server, which then starts through uvx.
What does zotero-mcp-local do?
It searches entries in a local Zotero library, reads PDFs and finds related papers. Access is read-only.
Does Zotero need to be running?
Yes. The server talks to a local Zotero library, so it has to be present on the machine. It launches via uvx, which means uv must be installed.