Token导航 LogoToken导航TokenDH.com
zoty (Eric Tramel) logo
搜索检索stdio官方级别未说明来源级核验

zoty (Eric Tramel)

MCP Server

轻量级Zotero MCP服务器,为AI代理提供8种工具连接本地Zotero库,包括文献搜索、段落检索、参考文献导出等功能。

工具数

8

提示词数

0

GitHub Stars

13

资源数

0
文献管理PythonClaude搜索Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

eric-tramel

提供方

eric-tramel

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uvx zoty mcp

详细介绍

佐蒂

用于AI代理的轻量级Zotero MCP服务器。

Zoty demo

它的作用

将AI代理连接到本地Zotero库的MCP服务器。提供8个工具:BM25对标题、摘要和索引附件全文进行排名搜索,项目内段落搜索,集合浏览,项目查找,BibTeX加上搜索返回的项目关键字的格式化引用导出,以及通过arXiv ID或DOI自动PDF附件进行论文摄取。

需求

  • Python 3.10+
  • Zotero桌面运行(默认目标为Zotero 8;也支持Zotero 7)
  • Zotero本地API已启用:Zotero设置>高级>配置编辑器>设置 extensions.zotero.httpServer.localAPI.enabledtrue
  • Zoty Bridge插件 已安装(用于PDF附件和收藏分配)

添加到您的代理

克劳德代码

从命令行添加:

claude mcp add zoty -- uvx zoty mcp

添加到您的 .mcp.json~/.claude/settings.json:

{
  "mcpServers": {
    "zoty": {
      "command": "uvx",
      "args": ["zoty", "mcp"]
    }
  }
}

法典

从命令行添加:

codex mcp add zoty -- uvx zoty mcp

添加到您的 ~/.codex/config.toml:

[mcp_servers.zoty]
command = "uvx"
args = ["zoty", "mcp"]

安装

需要 紫外线.

无需安装即可运行(建议用于MCP设置):

uvx zoty mcp

持久安装:

uv tool install zoty

升级已安装的副本:

uv tool upgrade zoty

如果你和佐蒂一起跑步 uvx 使用以下命令刷新到最新发布的版本,而不是安装它:

uvx --refresh zoty --version
uvx --refresh zoty doctor
uvx --refresh zoty setup

从本地结账:

uv run zoty mcp

# Or install from source as a tool
uv tool install .

Python包通过PyPI为用户提供CLI和MCP服务器。Zotero bridge插件在Python包内作为捆绑的XPI分发,并作为 GitHub发布资产;未来的桥梁更新将通过Zotero进行宣传 更新随每个版本发布的清单。

PDF阅读建议

为了在编码代理从zoty打开附件文件路径时获得最佳效果,请确保 poppler 并且相关的Poppler实用程序安装在机器上。在实践中,这通常意味着使用以下工具 pdftotext, pdfinfo,以及 pdftoppm 可在 PATH.

这对Claude Code尤为重要,它使用这些实用程序高效地阅读PDF页面。没有它们,代理可能仍然能够自己打开PDF文件,但页面提取往往更慢、更不可靠。

典型安装:

# macOS
brew install poppler

# Ubuntu / Debian
sudo apt-get install poppler-utils

Zoty Bridge插件

一个小小的Zotero 7/8/9插件,让zoty在Zotero的特权上下文中执行JavaScript。这对于无法通过REST API的操作是必需的:PDF附件和集合分配都需要写入Zotero的SQLite数据库,该数据库会锁定外部进程。桥通过在Zotero内部运行JS来避开这个问题。

安装插件

  1. 找到捆绑的XPI,下载 zoty-bridge.xpi最新版本,或者自己构建:
   uvx --refresh zoty setup --download-only
   uvx --refresh zoty setup
   make build
  1. 在Zotero中:工具>插件,然后拖动 zoty-bridge.xpi 进入插件窗口。
  2. 重新启动Zotero。
  3. 确认网桥正在运行:
   uvx --refresh zoty doctor

zoty setup 是一个有指导的、安全的默认流。它检查Zotero的本地API, 检查网桥端点,将您指向打包的XPI,然后告诉 下一个具体行动。 zoty setup --check 相当于没有 变化。先进的地方发展可以利用 zoty setup --install-profile但是 当Zotero运行时,该命令拒绝复制到Zotero配置文件中。

当前的网桥版本包括Zotero更新清单,因此安装此XPI后,Zotero可以检测到未来的网桥更新。

如果您升级到Zotero 9,并在Zotero 8上安装了一座旧桥,Zotero可能会显示该桥已禁用。安装最新版本 zoty-bridge.xpi 在插件窗口中,重新启动Zotero,如果Zotero在重新安装后将其禁用,则启用网桥。

仅用于本地开发,您还可以从命令行安装构建的XPI。请先退出Zotero,然后从存储库根目录运行以下命令:

ZOTERO_PROFILE="$(
  python3 - <<'PY'
from configparser import ConfigParser
from pathlib import Path

root = Path.home() / "Library/Application Support/Zotero"
profiles = ConfigParser()
profiles.read(root / "profiles.ini")

for section in profiles.sections():
    if section.startswith("Profile") and profiles.get(section, "Default", fallback="0") == "1":
        path = Path(profiles.get(section, "Path"))
        print(root / path if profiles.get(section, "IsRelative", fallback="1") == "1" else path)
        break
else:
    raise SystemExit("No default Zotero profile found")
PY
)"
mkdir -p "$ZOTERO_PROFILE/extensions"
cp zotero-plugin/dist/zoty-bridge.xpi "$ZOTERO_PROFILE/extensions/zoty-bridge@zoty.dev.xpi"

