Is Zotero MCP Server official?
No. It is a community project by kaliaboi, published under the MIT license. Zotero itself does not ship an MCP server.
@kaliaboi
Basic information
A connector for Claude Desktop to work with collection and sources on your Zotero Cloud.
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"mcp-zotero": {
"command": "npx",
"args": [
"mcp-zotero"
]
}
}
}List all collections in your library
Get items in a specific collection
Get detailed information about a paper
Search your entire library
Get recently added papers
Zotero MCP Server is a community-built zotero mcp connector that lets Claude and other MCP clients read your Zotero library: list collections, open items, search references and see recently added papers through the Zotero Web API.
It is an open-source Node.js project by kaliaboi (MIT license), published on npm as mcp-zotero. It is not made by the Zotero team. It talks to your Zotero cloud library (zotero.org) with an API key, so your library must be synced online; it does not read the Zotero desktop database directly.
You need Node.js (for npx/npm), a Zotero account with your library synced, and two values: a Zotero API key and your numeric user ID.
curl -H "Zotero-API-Key: YOUR_API_KEY" https://api.zotero.org/keys/current
The JSON response contains a userID field; that number is your ZOTERO_USER_ID.
export ZOTERO_API_KEY="your-api-key"
export ZOTERO_USER_ID="user-id-from-curl"
curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/collections"
If you see your collections, the credentials are valid.
# Install globally
npm install -g mcp-zotero
mcp-zotero
# Or run directly with npx
npx mcp-zotero
The server exits with "Missing ZOTERO_API_KEY or ZOTERO_USER_ID environment variables" if either value is not set, so every client config below passes them in env.
Add this to claude_desktop_config.json (from the README; put your values in quotes):
{
"mcpServers": {
"zotero": {
"command": "mcp-zotero",
"env": {
"ZOTERO_API_KEY": "YOUR_API_KEY",
"ZOTERO_USER_ID": "YOUR_USER_ID"
}
}
}
}
This form needs the global install. Without it, use "command": "npx" and "args": ["mcp-zotero"], as in the config shown on this page.
claude mcp add zotero \
-e ZOTERO_API_KEY=YOUR_API_KEY \
-e ZOTERO_USER_ID=YOUR_USER_ID \
-- npx -y mcp-zotero
Add the same mcpServers block to ~/.cursor/mcp.json (or .cursor/mcp.json in a project), using npx and mcp-zotero as the command and args, with both variables in env.
zotero-api-client and the official MCP SDK, stdio transport.mcp-zotero; a Dockerfile and Smithery config are in the repo.The server exposes five read-only tools, in two groups:
get_collections lists your collections and their keys; get_collection_items takes a collection key and returns its items; get_item_details takes an item key and returns the full metadata for that paper.search_library takes a query and searches the entire library; get_recent returns the newest additions, with an optional limit.None of the tools create, edit or delete items. Claude can read and summarize your references, but cannot change your library through this server.
The main alternative is zotero-mcp by 54yyyu, a separate and much more actively developed community project written in Python (pip install zotero-mcp-server). It can connect through Zotero 7's local API (ZOTERO_LOCAL=true) as well as the Web API, and its README lists extras such as semantic search, PDF and annotation support, and an automatic zotero-mcp setup for Claude Desktop.
Pick kaliaboi's mcp-zotero server if you want a small, read-only Node.js server that only needs an API key and covers browsing and search. Pick 54yyyu's zotero-mcp server if you want local-library access without a cloud key, full-text or semantic search, or annotations. Neither is an official Zotero product.
echo $ZOTERO_API_KEY and echo $ZOTERO_USER_ID, and make sure both are set in the client's env block, not only in your shell.npm list -g mcp-zotero to check the global install. If it is broken, run npm uninstall -g mcp-zotero and then npm install -g mcp-zotero, or switch the config to npx.curl .../collections check above. A wrong user ID (not your username), an expired key, or a library that is not synced to zotero.org all return nothing.No. It is a community project by kaliaboi, published under the MIT license. Zotero itself does not ship an MCP server.
Yes. The server is open source and free on npm, and it uses the Zotero Web API with a free API key from your Zotero account settings.
Two environment variables: `ZOTERO_API_KEY` (created at zotero.org/settings/keys) and `ZOTERO_USER_ID` (the numeric `userID` returned by `https://api.zotero.org/keys/current`).
Not directly. It reads your synced cloud library through the Web API, so items must be synced to zotero.org. For local access, see the 54yyyu zotero-mcp project mentioned above.
The code queries only your personal user library. Support for group libraries is an open feature request (#2).
No. All five tools only read data. You can also create the API key with read-only access to limit what the key can do.
Yes. It is a standard stdio MCP server, so any client that runs local MCP servers can launch it with `npx mcp-zotero` and the two environment variables. The README documents Claude Desktop; the Claude Code and Cursor setups above use the same command.
The repository is not archived, but its last code push was in February 2025, and several issues (pagination, proxy support, group libraries) are still open.
Free moving quotes for AI agents from Next Generation Movers, a licensed interstate mover (USDOT 3764697). US long-distance nationwide and local DC/MD/VA. Indicative ballpark price and booking options; optional $0.01 x40

A good sequence diagram can solve almost any communication problem in engineering. Volley lets your agent write them as plain text, with the real request and response payloads on every arrow. It checks its own syntax wi
YC (S26) | Open Computer History | Continuously record your company computer work, map your workflows, help you find work worth automating, and power your agents' context
A search tool helps dev to solve the naming things problem.

Yuppsy MCP: build and publish real estate websites from your AI assistant. Yuppsy lets your AI assistant create live websites for real estate agents and individual property listings. You don't need a designer or any code
Comments