LiJunfeng000000000000
zotero-mcp-dsh
把本地 Zotero 文献库接入 DSH,让模型在会话中 直接检索文献、读取文献基本信息和 PDF 全文
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
zotero-mcp-dsh
DeepSeek Harness (DSH) 插件:把本地 Zotero 文献库接入 DSH,让模型在会话中
直接检索文献、读取文献基本信息和 PDF 全文、导出 BibTeX,用于构造 LaTeX
参考文献库并在 tex 中插入 \cite{}。
模型侧新增工具(mcp__zotero__*):
| 工具 | 功能 |
|---|---|
zotero_search | 按关键词/集合/年份搜索文献,返回 itemKey、citekey、标题、作者、年份、期刊、DOI |
zotero_get_item | 按 itemKey 取单条文献完整元数据(摘要、关键词、附件列表) |
zotero_get_fulltext | 读取文献 PDF 全文(Zotero 全文索引),maxChars 控制长度 |
zotero_export_bibtex | 按查询/集合/itemKeys 导出 Better BibTeX 风格 BibTeX 文本(含 citekey) |
zotero_list_collections | 列出文献库全部集合(分类) |
原理
- 这是一个 DSH bundle:npm 包格式,
package.json声明"dsh": { "bundle": { "patch": "./cordis.patch.yml" } },通过 pnpm 从 GitHub 安装到 DSH profile。 cordis.patch.yml注册一个@deepseek-ai/dsh-mcp-client插件实例(stdio transport),spawn 包内的server.mjs。server.mjs是零依赖 MCP 服务器(Node ≥ 18),通过 Zotero 桌面端本地 HTTP API(http://127.0.0.1:23119,只读、无需 API key)工作。- 安装后作为 profile 的 bundle 层加载;profile 的
cordis.patch.yml变更会 被 HMR 热加载,新增/升级 bundle 后需重启 DSH 生效。
安装
前置条件:本机 Zotero 桌面端已打开(本地 API 默认开启)。建议安装 Better BibTeX 以获得 稳定 citekey(非必需)。
从 GitHub 安装:
dsh plugin --profile web add github:LiJunfeng000000000000/zotero-mcp-dsh
或指定 tag/branch(tag 发布后可用):
dsh plugin --profile web add github:LiJunfeng000000000000/zotero-mcp-dsh#v0.1.0
安装完成后重启 DSH,模型工具列表即出现 mcp__zotero__*。
写作工作流
- 找文献:
mcp__zotero__zotero_search(如collection: "节理"、query: "numerical manifold"),从结果挑选合适的文献。 - 核对内容:对关键文献用
zotero_get_fulltext读 PDF 全文,确认方法、 公式、结论与正文一致。 - 构造 .bib:用
zotero_export_bibtex拿 BibTeX 文本,写入docs/latex/references.bib等目标库。 - 插入引用:在正文相应句子后写
\cite{citekey},按 XeLaTeX—BibTeX—XeLaTeX—XeLaTeX 顺序编译。
卸载
dsh plugin --profile web remove zotero-mcp-dsh
开发
# 本地直接测试 MCP 服务器(不经 DSH)
node server.mjs
# 向 stdin 发送 MCP JSON-RPC 消息即可
说明与边界
- MCP 服务器只读:不会修改 Zotero 库;BibTeX 文本由模型写入 .bib 文件 (文件写入走 DSH 沙箱审计)。
- PDF 全文依赖 Zotero 已建立全文索引;未索引的文献返回提示(可在 Zotero 中 右键"重新索引")。
- 集合搜索时,无 citekey 的 PDF 附件条目会被跳过(它们不是可引用的文献条目)。
License
MIT