/ 目录 / 演练场 / zotero-mcp
● 社区 cookjohn ⚡ 即开即用

zotero-mcp

作者 cookjohn · cookjohn/zotero-mcp

让 Claude 搜索你的 Zotero 库、阅读已保存的 PDF,并引用资源——作为本地 Zotero 插件运行,没有任何数据离开你的机器。

zotero-mcp 是一个 Zotero 插件(不是独立服务器),通过 Streamable HTTP 在端口 23120 上暴露约 20 个 MCP 工具。涵盖搜索、语义匹配、注释检索以及对本地库的写操作。因为它内置于 Zotero,PDF 永远不需要重新上传。

为什么要用

核心特性

实时演示

实际使用效果

zotero.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": [
        "-y",
        "zotero-mcp"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": [
        "-y",
        "zotero-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": [
        "-y",
        "zotero-mcp"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": [
        "-y",
        "zotero-mcp"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "zotero",
      "command": "npx",
      "args": [
        "-y",
        "zotero-mcp"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "zotero": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "zotero-mcp"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add zotero -- npx -y zotero-mcp

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: zotero-mcp

如何从 Zotero 库草拟文献综述

👤 研究人员、博士生、分析师 ⏱ ~45 min intermediate

何时使用: 你在 Zotero 中收集了 50+ 篇关于某个主题的论文,需要将它们综合成一份连贯的综述。

前置条件
  • Zotero 桌面版并安装 zotero-mcp 插件 — 从发布页面下载 .xpi,Tools → Add-ons → Install from file
  • 已附加并索引 PDF — 右键单击集合 → Rebuild Full-Text Index 如果搜索为空
步骤
  1. 界定综述范围
    在我的 Zotero 集合 'Agentic AI' 中语义搜索关于工具选择策略的论文。返回前 15 篇。✓ 已复制
    → 包含标题、作者、年份和摘要片段的排序列表
  2. 从每篇论文中提取关键观点
    对于那 15 篇论文中的每一篇,阅读全文并提取 (a) 主要观点、(b) 方法、(c) 数据集或设置。✓ 已复制
    → 可以排序的结构化表格
  3. 带引用的综合
    写一份 3 页的综述,按方法对这些论文进行聚类。用 (Author, Year) 风格的 Zotero 项目密钥引用每一个观点。✓ 已复制
    → 带有方括号引用的草稿,映射回你的库

结果: 以你实际拥有的论文为基础的初稿综述,每个观点都可追溯到 Zotero 项目。

注意事项
  • 全文搜索返回空结果 — Zotero 只索引有文本层的 PDF。先对图像 PDF 运行 OCR
  • 引用幻觉 — 要求在每个引用旁边提供 Zotero 项目密钥(例如 ABCD1234)——你可以将其粘贴到验证器中
搭配使用: arxiv

总结你在 Zotero 集合中的高亮内容

👤 热情的读者、知识工作者 ⏱ ~20 min beginner

何时使用: 你在 30 本书/论文中进行了高亮,想要一份主题总结。

步骤
  1. 按颜色/标签提取注释
    搜索我在 'Product Strategy' 集合中的黄色高亮。返回高亮文本加上父项目。✓ 已复制
    → 按来源分组的高亮列表
  2. 聚类为主题
    将高亮内容聚类为 5-7 个主题。对于每个主题,给出 2 句话的综合及源项目。✓ 已复制
    → 带有引用的主题笔记

结果: 将分散的高亮转变为个人知识库笔记。

搭配使用: anytype

自动标记和注释新添加的 Zotero 论文

👤 库维护者 ⏱ ~15 min intermediate

何时使用: 你将论文放入 'Unsorted' 集合,想要每周进行分类。

步骤
  1. 列出本周添加到 'Unsorted' 的项目
    列出最近 7 天内添加到我的 'Unsorted' 集合的 Zotero 项目。✓ 已复制
    → 新项目收件箱
  2. 为每个项目生成标签和 1 行摘要
    对于每一个,根据摘要提出 3-5 个标签和 1 行摘要。通过写入工具应用它们。✓ 已复制
    → 现在项目已标记;摘要保存为笔记附件

结果: 一个自我维护的 Zotero 库,具有一致的标签。

注意事项
  • 写入工具不可逆地修改你的库——无法撤销 — 先在测试集合上运行,或在启用写入前备份 zotero.sqlite

组合

与其他 MCP 搭配,撬动十倍杠杆

zotero + arxiv

Arxiv 优先探索,然后自动保存到 Zotero 以供阅读

找到 10 篇最近关于检索增强代理的 arxiv 论文,然后将我还没有的那些添加到我的 'Agents' Zotero 集合。✓ 已复制
zotero + anytype

文献笔记存放在 Anytype;源 PDF 保存在 Zotero

对于我 'Agents' 集合中的前 10 篇论文,为每篇论文创建一个 Anytype 页面,包含摘要和到 Zotero 项目密钥的反向链接。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
search_library query: str, filters?: { collection, tag, itemType } 跨库的文本/元数据搜索 0 — local DB
search_fulltext query: str 在 PDF 正文内搜索(仅限已索引的文本层) 0
semantic_search query: str, top_k?: int 概念级匹配而非关键词 0 — local embeddings
search_annotations color?, tag?, query? 提取你的高亮/笔记 0
get_item_details item_key: str 展开搜索结果中的参考 0
get_content item_key or attachment_key 将完整论文提供给 Claude 0

成本与限制

运行它的成本

API 配额
无——完全本地
每次调用 Token 数
完整 PDF 获取可能达到 30k+ token;在提供前分块
费用
免费(Zotero 是免费的;该插件是 MIT 许可证)
提示
优先使用返回片段的 search_fulltext 而非返回整个 PDF 的 get_content

安全

权限、密钥、影响范围

凭据存储: 无——插件在 Zotero 内运行;本地 HTTP 在 127.0.0.1:23120
数据出站: 读模式下无;写入在本地修改 zotero.sqlite

故障排查

常见错误与修复

MCP 客户端无法连接到端口 23120

打开 Zotero → Preferences → Zotero MCP Plugin → 验证 'Enable server' 被选中且端口未被阻止

验证: curl http://127.0.0.1:23120/health
全文搜索返回空

PDF 没有文本层。右键单击项目 → Reindex Item,或通过 Zotero 的内置 OCR 运行 OCR

写操作被禁止

在插件偏好设置中启用写模式——默认关闭以确保安全

替代方案

zotero-mcp 对比其他方案

替代方案何时用它替代权衡
官方 Zotero Web API你需要从远程服务器访问云同步需要 API 密钥;受限速率;无语义搜索
Readwise MCP你的高亮存放在 Readwise 而非 Zotero基于云端,需要订阅

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills