前言¶
写学术论文时,让模型帮忙组织正文不难,难的是引用:模型不知道你库里有哪些文献,随口给的 DOI 和年份经常是编的。已有的做法要么手动整理 .bib 文件,要么把文献元数据一段段贴进上下文,都打断工作流。
下面介绍的 zotero-mcp-dsh 是一个 DSH 插件,由 LiJunfeng000000000000 维护,当前版本 0.1.0,MIT 许可证。它把本地 Zotero 文献库接入 DSH,让模型在会话中直接检索文献、读取文献基本信息和 PDF 全文、导出 BibTeX,用于构造 LaTeX 参考文献库并在 tex 中插入 \cite{}。
这是什么¶
zotero-mcp-dsh 是一个 DSH bundle(npm 包格式),package.json 里声明了 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } },通过 pnpm 从 GitHub 安装到 DSH profile。
安装后它注册一个 @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 只读、无需 API key,所以插件本身也不会改动你的 Zotero 库。
有一点要记住:profile 的 cordis.patch.yml 变更会被 HMR 热加载,但新增或升级 bundle 后需要重启 DSH 才能生效。
核心功能¶
安装后,模型侧会新增一组 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 |
列出文献库全部集合(分类) |
安装与启用¶
先做前置准备:本机 Zotero 桌面端需要处于打开状态(本地 API 默认开启)。建议安装 Better BibTeX 以获得稳定的 citekey,但这不是必需项。
然后从 GitHub 安装:
dsh plugin --profile web add github:LiJunfeng000000000000/zotero-mcp-dsh
README 中还提到可以指定 tag 或 branch 安装,例如:
dsh plugin --profile web add github:LiJunfeng000000000000/zotero-mcp-dsh#v0.1.0
注意 README 注明这种 tag 写法要等 tag 发布后才可用,当前是否已发布无法确认,使用前请先到仓库确认。
安装完成后重启 DSH,模型工具列表里就会出现 mcp__zotero__* 这组工具。
如果想绕开 DSH 直接测试 MCP 服务器,可以在包目录下运行:
node server.mjs
然后向 stdin 发送 MCP JSON-RPC 消息即可。
典型用法¶
README 给出了一套可复现的写作工作流,共四步:
1、找文献。调用 mcp__zotero__zotero_search,比如指定 collection: "节理"、query: "numerical manifold",从结果里挑选合适的文献。
2、核对内容。对关键文献用 zotero_get_fulltext 读 PDF 全文,确认方法、公式、结论与正文一致。
3、构造 .bib。用 zotero_export_bibtex 拿到 BibTeX 文本,写入 docs/latex/references.bib 等目标库。
4、插入引用。在正文相应句子后写 \cite{citekey},按 XeLaTeX—BibTeX—XeLaTeX—XeLaTeX 顺序编译。
卸载也很直接:
dsh plugin --profile web remove zotero-mcp-dsh
边界与注意事项¶
经过上面的步骤之前,有几条边界需要清楚:
- MCP 服务器只读,不会修改 Zotero 库。BibTeX 文本由模型写入
.bib文件,文件写入走 DSH 沙箱审计。 - PDF 全文依赖 Zotero 已建立的全文索引。未索引的文献会返回提示,可以在 Zotero 中右键选择「重新索引」。
- 按集合搜索时,没有 citekey 的 PDF 附件条目会被跳过,因为它们不是可引用的文献条目。
- 它依赖
@deepseek-ai/dsh-mcp-client ^0.1.0-rc.6(peerDependencies),本机需要 Node ≥ 18。
和安装任何第三方插件一样,插件以当前 dsh 进程的权限运行,安装前建议先阅读源码与许可证(本项目为 MIT),确认没有问题再装入常用 profile。
结尾¶
如果你平时用 Zotero 管理文献、用 DSH 辅助写 LaTeX,这个插件省掉了在文献库、编辑器和模型之间来回搬运信息的过程:检索、核对、生成 BibTeX 都在会话里完成,引用的 DOI 和年份来自你自己的库而不是模型的记忆。
目录页:https://www.skillhub.cn/plugins/LiJunfeng000000000000/zotero-mcp-dsh
GitHub:https://github.com/LiJunfeng000000000000/zotero-mcp-dsh