Zotero MCP · 54yyyu — Claude Code MCP server: features and setup
Connect an AI agent to a Zotero library to search papers, read PDFs, add records, and work with annotations. Useful when research questions depend on your own collection.
claude mcp add --env ZOTERO_LOCAL=<ZOTERO_LOCAL> --env ZOTERO_API_KEY=<ZOTERO_API_KEY> --env ZOTERO_LIBRARY_ID=<ZOTERO_LIBRARY_ID> --env ZOTERO_LIBRARY_TYPE=<ZOTERO_LIBRARY_TYPE> --env ZOTERO_MCP_TOOLSETS=<ZOTERO_MCP_TOOLSETS> --transport stdio zotero-mcp -- uvx zotero-mcp-serverWhat Zotero MCP does
The server searches by title, author, tag, collection, and full text, with semantic search also available. It reads metadata, BibTeX, and PDF page ranges; page images can help when text extraction garbles equations or tables. An agent can add papers by DOI, URL, ISBN, BibTeX, or file, manage collections and tags, and merge duplicates.
In local mode, reads come from zotero.sqlite. Writing requires a running Zotero 10+ instance with local access enabled; older versions use the web API with ZOTERO_API_KEY and ZOTERO_LIBRARY_ID. Python 3.10+ is required for installation. Without local API permission, writes to Zotero 10+ will not work.
What it helps with
- search a Zotero library for papers on a topic
- read PDF text and selected pages
- retrieve BibTeX for a paper
- add a paper to the library by DOI
- find and merge duplicate records
Example prompts for the agent
- Find papers about transformer architectures in my library.
- Read this record’s PDF and explain the equation on the page I mention.
- Add a paper to Zotero by DOI and place it in a suitable collection.
How to install Zotero MCP
Platform CLI
claude mcp add --env ZOTERO_LOCAL=<ZOTERO_LOCAL> --env ZOTERO_API_KEY=<ZOTERO_API_KEY> --env ZOTERO_LIBRARY_ID=<ZOTERO_LIBRARY_ID> --env ZOTERO_LIBRARY_TYPE=<ZOTERO_LIBRARY_TYPE> --env ZOTERO_MCP_TOOLSETS=<ZOTERO_MCP_TOOLSETS> --transport stdio zotero-mcp -- uvx zotero-mcp-serverReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-server <command>
Platform CLI
codex mcp add zotero-mcp --env ZOTERO_LOCAL=<ZOTERO_LOCAL> --env ZOTERO_API_KEY=<ZOTERO_API_KEY> --env ZOTERO_LIBRARY_ID=<ZOTERO_LIBRARY_ID> --env ZOTERO_LIBRARY_TYPE=<ZOTERO_LIBRARY_TYPE> --env ZOTERO_MCP_TOOLSETS=<ZOTERO_MCP_TOOLSETS> -- uvx zotero-mcp-serverReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-server <command>
Config file
{
"mcpServers": {
"zotero-mcp": {
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_LOCAL": "<ZOTERO_LOCAL>",
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
"ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
"ZOTERO_MCP_TOOLSETS": "<ZOTERO_MCP_TOOLSETS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-server <command>
Config file
{
"servers": {
"zotero-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_LOCAL": "<ZOTERO_LOCAL>",
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
"ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
"ZOTERO_MCP_TOOLSETS": "<ZOTERO_MCP_TOOLSETS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-server <command>
Platform CLI
gemini mcp add -e ZOTERO_LOCAL=<ZOTERO_LOCAL> -e ZOTERO_API_KEY=<ZOTERO_API_KEY> -e ZOTERO_LIBRARY_ID=<ZOTERO_LIBRARY_ID> -e ZOTERO_LIBRARY_TYPE=<ZOTERO_LIBRARY_TYPE> -e ZOTERO_MCP_TOOLSETS=<ZOTERO_MCP_TOOLSETS> zotero-mcp uvx zotero-mcp-serverReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-mcp-server <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
How do I install Zotero MCP in Claude Code?
Run claude mcp add zotero-mcp -e ZOTERO_API_KEY=<ZOTERO_API_KEY> -- uvx zotero-mcp-server. This command requires uvx and a Zotero API key.
What does Zotero MCP do?
It lets an AI agent search and read a Zotero library, work with annotations, and add records. Semantic search and collection management are also supported.
What is needed for local access to a Zotero library?
Enable the local API in Zotero 7 or later. Writing to Zotero 10+ requires granting access; older versions write through the web API using ZOTERO_API_KEY and ZOTERO_LIBRARY_ID.
Similar MCP servers
Everything for Science and research →Zotero MCP by other authors comes first.