Zotero MCP Server
Provides tools to search, manage, and interact with a Zotero research library, including items, tags, collections, notes, and annotations.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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 |
| One line per item (key, year, author, title, tags, collections) for the whole library or one collection |
| Create a new note, optionally attached to an item |
| Add a paper to Zotero by DOI |
| Add and/or remove tags on one or more items |
| Rename a tag on every item that has it (merges if the new tag exists) |
| Remove tags from every item in the library |
| Create a collection or subcollection |
| Rename a collection or move it under another one |
| Delete a collection (its items stay in the library) |
| Add items to a collection |
| Remove items from a collection (they stay in the library) |
| Show connection status and library details |
The write tools need an API key with write access.
Related MCP server: zotero-mcp
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.
Authentication
Every request must carry Authorization: Bearer <MCP_AUTH_TOKEN>; anything else gets a 401. The server refuses
to start without MCP_AUTH_TOKEN unless MCP_ALLOW_NO_AUTH=true is set (local testing only). Generate a token with:
python3 -c "import secrets; print(secrets.token_urlsafe(32))"Put it in .env locally and in the Render dashboard for the deployed server. Clients send it as a header, e.g. Claude Code:
claude mcp add --transport http zotero https://<your-render-url>/mcp --header "Authorization: Bearer <token>"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, MCP_AUTH_TOKEN) 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.
Search and organize your reading library of highlights, saved articles, notes and tags.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables interaction with Zotero libraries for searching, managing collections, items, tags, and attachments, plus optional semantic search across PDFs via local embeddings.382MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and retrieve metadata, abstracts, and notes from a user's Zotero library through tools like search, get item, and list collections.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to search a Zotero library, retrieve item metadata, and access the full text of PDF attachments.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to access a Zotero library, searching items and retrieving their metadata and full text. Supports both the local Zotero desktop API and the Zotero Web API.-