Zotero MCP 服务器

Zotero MCP 服务器是一个为Claude等MCP客户端提供本地Zotero库只读访问的服务,支持搜索论文、检索元数据、生成BibTeX和浏览文献集合,通过可选插件还可实现创建集合和组织文献的写入功能。

  • by lucidbard
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 lucidbard/zotero-mcp

使用说明

Zotero MCP服务器

A. 模型上下文协议 为Claude(和其他MCP客户端)提供本地只读访问权限的服务器 佐特罗 图书馆。搜索论文、检索元数据、生成BibTeX和浏览收藏——所有这些都可以通过你的人工智能助手完成。

使用可选 Zotero MCP桥 安装在Zotero 7中的插件,服务器还获得了写入功能:创建集合和组织项目。

它做什么

只读工具(始终可用)

工具 说明
search_papers 在标题、作者、摘要、标签、DOI和引用关键字之间进行模糊关键字搜索
get_paper_details 论文的完整元数据(作者、摘要、标签、集合、PDF路径)
get_bibtex 生成具有正确转义和类型映射的BibTeX条目
list_collections 列出所有Zotero系列
get_collection_items 浏览特定收藏中的论文
get_pdf_path 解析论文PDF附件的文件系统路径
library_stats 摘要统计(项目计数、集合、插件状态)

编写工具(需要Zotero MCP Bridge插件)

这些工具仅在安装了MCP Bridge插件的Zotero运行时出现:

工具 说明
create_collection 创建新集合(可选嵌套在父集合下)
add_to_collection 按项目键将论文添加到收藏中
remove_from_collection 从收藏中删除论文(不删除它们)

注: MCP服务器和插件都不能在Zotero中创建新论文。论文导入由Zotero自己处理(浏览器连接器、手动导入、拖放等)。一旦论文进入你的Zotero库,这个服务器就可以让你的人工智能工具访问它们。

需求

  • Python 3.10+
  • 佐特罗 在本地安装SQLite数据库
  • Zotero的更好BibTeX (可选,推荐用于引用关键字)
  • Zotero MCP桥插件(可选,用于写操作)

安装

git clone https://github.com/lucidbard/zotero-mcp.git
cd zotero-mcp
pip install -r requirements.txt

或者直接安装依赖项:

pip install "mcp>=1.0" "httpx>=0.27"

Zotero MCP桥接插件

Zotero MCP Bridge插件将HTTP端点添加到Zotero的内置服务器(端口23119),MCP服务器调用该服务器进行写操作。如果没有插件,MCP服务器将以只读模式工作。

构建插件

cd zotero-plugin
npm install
npm run build

这创造了 dist/zotero-mcp-bridge-latest.xpi.

安装插件

  1. 打开Zotero 7
  2. 首选 工具>附加组件
  3. 点击齿轮图标> 从文件安装附加组件
  4. 选择 zotero-plugin/dist/zotero-mcp-bridge-latest.xpi
  5. 出现提示时重新启动Zotero

验证插件

运行Zotero并安装插件后:

# Health check
curl http://127.0.0.1:23119/zotero-mcp/health

# Or run the test suite
cd zotero-plugin && npm test

设置

克劳德桌面

添加到您的 claude_desktop_config.json:

{
    "mcpServers": {
        "zotero": {
            "command": "python",
            "args": ["/absolute/path/to/zotero_mcp.py"]
        }
    }
}

克劳德代码

添加到MCP设置(.claude/settings.json 或项目设置):

{
    "mcpServers": {
        "zotero": {
            "command": "python",
            "args": ["/absolute/path/to/zotero_mcp.py"]
        }
    }
}

自定义Zotero数据库路径

服务器自动检测常见的Zotero数据库位置:

  • ~/Zotero/zotero.sqlite (Linux、macOS、Windows)
  • ~/snap/zotero-snap/common/Zotero/zotero.sqlite (Linux快照)
  • ~/Library/Application Support/Zotero/Profiles/*/zotero.sqlite (macOS)

如果您的数据库在其他地方,请设置 ZOTERO_DB_PATH 环境变量:

{
    "mcpServers": {
        "zotero": {
            "command": "python",
            "args": ["/absolute/path/to/zotero_mcp.py"],
            "env": {
                "ZOTERO_DB_PATH": "/path/to/your/Zotero/zotero.sqlite"
            }
        }
    }
}

运作原理

读取路径(SQLite)

服务器打开一个 只读 SQLite直接连接到Zotero的本地数据库。无需网络请求,无需API密钥,无需Zotero帐户。

写入路径(插件HTTP)

当调用写入工具时,MCP服务器向Zotero MCP Bridge插件发送HTTP请求 http://127.0.0.1:23119/zotero-mcp/rpc.该插件使用Zotero的内部JavaScript API来执行操作。这种方法是必要的,因为Zotero的SQLite数据库被正在运行的Zotero进程锁定了。

搜索排名

搜索使用多信号相关性排名系统:

  • 精确匹配 (字段等于查询词)得分最高
  • 单词边界匹配 (该词作为一个整体出现)接下来得分
  • 子字符串匹配 (术语出现在字段内)
  • 模糊匹配 (拼写错误/未遂错误的三元组相似性)抓住了其余部分
  • 字段加权:标题和引用关键字(3x)、DOI和作者(2x)、标签(1.5x)、摘要(1x)
  • 当所有术语都匹配时,多词查询将获得AND奖励

更好的BibTeX支持

如果你有 更好的BibTeX 安装后,服务器会自动使用其引用密钥。它检查了两个来源:

  1. 这 extra Zotero项目中的字段(用于 Citation Key: 或 bibtex: 前缀)
  2. 这 better-bibtex.sqlite 数据库(用于BBT管理的密钥)

PDF分辨率

这 get_pdf_path 该工具解决了Zotero的内部问题 storage:filename 绝对文件系统路径的路径,因此您的AI助手可以直接引用或读取PDF附件。

示例用法

配置后,您可以向Claude询问以下问题:

  • “在我的Zotero库中搜索关于神经辐射场的论文”
  • “获取纸张KEY123的BibTeX条目”
  • “我在Zotero有什么收藏?”
  • “向我展示我的《文学评论》收藏中的所有论文”
  • “我的图书馆里有多少篇论文?”
  • “创建一个名为“深度学习调查”的新集合” (需要插件)
  • “将论文KEY1和KEY2添加到我的‘相关作品’收藏中” (需要插件)

局限性

  • 无法创建纸张:MCP服务器和插件都无法将新论文导入Zotero。使用Zotero的浏览器连接器或桌面应用程序添加论文。
  • 仅限本地:直接访问本地SQLite数据库。不与Zotero的云服务同步。
  • 单用户:专为个人使用而设计,只需安装一个Zotero。
  • 没有PDF内容:返回PDF文件路径,但不提取或搜索PDF文本内容。
  • 编写工具需要运行Zotero:集合管理要求Zotero在安装了MCP Bridge插件的情况下打开。

许可证

麻省理工学院