返回插件市场

dsh-zotero

模型与数据

Hongcheng-LI/dsh-zotero

DeepSeek Harness 的 Zotero 工具插件:通过 Zotero 本地 API 检索文献库、读取元数据/全文、列出附件、下载 PDF、管理笔记。

  • deepseek-harness
  • dsh
  • dsh-plugin
  • reference-manager
  • scientific-computing
  • zotero
GitHub Stars
16GitHub
浏览量
4DSH Plugin Hub
Forks
2GitHub
开放问题
4GitHub Issues
Manifest 版本
0.1.0dsh-zotero
最近推送
2026年10月7日GitHub
许可证
MITTypeScript
插件类型
Host运行于 DSH Host

验证与兼容性

这里展示目录实际采集到的证据;未声明的信息会明确标为未知。

静态检查通过
01精确来源: github · dsh-zotero@0.1.002验证时间: 2026年8月24日03验证版本: 0.1.0-rc.7
当前版本兼容性
已在当前目录版本验证
声明的 Harness 范围
未声明
声明的平台
未声明
适用 Profile
web
构建授权
未知
权限声明
未声明
外部服务
未声明
遥测声明
未知
未发现已知风险标记

这不是安全背书;安装前仍应查看源码、权限和配置。

查看证据与判定范围

验证仅覆盖标出的来源、版本和 Harness 环境,不代表未来版本仍然兼容。

  • github:Hongcheng-LI/dsh-zotero#01527cf2afae3d802453884f859bf8d2cd217c0f
  • 插件通过清单与静态结构检查,尚未完成运行时加载检查。

README

查看源文件

dsh-zotero

English | 中文

