Zotero MCP
Allows browsing collections, inspecting paper metadata, and extracting full-text from PDFs from a local Zotero library.
Click on "Install 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 MCPlist my papers about serverless computing"
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
Read-only MCP server for your local Zotero library. Browse collections, inspect paper metadata, and extract full-text from PDFs -- all via FastMCP tools.
Requirements
Zotero desktop synced to
~/Zotero/zotero.sqlitePython 3.13+
pdftotext(forpaper_text) -- usually frompoppler-utils
Related MCP server: zoty
Setup
uv syncTools
list_library
List all collections and papers as a formatted tree.
uv run python src/main.pyArgument | Type | Description |
|
| Filter by collection name, paper title, or author (case-insensitive) |
Examples:
# Full library
await client.call_tool("list_library", {})
# └── Bachelorarbeit (42 papers)
# │ [book] Pro Spring Boot 3 (2024) - Felipe Gutierrez
# ├── GraalVM (4 papers)
# Filtered
await client.call_tool("list_library", {"query": "serverless"})
# └── Serverless (8 papers)
# [journalArticle] The rise of serverless computing (2019) - Unknownpaper_details
Get full metadata for a paper by its item key.
Argument | Type | Description |
|
| Zotero item key (shown in list_library output) |
Example:
await client.call_tool("paper_details", {"item_key": "T3ZCDWC7"})
# Title: MMLU-Pro: A More Robust and Challenging Multi-Task Language Understanding Benchmark
# Type: preprint
# Authors: Yubo Wang, Xueguang Ma, ...
# date: 2024-11-06
# DOI: 10.48550/arXiv.2406.01574
# url: http://arxiv.org/abs/2406.01574
# abstractNote: In the age of large-scale language models...
# Collections: Studienarbeit
# PDF: Wang et al. - 2024 - MMLU-Pro A More Robust ....pdfReturns: title, type, key, dates, authors, all field metadata, collection memberships, and PDF attachment info.
paper_text
Extract the full text of a paper's PDF using pdftotext.
Argument | Type | Description |
|
| Zotero item key |
Example:
await client.call_tool("paper_text", {"item_key": "T3ZCDWC7"})
# MMLU-Pro: A More Robust and Challenging
# Multi-Task Language Understanding Benchmark
#
# Yubo Wang*, Xueguang Ma*, Ge Zhang, ...
# ...Usage
# stdio transport (default for MCP clients)
uv run python src/main.py
# fastmcp CLI
uv run fastmcp run src/main.py:mcpFile structure
src/
main.py # FastMCP server, tool definitions
zotero.py # SQLite queries, data models, formattingThe database is read directly from ~/Zotero/zotero.sqlite. PDFs are resolved from ~/Zotero/storage/. No API key needed.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/404Simon/zotero-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server