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

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

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

小夜