Zotero MCP Server
Provides tools to search, manage, and interact with a Zotero research library, including items, tags, collections, notes, and annotations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zotero MCP Serversearch my library for papers about climate change"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zotero MCP Server for Poke
An MCP server that gives Poke access to your Zotero research library. Built with FastMCP following the InteractionCo template.
Tools
Tool | Description |
| Search the library by keyword |
| Get recently added items |
| Filter items by tag |
| List all tags in the library |
| Get full metadata for an item by key |
| Extract full text from a paper (local mode) |
| List attachments and notes for an item |
| Get note content for an item |
| Get PDF highlights and comments (local mode) |
| List all collections |
| Get items in a specific collection |
| Create a new note, optionally attached to an item |
| Add a paper to Zotero by DOI |
| Show connection status and library details |
Related MCP server: Zotero MCP Server
Setup
1. Copy the example env file and fill it in:
cp .env.example .envYou need:
Library ID — the number in your Zotero profile URL, or at zotero.org/settings/keys
API key — create one at zotero.org/settings/keys/new with read (and optionally write) access
2. Install dependencies:
/opt/homebrew/bin/python3.11 -m venv .venv
.venv/bin/pip install -r requirements.txt3. Run locally:
.venv/bin/python src/server.pyThe server starts at http://localhost:8000/mcp.
Local Mode (full-text + annotations)
Set ZOTERO_LOCAL=true to connect directly to the Zotero app running on your machine. This enables:
get_item_fulltext— extract text from PDFsget_item_annotations— read PDF highlights and comments
In Zotero: Edit → Preferences → Advanced → Allow other applications to access Zotero
Connecting Poke
Add this to your Poke MCP configuration:
{
"mcpServers": {
"zotero": {
"url": "http://localhost:8000/mcp"
}
}
}Or if deployed to Render, replace localhost:8000 with your Render URL.
Deploy to Render
Push this repo to GitHub, connect it to Render, and set the environment variables (ZOTERO_LIBRARY_ID, ZOTERO_API_KEY) in the Render dashboard. The render.yaml handles everything else.
This server cannot be deployed
Maintenance
Related MCP Connectors
Zotero MCP server for Claude and ChatGPT: search, citations, safe writes, PDF passages and pages.
Academic literature search, retrieval, and private library management on top of OpenAlex.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
- ScreviOAuthcom.screvi
Search and organize your reading library of highlights, saved articles, notes and tags.
Related MCP Servers
- AlicenseBqualityDmaintenanceAllows AI to interact with your Zotero library.568 npm164MIT
- AlicenseBqualityDmaintenanceIntegrates with Zotero's local API to search your reference library, retrieve bibliographic details, and extract full text from PDF attachments.41MIT
- AlicenseCqualityDmaintenanceEnables interaction with Zotero libraries for searching, managing collections, items, tags, and attachments, plus optional semantic search across PDFs via local embeddings.382MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to search, cite, and manage research references directly from a Zotero library.99-