前言¶
寫學術論文時,讓模型幫忙組織正文不難,難的是引用:模型不知道你庫裏有哪些文獻,隨口給的 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