DeepSeek Harness 的 Zotero 工具插件:让 agent 直接检索你的 Zotero 文献库、阅读条目元数据与摘要、列出分类和 PDF 附件、读 PDF 全文、代写读书笔记。通过 Zotero 本地 API(7 代及以上可用,实测 9.x;http://127.0.0.1:23119)访问,无需 API Key,纯 Node 实现,零核心改动。

兼容版本:按 DSH 运行时 0.2.0-rc.x(桌面版 44.x 内核)的插件规范更新——schemastery Config 配置校验与设置表单、locale/ 插件管理器元信息、预构建 lib/ 直装、dsh.plugin.json 已按新规范移除(新运行时不读取该文件)。插件本体不声明任何 @deepseek-ai/dsh-* peer,能通过所有版本的兼容门禁;并用真实 @deepseek-ai/dsh-tools 注册表做契约测试(见「开发」)。

前置条件

  1. 本机安装并运行 Zotero 7 及以上(本地 API 自 7 代引入;本项目在 Zotero 9.0.6 / Windows 上实测通过);
  2. 打开 Zotero:设置 → 高级 → 通用 → 勾选「允许本机上的其他应用程序与 Zotero 通信」。

兼容性说明:读取类工具(检索/条目/全文/附件路径/笔记读取)在 Zotero 9 上全部实测通过。笔记写入(create/append/update/delete)受本地 API 只读限制不可用(见工具表说明)。

工具一览

工具作用
zotero_collections列出文献库的所有分类(collectionKey + 条目数),用于限定检索范围
zotero_search按关键词检索文献库(标题/作者/年份),支持条目类型、分类、标签、年份区间(sinceYear/beforeYear)、排序、分页;mode 控制返回粒度省 token
zotero_recent列出最近添加的条目("我刚导入的文献"场景)
zotero_item按 key 读取条目详情:作者、期刊、DOI、摘要、标签、附件列表
zotero_fulltext读条目全文纯文本:优先读 Zotero 全文缓存(.zotero-ft-cache,零下载),无缓存时现场解析本地 PDF(pdfjs-dist,约 0.3s)并写缓存;仅远程链接附件才下载到工作区
zotero_attachment_path返回附件在 storage 的原始绝对路径,让 read 工具零拷贝直读
zotero_download把条目的 PDF 附件下载到会话工作区(默认),供模型用 read 工具阅读
zotero_notes列出某条目的子笔记,或全库按关键词搜笔记正文
zotero_note笔记写入:create 新增 / append 追加 / update 更新 / delete 删除。⚠️ 实测多数版本的本地 API 为只读(POST/PATCH/DELETE 未开放),写操作会返回明确提示并建议手动操作

示例对话:

在我的 Zotero 里搜一下 transformer 相关的论文,挑 2020 年以后的,把第一篇的全文读一遍,给我写个摘要存进笔记。

安装

方式一:GUI 插件管理器(桌面版 44.x)——设置 → 插件 → 安装,填入仓库地址:

github:Hongcheng-LI/dsh-zotero

方式二:CLI(web / desktop profile 均可):

dsh plugin add github:Hongcheng-LI/dsh-zotero           # 当前 profile
dsh plugin --profile web add github:Hongcheng-LI/dsh-zotero

装好后重启 DSH。仓库自带预构建的 lib/,且不声明任何生命周期脚本——pnpm 10 对声明 prepare 的 git 依赖会直接拒装(ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED),本插件零脚本、免白名单直装;插件自带空配置,不会弄崩启动;Zotero 未运行时工具会返回明确的连接提示。

配置(可选)

默认配置即可用(本地库、端口 23119)。插件导出了 schemastery Config schema:

  • GUI:插件管理器 → dsh-zotero → 配置,直接用表单改(中英双语描述);
  • cordis.patch.yml:在你的 profile($DSH_HOME/profiles/<name>/)里覆盖 tool-zotero 行,然后重启:
- id: tool-zotero
  config:
    baseUrl: http://127.0.0.1:23119   # Zotero 本地 API 地址
    library: user                      # user(我的文献库)或 group:<群组ID>
    downloadDir: D:/papers             # 附件下载目录,缺省存到会话工作区
    dataDir: D:/ZoteroData             # Zotero 数据目录(含 profiles.ini),默认自动探测
    storageDir: .../zotero/storage     # 直接指定 storage 目录(zotero_fulltext / attachment_path 用)
    maxAttachmentBytes: 67108864       # 单附件下载上限,默认 64MB
    maxFulltextChars: 80000            # zotero_fulltext 返回的最大字符数,默认 80000
    maxLimit: 50                       # 检索结果条数上限,默认 50
    timeoutMs: 15000                   # 本地 API 超时(毫秒)

非法配置(比如 library: abc)会在加载期被 Config schema 拒绝并明确报错,而不是等到调用才失败。

全文与附件路径:插件通过本地 API /file 端点的 302 重定向拿到附件的真实磁盘路径(自定义数据目录也能自动识别,无需配置),全文优先读 Zotero 自己维护的 .zotero-ft-cache 缓存(与附件同目录)。dataDir/storageDir 配置仅在重定向不可用时作为兜底。

开发

npm install
npm test           # 构建单元测试(离线,不需要 Zotero)
npm run audit      # 运行时审计:清单 / patch / 构建产物 / locale / 兼容门禁
npm run test:smoke # 真实环境冒烟测试:对本机 Zotero 完整跑一遍工具链

运行时契约测试(可选但推荐):test/registry-contract.test.mjs 会用真实的 DSH 工具注册表注册全部 9 个工具,并跑一遍 execute → output schema 校验 → render 管线(mock 的 Zotero 本地 API,离线可跑)。@deepseek-ai/dsh-tools 刻意不出现在 package.json(插件对 DSH 零运行时依赖),想跑契约测试时装一份与目标运行时一致的版本即可,不装则自动跳过:

npm install --no-save @deepseek-ai/dsh-tools@0.2.0-rc.2
npm test

lib/ 是入库的,且没有 prepare 脚本:DSH 的插件安装走 pnpm,pnpm 10 对声明了 prepare 的 git 依赖会硬性拒装(不是静默跳过),所以构建产物必须入库、生命周期脚本必须为空。改动 src/ 后先 npm run build,把刷新后的 lib/ 一起提交。

结构遵循 DSH 插件规范(0.2.0-rc.x):package.json 的 dsh.bundle.patch 声明、cordis.patch.yml 运行时注入行、schemastery Config 配置 schema、locale/ 插件管理器元信息、src/ 源码、lib/ 构建产物。


Zotero tools for DeepSeek Harness: search your library, read item metadata and abstracts, list collections and PDF attachments, read full text, download PDFs into the session workspace, and attach notes — all through the Zotero local API (no API key needed).

Compatibility: updated for the DSH 0.2.0-rc.x plugin contract (desktop 44.x core) — schemastery Config (validated config + settings form), locale/ metadata for the plugin manager, prebuilt lib/ shipped in-repo (pnpm 10 blocks dependency build scripts), dsh.plugin.json removed per the current spec. The plugin declares no @deepseek-ai/dsh-* peers, so it passes the version-compatibility gate on every DSH release; a contract test runs every tool through the real @deepseek-ai/dsh-tools registry.

Requires Zotero 7+ (tested on 9.0.6 / Windows) running locally with "Allow other applications on this computer" enabled in Settings → Advanced.

ToolWhat it does
zotero_collectionsList library collections with keys and counts
zotero_searchQuick-search items; filters by type, collection, tag, year range; sort/pagination; mode controls verbosity
zotero_recentRecently added items
zotero_itemFull metadata of one item plus attachment keys
zotero_fulltextFull text as plain text (Zotero fulltext cache first, PDF download fallback)
zotero_attachment_pathOn-disk path of a stored attachment (zero-copy read)
zotero_downloadDownload an attachment (PDF) to the workspace
zotero_notesList an item's child notes or search notes library-wide
zotero_noteCreate / append / update / delete notes

Install: dsh plugin add github:Hongcheng-LI/dsh-zotero (or via the desktop plugin manager), then restart DSH. Optional config (baseUrl, library, downloadDir, maxAttachmentBytes, maxLimit, timeoutMs, …) is available both as a settings form (schemastery Config) and under the tool-zotero row of your profile's cordis.patch.yml.

Development: npm install && npm test (offline unit tests), npm run audit (runtime audit), npm run test:smoke (live Zotero). Opt-in contract test against the real DSH registry: npm install --no-save @deepseek-ai/dsh-tools@0.2.0-rc.2 && npm test. lib/ is committed on purpose and the package declares no lifecycle scripts — pnpm 10 hard-fails git installs of packages that declare prepare (ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED).

License

MIT

评论

0
最新优先