网桥在上运行HTTP服务器 localhost:24119 当Zotero开放时。无需配置。

工具

工具说明
search_library查找Zotero库中与关键字查询匹配的项目,按BM25对标题、摘要和索引附件全文进行排名,并提供可选的纯文本片段、附件计数、集合过滤、集合键/名称对和不区分大小写的项目类型值,如 journalArticle, preprint, conferencePaper, book, bookSection, thesis, report,以及 webpage
search_within_item使用以下公式查找一个或多个已知项目中与关键字查询匹配的段落 search_library 结果钻入一篇特定的论文或比较几篇论文;顶级项目摘要包含父标题和每个匹配的父标题 key 仅在多项目排名中重复
list_collections列出所有包含关键字、名称和项目计数的集合
list_collection_items列出特定集合中的项目,包括每个项目上的集合键/名称对
get_item单个的完整元数据 item_key 或批量 item_keys;使用 key 场从 search_library, list_collection_items,或 get_recent_items 结果。单键请求保留详细的项目有效载荷,而批处理请求返回紧凑的项目记录 items 加上每项可选 errors
get_bibtex_and_citation_for_itemsBibTeX加上单个引文和参考书目文本的格式 item_key 或批量 item_keys;使用 key 场从 search_library, list_collection_items,或 get_recent_items 结果。两者可以结合使用,必须至少提供一个
get_recent_items最近添加的项目,按日期排序,每个项目上都有集合键/名称对
add_paper通过arXiv ID或DOI添加论文,自动下载PDF并防止收集范围内的重复

附件有效载荷包括 linkMode 作为描述性字符串(imported_file, imported_url, linked_file,或 linked_url)而不是Zotero的内部数字代码。

运作原理

读取操作仍在使用 皮佐特罗 对于集合/项API,但搜索现在在以下位置运行一个持久的sidecar索引 ~/.cache/zoty/fulltext-index.zoty从以下位置读取Zotero元数据 zotero.sqlite 在不可变模式下,重用Zotero提取的附件文本缓存(.zotero-ft-cache)对于PDF/EPUB/HTML全文,在本地对文本进行分块,并在后台重建不可变的BM25快照。启动时,zoty会同步加载活动快照(如果存在),然后在Zotero内容更改时排队刷新。

写入操作使用Zotero连接器端点(/connector/saveItems)以创建元数据项。PDF附件和集合分配通过zoty bridge插件,该插件在Zotero的特权上下文中执行JavaScript。同一个桥被用作瘦控制平面,要求Zotero在需要时生成缺失的全文缓存;zoty不会将插件拥有的表添加到 zotero.sqlite 或者通过网桥传输原始附件文本。这种双路径设计之所以存在,是因为Zotero的SQLite数据库使用了独占锁定——在Zotero运行时,外部进程可以读取它(不可变模式),但不能写入它。

arXiv流量在内部受到限制,以遵守arXiv的访问策略。并发 add_paper 调用队列透明:元数据请求以3秒的间隔序列化,arXiv PDF下载单独受到速率限制。

发展

make build          # build zotero-plugin/dist/zoty-bridge.xpi and zoty-bridge-updates.json
make verify-build   # rebuild plugin artifacts and fail if committed artifacts are stale
make test    # run Python unit tests

发布作者应遵循 发布.md桥XPI和Zotero更新清单是确定性构建输出,由CI检查。

在Zotero运行和zoty桥安装后,运行本地MCP烟雾测试:

uv run scripts/smoke_mcp.py

烟雾测试故意不属于 make test 因为这取决于 当地Zotero简介和图书馆内容。请参阅脚本docstring 锁定项目/集合键或仅选择复制的环境变量 add_paper 测试。

许可证

麻省理工学院

跨会话的速率限制

zoty速率限制了正在运行的MCP服务器进程内的arXiv流量。如果几个 add_paper 调用一次到达同一台服务器,zoty将它们排队,并以arXiv安全的速度排出元数据请求。

该限制器不会在单独的zoty进程之间共享。如果您在每个代理、会话或编辑器窗口中启动一个zoty实例,则每个进程都将强制执行自己的限制,并且组合请求率仍可能超过arXiv策略。

如果您希望多个会话同时提取论文,请启动一个长期运行的zoty服务器,并将所有客户端指向同一实例。

启动一个共享本地服务器:

zoty mcp --transport streamable-http --host 127.0.0.1 --port 8000

共享MCP端点将是:

http://127.0.0.1:8000/mcp

如果需要其他端点路径:

zoty mcp \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8000 \
  --streamable-http-path /zoty-mcp

然后将每个客户端指向相同的URL:

http://127.0.0.1:8000/zoty-mcp

对于通过URL支持远程MCP服务器的客户端,配置应该如下所示:

{
  "mcpServers": {
    "zoty": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

当多个会话可能并行导入论文时,请避免这种模式,因为它会为每个客户端启动一个单独的zoty进程:

{
  "mcpServers": {
    "zoty": {
      "command": "zoty",
      "args": ["mcp"]
    }
  }
}

推荐的启动顺序:

  1. 启动Zotero并确保Zotero连接器和 zoty-bridge 插件可用。
  2. 启动一个共享zoty服务器 zoty mcp --transport streamable-http.
  3. 配置每个代理或MCP客户端以连接到该现有服务器URL,而不是启动其自己的副本。
  4. 让共享服务器为每个人序列化arXiv元数据查找和速率限制arXiv PDF下载。

这使代理端的行为保持简单:工具调用在负载下可能需要更长的时间,但它们会自然排队,而不是敲打 export.arxiv.org.

目录标签

目录标签

文献管理PythonClaude搜索本地部署AI代理集成学术搜索参考文献导出PDF处理AI工具集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP