【免费下载链接】zotero-mcp
It's a plugin extension in Zotero. Zotero MCP Plugin enables integration between AI assistants and Zotero through MCP. Zotero MCP Plugin 是一个 Zotero 插件,通过 MCP协议实现 AI 助手与 Zotero深度集成。插件支持文献检索、元 数据管理、全文分析和智能问答等功能,让 Claude、ChatGPT 等 AI 工具能够直接访问和操作您的文献库。
Zotero MCP 是一个运行在 Zotero 内的插件,通过 MCP 协议让 Claude、ChatGPT 等 AI 助手直接检索和管理你的文献库。本文带你从零完成 Zotero MCP 插件的源码构建与调试:安装 Node.js 开发环境、构建.xpi插件包、用npm run start开启热重载即时调试,再到单元测试、日志排查与版本发布,一套完整的 Zotero 插件开发工作流,零基础也能照做。
开发环境准备:搭建 Zotero 插件开发依赖
在开始源码构建之前,先确认本地已具备以下 4 项依赖(版本要求以 CLAUDE.md 与中文文档为准):
| 依赖 | 最低版本 | 用途 | 检查命令 |
|---|---|---|---|
| Zotero | 7.0+ | 插件运行宿主 | 查看帮助 → 关于 Zotero |
| Node.js | 18.0+ | 构建与热重载服务 | node -v |
| npm | 随 Node 安装 | 依赖管理 | npm -v |
| Git | 任意新版 | 拉取源码 | git --version |
然后克隆仓库并安装依赖:
git clone https://gitcode.com/gh_mirrors/zote/zotero-mcp cd zotero-mcp/zotero-mcp-plugin npm install💡 插件代码全部位于
zotero-mcp-plugin/子目录,后续所有命令都在该目录下执行。
源码结构速览:读懂 Zotero MCP 插件的 5 个核心目录
构建之前先花 2 分钟了解代码布局,调试时会频繁在这些目录间跳转:
| 目录/文件 | 作用 |
|---|---|
| src/ | TypeScript 源码,src/index.ts 是打包入口 |
| src/modules/ | 功能模块:streamableMCPServer.ts(内置 MCP 服务器)、httpServer.ts(HTTP 服务)、搜索引擎、语义索引等 |
| addon/ | 插件静态资源:manifest.json(插件清单)、bootstrap.js(生命周期引导)、locale/多语言文件 |
| test/ | 单元测试(mocha) |
| zotero-plugin.config.ts | 构建脚手架配置,指定src/index.ts为 esbuild 入口、输出到.scaffold/build/ |
整体架构非常简洁:AI 客户端 ↔ Streamable HTTP ↔ Zotero 插件(内置 MCP 服务器),不再需要独立的服务器进程。
一键构建:从零生成可安装的 .xpi 插件包
生产构建只有一条命令(脚本定义见 package.json):
npm run build它做了两件事:
- 调用
zotero-plugin build,把src/经 esbuild 打包并连同addon/静态资源一起打成.scaffold/build/zotero-mcp-plugin.xpi; - 执行
tsc --noEmit做 TypeScript 类型检查,构建失败会先报类型错误。
构建完成后,在 Zotero 中通过工具 → 附加组件(齿轮图标 → 从文件安装附加组件)加载该.xpi,重启 Zotero 即生效。
提交代码前建议顺手跑一遍格式与静态检查:
npm run lint:check # prettier 格式 + eslint 检查 npm run lint:fix # 自动修复热重载开发模式:npm run start 让代码改动即时生效
日常调试不用反复打包安装,项目内置了热重载(hot reload)开发服务器:
npm run start即zotero-plugin serve,它会自动启动一个 Zotero 实例并加载插件;保存代码后自动重新编译并热重载,无需手动重启。整个热重载链路是这样工作的:
- bootstrap.js 在 Zotero 启动时注册 chrome 资源,并加载编译产物
content/scripts/zotero-mcp-plugin.js; - 入口 src/index.ts 创建全局
Addon实例(定义于 src/addon.ts),并把ztoolkit挂载为全局工具; - src/hooks.ts 的
onStartup()依次完成:等待 Zotero 初始化 → 初始化多语言 → 按首选项启动 HTTP 服务器(默认端口23120)→ 注册条目变化监听 → 标记initialized = true。
调试三件套:
- 📝日志:项目统一使用
ztoolkit.log()输出日志(带[MCP Plugin]前缀),在工具 → 开发者 → 错误控制台中即可看到完整的启动/关闭生命周期日志(STARTUP BEGIN…SHUTDOWN COMPLETE); - 🩺心跳探测:插件内置健康检查端点,浏览器访问
http://127.0.0.1:23120/ping返回pong即表示服务器存活; - 🔁偏好热更新:hooks.ts 监听了端口与开关两项偏好,在
首选项 → Zotero MCP Plugin中修改端口后服务器会自动重启,改配置同样免重启。
测试与排查:单元测试、集成测试与常见错误定位
跑测试
npm run test:unit # 纯 Node 环境下的 mocha 单元测试 npm run test # 集成测试:由 zotero-plugin test 启动 Zotero 加载插件单元测试示例 test/httpRequestReader.test.ts 用FakeReader模拟分片字节流,专门验证多字节 UTF-8 被截断在 chunk 边界时的解析正确性;test/writeOperations.test.ts 则覆盖写入操作的边界场景。新增功能时仿照这两个文件补充用例即可。
高频故障速查
| 现象 | 排查方向 |
|---|---|
connect ECONNREFUSED 127.0.0.1:23120 | 首选项中未勾选“启用服务器”;或端口号与 AI 客户端配置不一致 |
| 构建报类型错误 | 先看终端中tsc --noEmit的报错,再处理打包 |
| 插件启用了但工具不可用 | 打开错误控制台,搜索Failed to start HTTP server确认端口是否被占用,换端口后同步修改 AI 客户端 URL |
| 语义索引不更新 | 日志中查找Auto-index check相关输出,确认semantic.enabled偏好为开启 |
发布流程:版本升级与自动更新配置
本地验证通过后,发布走语义化版本 + 自动更新清单的流程:
- 升版本:
npm run release(正式版)或npm run release:beta(beta 版),会自动执行npm version并打 tag; - 生成更新清单:scripts/prepare-release.js 依据
package.json的version生成 update.json(正式版)或update-beta.json(beta),内容即上文截图所示的版本 + 下载链接结构; - 构建产物:
.xpi重命名为zotero-mcp-plugin-X.Y.Z.xpi后与update.json一并作为 Release 资源上传; - 用户侧:Zotero 定期请求 manifest.json 中
update_url指向的地址,比对版本后提示自动更新。完整机制与手工验证方法见 AUTO_UPDATE_GUIDE.md。
⚠️ 注意版本要同步:
package.json、update.json、README 徽章三处版本号必须一致,否则自动更新会静默失效。
小结:Zotero MCP 插件开发的完整闭环
回顾一下这条从零开始的开发链路,每一步都已给出对应命令:
git clone+npm install—— 搭好开发环境;npm run build—— 生成.xpi并做类型检查;npm run start—— 热重载调试,改动保存即生效,配合错误控制台读日志;npm run test:unit/npm run test—— 单元测试与集成测试双保险;npm run release—— 升版本、生成update.json,用户端自动更新。
掌握这套流程后,无论是给 Zotero MCP 插件加一个 MCP 工具、调整首选项界面,还是修复端口与索引相关的 Bug,都能在几分钟内完成“改码 → 重载 → 验证”的完整调试闭环。
【免费下载链接】zotero-mcp
It's a plugin extension in Zotero. Zotero MCP Plugin enables integration between AI assistants and Zotero through MCP. Zotero MCP Plugin 是一个 Zotero 插件,通过 MCP协议实现 AI 助手与 Zotero深度集成。插件支持文献检索、元 数据管理、全文分析和智能问答等功能,让 Claude、ChatGPT 等 AI 工具能够直接访问和操作您的文献库。
相关推荐
Zotero插件调试环境搭建:利用浏览器开发者工具进行调试
Zotero插件调试环境搭建:利用浏览器开发者工具进行调试 你是否在开发Zotero插件时遇到过难以定位的bug?是否希望像调试网页一样直观地调试Zotero插
桌面应用科研Jasminum插件开发环境搭建:从零开始构建你的第一个Zotero插件
想要为Zotero开发中文元数据抓取插件?Jasminum插件为你提供了完美的起点!这个终极指南将带你从零开始,快速搭建专业的Zotero插件开发环境,让你轻松
科研Zotero Scihub 测试与构建指南:如何为插件贡献代码
Zotero Scihub 测试与构建指南:如何为插件贡献代码 Zotero Scihub 是一款能够自动从 Sci Hub 下载 Zotero 文献 PDF
插件系统网页爬虫科研
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考