使用说明
佐特罗mcp
一 MCP(模型上下文协议) 服务器 这 Zotero Web API v3. 管理收藏、创建笔记、搜索项目和阅读您的PDF附件 直接从Claude(桌面、代码或任何兼容MCP的客户端)下载Zotero库。
特性
- 9个MCP工具 --收藏、笔记、搜索、项目元数据、附件、全文
- Zotero本地API -无需API密钥即可连接到Zotero Desktop
- 组库支持 --除了用户库之外,还可以访问组库
- SSE运输 --基于HTTP的Docker和远程访问传输
- Docker就绪 --包含多级Dockerfile
- LLM优化输出 --Markdown格式的结果
get_item和search_items - 本地优先 --在可用时从本地Zotero存储中读取附件和全文
需求
- Node.js>=18 (用于内置
fetch支持) - A. Zotero API密钥 具有读/写访问权限 (使用本地API模式时不需要)
- 您的Zotero用户库ID(可见于 https://www.zotero.org/settings/keys)
快速开始
克劳德代码
claude mcp add zotero \
--env ZOTERO_API_KEY=your_api_key \
--env ZOTERO_LIBRARY_ID=your_library_id \
-- npx -y zotero-mcp
克劳德桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"zotero": {
"command": "npx",
"args": ["-y", "zotero-mcp"],
"env": {
"ZOTERO_API_KEY": "your_api_key",
"ZOTERO_LIBRARY_ID": "your_library_id"
}
}
}
}
保存后重新启动Claude Desktop。
Zotero本地API(不需要API密钥)
直接连接到您计算机上运行的Zotero Desktop:
claude mcp add zotero \
--env ZOTERO_LOCAL=true \
-- npx -y zotero-mcp
要求Zotero Desktop运行(在上公开API localhost:23119).
码头工人
docker build -t zotero-mcp .
docker run -p 3000:3000 \
-e ZOTERO_API_KEY=your_api_key \
-e ZOTERO_LIBRARY_ID=your_library_id \
zotero-mcp
默认情况下,集装箱在端口3000上运行SSE传输。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
ZOTERO_API_KEY |
是* | Zotero API密钥(*在以下情况下不需要 ZOTERO_LOCAL=true) |
ZOTERO_LIBRARY_ID |
是的* | Zotero用户/组库ID(*默认 0 在本地模式下) |
ZOTERO_DATA_DIR |
否 | 本地Zotero数据目录(默认: ~/Zotero) |
ZOTERO_LOCAL |
否 | 连接到Zotero Desktop本地API(默认值: false) |
ZOTERO_LIBRARY_TYPE |
没有 | user (默认)或 group |
运输
服务器支持两种传输模式:
| 模式 | 命令 | 描述 |
|---|---|---|
| 站立 | node dist/index.js (默认) |
JSON-RPC通过标准输入/标准输出 |
上海证券交易所 node dist/index.js --transport sse --port 3000 |
HTTP服务器发送事件 |
标准 是默认设置,适用于Claude Code/Desk。 上海证券交易所 适用于Docker、远程访问和多客户端场景。
可用工具
list_collections
按页码列出库中的所有收藏。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
limit |
number | 25 | 最大结果(1–100) |
offset |
number | 0 | 分页偏移量 |
create_collection
创建新集合(或子集合)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
name |
string | 是 | 集合名称 |
parentCollection |
string | 否 | 父集合键(用于嵌套) |
create_note
使用可选的Zotero HTML模板创建独立笔记。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
title |
string | -- | 注释标题(必填) |
content |
string | -- | 注意正文为HTML(必填) |
collectionKeys |
string[] | -- | 将注释添加到这些集合中 |
tags |
string[] | -- | 注释的标签 |
useTemplate |
boolean | true | 用元数据包裹Zotero笔记模板 |
add_note_to_collection
将现有项目添加到集合中。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemKey |
string | 是 | 项目键(8个字符) |
collectionKey |
string | 是 | 目标集合键 |
get_item
按键获取具有完整元数据的单个项目。返回LLM优化的Markdown 包含标题、创建者、日期、DOI、URL、摘要、标签和集合。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemKey |
string | 是 | 项目键(8个字符) |
search_items
按标题、创建者、年份或全文搜索项目。 返回LLM优化的Markdown摘要。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
query |
string | -- | 搜索查询(必填) |
qmode |
string | title创作者年份 | titleCreatorYear 或 everything |
itemType |
string | -- | 筛选器: journalArticle, book… |
tag |
string | -- | 按标签筛选: tag1 || tag2 (或), -tag (不) |
sort |
string | dateModified | 排序字段 |
direction |
string | desc | asc 或 desc |
limit |
number | 25 | 最大结果(1–100) |
offset |
number | 0 | 分页偏移量 |
get_item_attachments
列出Zotero项目的附件(PDF、快照等)。检测本地文件 Zotero桌面存储可用时的路径。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemKey |
string | 是 | 父项键 |
forceRemote |
boolean | 否 | 跳过本地检测,仅限API信息(默认值:false) |
get_item_fulltext
获取项目的全文内容。首先检查本地Zotero缓存
(.zotero-ft-cache),返回到Zotero API全文端点。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemKey |
string | 是 | 附件或父项键 |
forceRemote |
boolean | 否 | 跳过本地缓存,从API获取(默认值:false) |
read_attachment
读取附件文件。返回本地文件路径(当Zotero Desktop 存储可用)或通过API作为base64下载。自动解析父级 第一个PDF附件的项目密钥。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemKey |
string | 是 | 附件或父项键 |
forceRemote |
boolean | 否 | 跳过本地文件,从API下载(默认值:false) |
发展
git clone https://github.com/isezen/zotero-mcp.git
cd zotero-mcp
npm install
npm run build
npm test # 84 unit tests (Vitest)
使用MCP检查员进行测试
ZOTERO_API_KEY=your_key ZOTERO_LIBRARY_ID=your_id \
npx @modelcontextprotocol/inspector dist/index.js
测试SSE传输
ZOTERO_API_KEY=your_key ZOTERO_LIBRARY_ID=your_id \
node dist/index.js --transport sse --port 3000
使用Claude Code进行本地测试
claude mcp add zotero-dev \
--env ZOTERO_API_KEY=your_key \
--env ZOTERO_LIBRARY_ID=your_id \
-- node /absolute/path/to/zotero-mcp/dist/index.js
速率限制
服务器强制API请求与
自动尊重 Backoff 和 Retry-After Zotero返回的标题。
