使用说明
Zotero MCP服务器
A. 模型上下文协议(MCP) 提供对您的 佐特罗 研究图书馆。为法学硕士提供论文的完整背景,包括元数据、摘要、笔记、注释和全文PDF内容。
特性
- 🔍 完整图书馆搜索:按标题、作者、标签或全文内容搜索项目
- 📚 完整元数据:访问所有项目字段、创建者、标签和集合
- 📄 全文访问:提取和搜索PDF内容
- ✏️ 注释和注释:访问PDF亮点、评论和用户笔记
- 📖 引用:生成各种风格的格式化书目(APA、MLA、芝加哥等)
- 🔄 双后端:在Web API(远程)和本地SQLite数据库之间切换
快速开始
先决条件
检查是否安装了Node.js:
node -v
如果未安装或版本低于18,请从以下网址下载 nodejs.org (建议使用LTS)或使用版本管理器:
# Windows (winget)
winget install OpenJS.NodeJS.LTS
# macOS (Homebrew)
brew install node
# Linux (apt)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
安装
# Clone the repository
git clone https://github.com/drxaibi/zotero-mcp.git
cd zotero-mcp
# Install dependencies
npm install
# Build the project
npm run build
获取Zotero API密钥
- 首选 Zotero API密钥
- 使用以下权限创建新密钥:
- ✅ 允许访问库
- ✅ 允许笔记访问
- ❌ 允许写访问(不需要)
- 注意你的 用户ID 显示在按键页面的顶部
- 复制生成的API密钥
配置
选择您的AI助手并按照设置说明进行操作:
MCP配置
将以下配置添加到MCP客户端。用实际路径替换路径 zotero-mcp 位置:
{
"mcpServers": {
"zotero": {
"command": "node",
"args": ["C:/path/to/zotero-mcp/dist/index.js"],
"env": {
// Web API mode (default)
"ZOTERO_API_KEY": "your-api-key-here",
"ZOTERO_USER_ID": "your-user-id-here"
// Local mode (uncomment below, comment out API_KEY and USER_ID above)
// "ZOTERO_MODE": "local"
// "ZOTERO_DATA_DIR": "" // Leave empty for auto-detection, or set your path
}
}
}
}
路径格式:使用正斜杠(
/)或逃过一劫(\\).始终使用绝对路径。
本地模式:使用前关闭Zotero应用程序(SQLite文件锁定)。
VS代码+副本注释:使用 "servers" 而不是 "mcpServers" 作为根密钥:
{
"servers": {
"zotero": {
"command": "node",
"args": ["C:/path/to/zotero-mcp/dist/index.js"],
"env": {
// Web API mode (default)
"ZOTERO_API_KEY": "your-api-key-here",
"ZOTERO_USER_ID": "your-user-id-here"
// Local mode (uncomment below, comment out API_KEY and USER_ID above)
// "ZOTERO_MODE": "local"
// "ZOTERO_DATA_DIR": "" // Leave empty for auto-detection, or set your path
}
}
}
}
在哪里添加配置
| 客户端 | 配置文件位置 | 根密钥 |
|---|---|---|
| 克劳德桌面版 | 视窗: %APPDATA%\Claude\claude_desktop_config.jsonmacOS: ~/Library/Application Support/Claude/claude_desktop_config.json |
mcpServers |
| VS代码+副本 | .vscode/mcp.json 在工作空间中 |
servers |
| VS代码+克劳德 | .vscode/mcp.json 在工作空间中 |
mcpServers |
| 克劳德代码(CLI) | 视窗: %USERPROFILE%\.claude\settings.jsonmacOS/Linux: ~/.claude/settings.json |
mcpServers |
| 光标 | .cursor/mcp.json 在工作空间中或设置→ 特性→ MCP服务器 |
mcpServers |
添加配置后,重新启动客户端以加载服务器。
配置选项
| 设置 | 默认值 | 说明 |
|---|---|---|
ZOTERO_API_KEY |
必需的 | 您的Zotero API密钥 |
ZOTERO_USER_ID |
必需的 | 您的Zotero用户ID |
ZOTERO_MODE |
web |
web (API)或 local (SQLite) |
ZOTERO_GROUP_ID |
空 | 组库ID(如果访问组而不是个人) |
ZOTERO_DEFAULT_LIMIT |
25 |
每次查询的结果(1-100) |
ZOTERO_CACHE_TTL |
300 |
缓存持续时间(秒) |
ZOTERO_MAX_FULLTEXT_LENGTH |
100000 |
全文提取的最大字符数 |
ZOTERO_DATA_DIR |
自动检测 | Zotero数据文件夹的路径(仅限本地模式) |
ZOTERO_CACHE_ENABLED |
true |
启用/禁用响应缓存 |
ZOTERO_EXTRACT_PDF |
true |
启用PDF文本提取 |
具有所有选项的完整配置:
{
"mcpServers": {
"zotero": {
"command": "node",
"args": ["C:/path/to/zotero-mcp/dist/index.js"],
"env": {
// Required for Web API mode
"ZOTERO_API_KEY": "your-api-key-here",
"ZOTERO_USER_ID": "your-user-id-here",
// Optional settings
"ZOTERO_MODE": "web",
"ZOTERO_GROUP_ID": "",
"ZOTERO_DEFAULT_LIMIT": "25",
"ZOTERO_CACHE_ENABLED": "true",
"ZOTERO_CACHE_TTL": "300",
"ZOTERO_EXTRACT_PDF": "true",
"ZOTERO_MAX_FULLTEXT_LENGTH": "100000"
// Local mode (uncomment and comment out API_KEY/USER_ID above)
// "ZOTERO_MODE": "local"
// "ZOTERO_DATA_DIR": "" // Leave empty for auto-detection, or set your path
}
}
}
}
本地模式注释:
- 不需要API密钥-只需设置
ZOTERO_MODE到local - Zotero应用程序必须 关闭 使用本地模式时(SQLite文件锁定)
查找您的Zotero数据目录:
- 打开Zotero应用程序
- 首选 Edit → 设置 (Windows/Linux)或 佐特罗→ 设置 (macOS)
- 点击 高级 → 文件和文件夹
- 寻找 数据目录位置 --复制此路径
自动检测: 离开 ZOTERO_DATA_DIR 空的("")或者完全省略它。服务器将自动查找:
- 窗户:
C:\Users\<YourUsername>\Zotero - macOS:
/Users/<YourUsername>/Zotero - Linux:
/home/<YourUsername>/Zotero
如果自动检测失败,从Zotero设置中设置确切的路径:
"ZOTERO_DATA_DIR": "C:/Users/John/Zotero" // Use YOUR actual path
可用工具
| 工具 | 说明 |
|---|---|
search_library |
按查询、标签、类型或集合搜索项目 |
get_item |
获取包含所有元数据的完整项目详细信息 |
get_item_fulltext |
从PDF中提取全文 |
get_item_notes |
获取附加到项目的所有注释 |
get_item_annotations |
获取PDF亮点和评论 |
list_collections |
列出所有收藏 |
get_collection_items |
获取收藏中的项目 |
list_tags |
列出所有带有计数的标签 |
search_fulltext |
搜索所有PDF内容 |
get_bibliography |
生成格式化引用 |
get_related_items |
查找相关项目 |
get_recent_items |
获取最近添加/修改的项目 |
可用资源
| 资源 | 描述 |
|---|---|
zotero://library/stats |
图书馆统计概述 |
zotero://collections |
完整的集合层次结构 |
zotero://tags |
所有带有项目计数的标签 |
zotero://recent |
最近修改的项目 |
zotero://schema/item-types |
支持的项目类型 |
示例提示
连接后,您可以问Claude以下问题:
- “在我的Zotero库中搜索有关机器学习的论文”
- “使用ABC123键获取论文全文”
- “我在这篇论文上做了什么注释?”
- “向我展示我的《文学评论》收藏中的所有论文”
- “查找标记为“方法论”的论文”
- “为这三篇论文生成APA引用”
- “本周我添加了哪些文件?”
- “总结我的气候变化论文中的主要发现”
建筑
┌─────────────────────────────────────────────────────────────┐
│ MCP Server (index.ts) │
├─────────────────────────────────────────────────────────────┤
│ Tools │ Resources │
│ - search_library │ - zotero://library/stats │
│ - get_item │ - zotero://collections │
│ - get_fulltext │ - zotero://tags │
│ - ... │ - ... │
├─────────────────────┴───────────────────────────────────────┤
│ Backend Interface │
├─────────────────────────────────────────────────────────────┤
│ Web API Backend │ Local SQLite Backend │
│ (api.zotero.org) │ (zotero.sqlite) │
└─────────────────────────────────────────────────────────────┘
故障排除
“ZOTERO_API_KEY是必需的”
确保您已在MCP配置中设置了环境变量。
“无法检测Zotero数据目录”
在本地模式下,设置 ZOTERO_DATA_DIR 明确地将Zotero数据文件夹路径。
“数据库已锁定”(本地模式)
在使用本地模式之前关闭Zotero。Zotero在运行时锁定SQLite数据库。
没有全文结果
确保Zotero已为您的PDF建立索引。在Zotero:编辑→ 偏好→ 搜索→ 重建索引。
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
引用
如果你在研究或工作中使用这个项目,请引用它:
@software{zotero_mcp_2026,
author = {drxaibi},
title = {Zotero MCP Server: Model Context Protocol Server for Zotero},
year = {2026},
url = {https://github.com/drxaibi/zotero-mcp},
note = {A Model Context Protocol server providing LLM access to Zotero research libraries}
}
或者以文本格式:
(2026年) Zotero MCP服务器:Zotero的模型上下文协议服务器GitHub。https://github.com/drxaibi/zotero-mcp
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
