zotero-mcp
Provides read-only tools to search, retrieve metadata, export citations and BibTeX, list collections and tags, and access full text from a Zotero library via its local API.
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-mcpfind papers on reinforcement learning in my Zotero"
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
A small, read-only MCP server that exposes your Zotero library to Claude (or any MCP client) through Zotero's built-in local HTTP API. No API keys, no cloud — it talks to the Zotero desktop app running on your machine.
What it can do
All tools are read-only:
Tool | Purpose |
| Search the library (title/creator/year, or everything) |
| Full metadata for one item |
| Notes, attachments, and annotations of an item |
| Extracted full text of a PDF/attachment |
| Browse the collection tree |
| Items in a collection |
| List/filter tags |
| List saved searches |
| Export items as BibTeX |
| Formatted citation + bibliography in any CSL style |
| Check connectivity |
Related MCP server: zotero-mcp
Prerequisites
Zotero 7 or newer, running.
Enable the local API: Zotero → Settings → Advanced → "Allow other applications on this computer to communicate with Zotero".
uvinstalled.
Verify the API is up:
curl 'http://localhost:23119/api/users/0/items?limit=1'Install & test
cd ~/zotero-mcp
uv sync
uv run pytest # unit tests (no running Zotero needed)Smoke-test against your live library (Zotero must be open):
uv run python -c "from zotero_mcp.client import ZoteroLocalClient as C; import json; print(json.dumps(C().search_items(q='', limit=3), default=str)[:600])"Inspect the tools interactively:
uv run mcp dev src/zotero_mcp/server.pyRegister with Claude Code
claude mcp add zotero -- uv --directory ~/zotero-mcp run zotero-mcpThen ask Claude things like "search my Zotero for papers on diffusion models" or "give me the BibTeX for item ABCD1234".
Configuration
Environment variables (optional):
ZOTERO_BASE_URL— override the API base (defaulthttp://localhost:23119/api). Useful from WSL where Zotero runs on the Windows host, e.g.http://<windows-host-ip>:23119/api.ZOTERO_USER_ID— override the local user id (default0; almost always correct).
Notes
Read-only by design. Zotero's local API does not support writes; this server intentionally mirrors that. Citation/BibTeX formatting is delegated to Zotero itself.
If a tool returns
{"error": "Could not reach the Zotero local API..."}, Zotero is closed or the local-API setting is off.
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/trymybiscottis/zotero-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server