Zotero MCP server
{
"mcpServers": {
"54yyyu-zotero": {
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_API_KEY": "<zotero_api_key>",
"ZOTERO_LIBRARY_ID": "<zotero_library_id>",
"YOUR_API_KEY": "<your_api_key>",
"ZOTERO_WEBDAV_URL": "https://...",
"OPENAI_API_KEY": "sk-...",
"OPENAI_BASE_URL": "sk-..."
}
}
}
}{
"mcpServers": {
"54yyyu-zotero": {
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_API_KEY": "<zotero_api_key>",
"ZOTERO_LIBRARY_ID": "<zotero_library_id>",
"YOUR_API_KEY": "<your_api_key>",
"ZOTERO_WEBDAV_URL": "https://...",
"OPENAI_API_KEY": "sk-...",
"OPENAI_BASE_URL": "sk-..."
}
}
}
}{
"mcpServers": {
"54yyyu-zotero": {
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_API_KEY": "<zotero_api_key>",
"ZOTERO_LIBRARY_ID": "<zotero_library_id>",
"YOUR_API_KEY": "<your_api_key>",
"ZOTERO_WEBDAV_URL": "https://...",
"OPENAI_API_KEY": "sk-...",
"OPENAI_BASE_URL": "sk-..."
}
}
}
}{
"servers": {
"54yyyu-zotero": {
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_API_KEY": "${input:zotero_api_key}",
"ZOTERO_LIBRARY_ID": "${input:zotero_library_id}",
"YOUR_API_KEY": "${input:your_api_key}",
"ZOTERO_WEBDAV_URL": "${input:zotero_webdav_url}",
"OPENAI_API_KEY": "${input:openai_api_key}",
"OPENAI_BASE_URL": "${input:openai_base_url}"
}
}
},
"inputs": [
{
"id": "zotero_api_key",
"type": "promptString",
"description": "Zotero api key",
"password": true
},
{
"id": "zotero_library_id",
"type": "promptString",
"description": "Zotero library id",
"password": true
},
{
"id": "your_api_key",
"type": "promptString",
"description": "Your api key",
"password": true
},
{
"id": "zotero_webdav_url",
"type": "promptString",
"description": "Zotero webdav url",
"password": true
},
{
"id": "openai_api_key",
"type": "promptString",
"description": "Openai api key",
"password": true
},
{
"id": "openai_base_url",
"type": "promptString",
"description": "Openai base url",
"password": true
}
]
}{
"mcpServers": {
"54yyyu-zotero": {
"command": "uvx",
"args": [
"zotero-mcp-server"
],
"env": {
"ZOTERO_API_KEY": "<zotero_api_key>",
"ZOTERO_LIBRARY_ID": "<zotero_library_id>",
"YOUR_API_KEY": "<your_api_key>",
"ZOTERO_WEBDAV_URL": "https://...",
"OPENAI_API_KEY": "sk-...",
"OPENAI_BASE_URL": "sk-..."
}
}
}
}file .mcp.json (in your project root)file claude_desktop_config.jsonfile ~/.cursor/mcp.jsonfile .vscode/mcp.jsonfile ~/.codeium/windsurf/mcp_config.jsoninstall uvx zotero-mcp-serverversion 0.11.0
What it does
An MCP server that connects your Zotero research library to AI assistants like Claude and ChatGPT. It lets you search papers, retrieve metadata, extract annotations, add new items by DOI or URL, and perform semantic searches across your library using local or cloud access.
- Search your research library by title, author, or semantic similarity to find relevant papers in conversation with an AI assistant.
- Extract PDF annotations and metadata from papers in your Zotero library and discuss them with Claude or ChatGPT.
- Add new papers to your Zotero library by DOI, URL, or arXiv links directly through an AI assistant, with automatic metadata fetching.
Tools this server exposes
| Tool | Does |
|---|---|
| search_items | Search your Zotero library by title, author, or other criteria. |
| semantic_search | Perform vector-based similarity search across your research library using embeddings. |
| get_item_metadata | Retrieve detailed metadata for a Zotero item in markdown or BibTeX format. |
| get_item_full_text | Get the full text content of an item when available. |
| get_annotations | Extract PDF annotations and notes from an item with page numbers. |
| add_paper_by_doi | Add a paper to your library by DOI with automatic metadata and PDF retrieval from open-access sources. |
| add_paper_by_url | Add a paper to your library from a URL, arXiv link, or local file. |
| create_item | Create a new item in your Zotero library with specified metadata. |
| get_collections | Browse your Zotero collections and their contents. |
| get_citation_tallies | Retrieve citation tallies showing how many papers support, contrast, or mention each item using Scite API. |
| scan_retracted_papers | Scan your library for retracted or corrected papers using Scite. |
Before you enable it
An MCP server runs with whatever access you give it. Start with a development account rather than production, and check which tools the server exposes before you let an agent call them unattended.