🚀 ZoteroBridge
ZoteroBridge 是一款模型上下文協議 (MCP) 服務器,可直接連通 Zotero 的 SQLite 數據庫,讓 AI 助手與 Zotero 文獻庫實現交互,極大提升文獻管理與使用效率。
🚀 快速開始
前置要求
- Node.js 18.0 或更高版本
- Zotero 7.0 或更高版本
- 支持 MCP 的 AI 客戶端(如 Claude Desktop、Cursor、VS Code Copilot)
安裝方式
方式一:通過 npm 全局安裝(推薦)
npm install -g zotero-bridge
方式二:從源碼構建
git clone https://github.com/Combjellyshen/ZoteroBridge.git
cd ZoteroBridge
npm install
npm run build
配置 AI 客戶端
Claude Desktop
添加到 Claude Desktop 配置文件:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"zotero-bridge": {
"command": "npx",
"args": ["-y", "zotero-bridge"],
"env": {}
}
}
}
如果從源碼構建:
{
"mcpServers": {
"zotero-bridge": {
"command": "node",
"args": ["path/to/ZoteroBridge/dist/index.js"],
"env": {}
}
}
}
Cursor IDE
在項目根目錄創建 .cursor/mcp.json:
{
"mcpServers": {
"zotero-bridge": {
"command": "npx",
"args": ["-y", "zotero-bridge"]
}
}
}
VS Code Copilot
- 打開 VS Code 設置 (
Ctrl+,)
- 搜索
github.copilot.chat.mcpServers
- 點擊 "在 settings.json 中編輯"
- 添加以下配置:
"github.copilot.chat.mcpServers": {
"zotero-bridge": {
"command": "npx",
"args": ["-y", "zotero-bridge"]
}
}
自定義數據庫路徑
如果您的 Zotero 數據庫不在默認位置:
{
"mcpServers": {
"zotero-bridge": {
"command": "npx",
"args": ["-y", "zotero-bridge", "--db", "D:/MyZotero/zotero.sqlite"]
}
}
}
✨ 主要特性
- 🗂️ 文件夾管理 - 創建、重命名、移動和刪除 Zotero 文件夾(集合)
- 🏷️ 標籤管理 - 為文獻添加、刪除和查詢標籤
- 📖 條目操作 - 搜索條目、獲取詳情、管理文件夾關係
- 📝 內容管理 - 讀取/設置摘要,添加筆記
- 📄 PDF 處理 - 提取全文、生成摘要、全文搜索、獲取標註
- 🔍 標識符搜索 - 通過 DOI、ISBN、PMID、arXiv、URL 查找文獻
- 🔗 相關條目 - 查找手動關聯、共享標籤/作者的相似文獻
- 🛠️ 庫維護 - 查找重複項、驗證附件、清理孤立記錄、合併條目
📦 安裝指南
前置要求
- Node.js 18.0 或更高版本
- Zotero 7.0 或更高版本
- 支持 MCP 的 AI 客戶端(如 Claude Desktop、Cursor、VS Code Copilot)
安裝方式
方式一:通過 npm 全局安裝(推薦)
npm install -g zotero-bridge
方式二:從源碼構建
git clone https://github.com/Combjellyshen/ZoteroBridge.git
cd ZoteroBridge
npm install
npm run build
💻 使用示例
與 Claude/Copilot 配合使用
# 搜索文獻
搜索標題中包含"深度學習"的條目
# 獲取詳情
獲取 itemID 為 1234 的條目詳細信息
# 管理文件夾
創建一個名為"機器學習論文"的新文件夾
將條目 1234 添加到文件夾 5678
# PDF 操作
提取附件 ID 為 100 的 PDF 全文
在這個 PDF 中搜索"neural network"
# 通過 DOI 查找
查找 DOI 為 10.1126/science.aaa2397 的文獻
# 獲取標註
獲取條目 1234 的所有高亮標註
# 庫維護
查找我的庫中的重複條目
檢查條目 1234 的附件是否有效
📚 詳細文檔
可用工具(13 個工具)
manage_collection - 文件夾管理
管理 Zotero 文件夾(集合)的所有操作。
| 動作 |
描述 |
list |
列出所有文件夾 |
get |
獲取文件夾詳情 |
create |
創建新文件夾 |
rename |
重命名文件夾 |
move |
移動文件夾到新父級 |
delete |
刪除文件夾 |
get_subcollections |
獲取子文件夾 |
add_item |
將條目添加到文件夾 |
remove_item |
從文件夾移除條目 |
get_items |
獲取文件夾中的所有條目 |
manage_tags - 標籤管理
管理標籤的所有操作。
| 動作 |
描述 |
list |
列出所有標籤 |
get_item_tags |
獲取條目的所有標籤 |
add |
為條目添加標籤 |
remove |
從條目移除標籤 |
create |
創建新標籤 |
search_items - 搜索條目
按標題搜索 Zotero 條目。
get_item_details - 獲取條目詳情
通過 ID 或 Key 獲取條目的詳細信息。
manage_item_content - 內容管理
管理條目的摘要和筆記。
| 動作 |
描述 |
get_abstract |
獲取條目摘要 |
set_abstract |
設置條目摘要 |
get_notes |
獲取條目筆記 |
add_note |
為條目添加筆記 |
manage_pdf - PDF 操作
PDF 文件的各種操作。
| 動作 |
描述 |
extract_text |
從 PDF 提取全文 |
get_summary |
獲取 PDF 摘要信息 |
list |
獲取條目的 PDF 附件列表 |
search |
在 PDF 中搜索文本 |
generate_abstract |
從 PDF 內容生成摘要 |
find_by_identifier - 標識符搜索
通過各種標識符查找文獻,支持自動檢測。
| 類型 |
描述 |
doi |
通過 DOI 查找 |
isbn |
通過 ISBN 查找 |
pmid |
通過 PubMed ID 查找 |
arxiv |
通過 arXiv ID 查找 |
url |
通過 URL 查找 |
auto |
自動檢測標識符類型 |
get_annotations - 獲取標註
獲取 PDF 標註(高亮、筆記等),支持按類型、顏色篩選或搜索。
search_fulltext - 全文搜索
在 Zotero 全文索引中搜索或獲取附件的全文內容。
find_related_items - 查找相關條目
通過多種方式查找相關文獻。
| 方法 |
描述 |
manual |
獲取手動關聯的條目 |
tags |
通過共享標籤查找 |
creators |
通過共享作者查找 |
collection |
在同一文件夾中查找 |
all |
使用所有方法查找 |
get_database_info - 數據庫信息
獲取 Zotero 數據庫信息(路徑、存儲位置、統計數據)。
raw_query - 原始 SQL 查詢
執行原始 SQL 查詢(僅支持 SELECT,只讀)。
library_maintenance - 庫維護 🆕
維護和清理 Zotero 庫的工具。
| 動作 |
描述 |
find_duplicates |
查找重複條目(按標題、DOI 或 ISBN) |
validate_attachments |
驗證附件文件是否存在 |
get_valid_attachment |
獲取條目的有效附件 |
find_with_valid_pdf |
查找有有效 PDF 的條目 |
cleanup_orphans |
清理孤立的附件記錄(支持 dry-run) |
merge_items |
合併重複條目 |
項目結構
ZoteroBridge/
├── src/
│ ├── index.ts # MCP 服務器入口
│ ├── database.ts # Zotero SQLite 數據庫操作
│ ├── pdf.ts # PDF 處理模塊
│ └── tools.ts # MCP 工具定義(13 個整合工具)
├── dist/ # 編譯輸出
├── test/ # 測試文件
├── package.json
├── tsconfig.json
└── README.md
開發指南
開發模式
npm run dev
構建
npm run build
命令行參數
zotero-bridge --help
zotero-bridge --db /path/to/zotero.sqlite
zotero-bridge --readonly
🔧 技術細節
更新日誌
v1.1.5 (2026-02-01)
🗑️ 回收站識別功能
- ✅ 所有查詢函數現在正確排除
deletedItems 表中的條目
- ✅
getItemDetails 新增 isDeleted 和 dateDeleted 字段
- ✅
findItemByDOI/ISBN/Identifier 自動跳過回收站中的條目
- ✅ 新增
isItemDeleted() 方法檢查條目是否在回收站
- ✅ 新增
getDeletedItems() 方法獲取回收站內容
- ✅ 新增
getDeletedItemsCount() 方法獲取回收站條目數量
- ✅ 附件查詢也排除已刪除的附件
v1.1.4 (2026-02-01)
🔧 重要修復 - 數據庫兼容性
- ✅ 修復重複項查詢不一致問題 -
findItemByDOI/ISBN 現在始終返回最新修改的條目
- ✅ 修復
itemTags.type 字段 - 該字段為 NOT NULL,必須提供值
- ✅ 動態獲取
note/attachment 的 itemTypeID,不再硬編碼
- ✅ 所有查詢現在排除
deletedItems 表中的已刪除條目
🚀 新功能
- ✨ 添加事務支持 (
beginTransaction/commitTransaction/rollbackTransaction)
- ✨
mergeItems 現在使用事務保證數據一致性
- ✨
mergeItems 新增附件轉移功能
- ✨ 重複項查詢現在返回
_duplicateWarning 警告信息
🛡️ 安全性改進
- 所有寫操作前檢查 Zotero 進程狀態
- 自動創建數據庫備份
- 批量操作使用事務保護
v1.1.3 (2026-02-01)
🔧 修復
- ✅ 修復了集合(文件夾)創建功能 - 添加了必需的
clientDateModified 字段
- ✅ 修復了集合重命名功能 - 正確更新
clientDateModified 時間戳
- ✅ 修復了集合移動功能 - 確保父子關係正確建立
- ✅ 所有集合操作現在完全符合 Zotero 官方數據庫規範
現在可以正常使用:
- 創建新集合(頂級文件夾)
- 創建子集合(支持多層嵌套)
- 重命名集合
- 移動集合到其他父集合
- 獲取子集合列表
v1.1.2 (2025-02-01)
- 更新所有依賴到最新版本
- 修復 Zod 4.x 兼容性問題
- 修復 pdf-parse 2.x ESM 導入問題
v1.1.1 (2025-02-01)
- 將 42 個工具整合為 13 個基於動作的工具
- 新增
library_maintenance 工具(重複檢測、附件驗證、孤立清理、條目合併)
v1.1.0
📄 許可證
本項目採用 MIT 許可證。
🙏 致謝
📬 聯繫方式
歡迎提交 Issue 或 Pull Request!
⚠️ 重要提示
- 使用寫入功能時,請關閉 Zotero 客戶端以避免數據庫鎖定。
- 在進行修改前備份
zotero.sqlite。
- 僅讀取數據時使用
--readonly 參數更安全。
- 使用
library_maintenance 的 validate_attachments 檢查文件是否存在。