zotero-mcp-dsh:把本地 Zotero 文献库接入 DSH

前言

写学术论文时,让模型帮忙组织正文不难,难的是引用:模型不知道你库里有哪些文献,随口给的 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.mjsserver.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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye