zotero-claude-bridge

zotero-claude-bridge

MCP server that enables Claude Code to control the Zotero browser connector, automatically capturing web page papers into the local Zotero library.

Category
访问服务器

README

zotero-claude-bridge

让 Claude Code 通过 MCP 控制 Zotero 浏览器连接器,把网页里的论文自动抓取到本地 Zotero 库。

Claude Code CLI
   │  MCP 工具调用(stdio)
   ▼
zotero-claude-bridge(本仓库,Python MCP server,内嵌 WebSocket server)
   │  WebSocket  ws://127.0.0.1:24731/bridge
   ▼
改造后的 Zotero Connector(claude-bridge.js,service worker 长连接)
   │  复用原有 translator + itemSaver
   ▼
本地 Zotero 桌面客户端(POST http://127.0.0.1:23119/connector/saveItems)

本仓库只是桥。它必须和改造后的 Zotero Connector 扩展(fork 仓库 zotero-connectors-claude-code)配合使用。

它解决什么

  • 原生 Zotero Connector 只能"手动逐篇点图标保存",无法被程序驱动。
  • zotero-mcp 只能操作 Zotero 库内的增删改查,不能从网页提取元数据。
  • 本桥让 Claude Code 编程驱动 Connector 的几百个 translator:抓当前页 / 给 URL 列表批量入库,全部走原生存储路径进本地 Zotero。

前置条件

  1. 改造后的 Connector 扩展已构建并以"加载已解压扩展程序"方式装进 Chrome —— 见 connector 仓库的 src/browserExt/claude-bridge.js 与构建说明(build/manifestv3/)。
  2. Zotero 桌面客户端正在运行(http://127.0.0.1:23119/connector/ping 可达)。本机未开云同步也能用,因为全程走本地客户端。

安装

cd zotero-claude-bridge
pip install -e .          # 或 pip install -r requirements.txt

pip install -e . 后 python -m zotero_claude_bridge 与 zotero-claude-bridge 命令都可用。

注册到 Claude Code

任选其一:

A. 命令行(推荐)

claude mcp add zotero-claude-bridge \
  --env ZCB_HOST=127.0.0.1 --env ZCB_PORT=24731 \
  -- python -m zotero_claude_bridge

B. 配置文件(项目级 .mcp.json 或用户级 ~/.claude.json):复制 .mcp.json.example。

注册后在 Claude Code 里即可用这些工具:

工具 作用
zotero_status 检查扩展连接 + Zotero 在线(先调它确认健康)
zotero_capture_active_tab 抓浏览器当前活动 tab
zotero_capture_url 后台开 tab 抓单个 URL,完成后关闭
zotero_capture_urls 批量抓(并发上限 5,单次上限 50)
zotero_ping 调试往返

用法

在 Claude Code 里直接说:

  • "把当前打开的这篇论文抓到 Zotero" → 调 zotero_capture_active_tab
  • "把这 10 个 URL 的论文都抓到 Zotero:<url 列表>" → 调 zotero_capture_urls

返回结构化结果:

{"success": true, "items": [{"title": "...", "itemType": "journalArticle",
  "creators": [...], "DOI": "...", "url": "...", "key": "ABCD1234"}],
 "durationMs": 3210}

先测桥(不装扩展)

# 终端1:起 MCP server(前台 stdio,等 Claude Code 调用)
python -m zotero_claude_bridge

# 终端2:起假扩展(模拟 Connector)
python scripts/fake_extension.py

在 Claude Code 调 zotero_status 应返回 extension_connected: true;调 zotero_capture_active_tab 返回一个 FAKE PAPER 条目。

WebSocket 协议

仅 127.0.0.1,JSON 文本帧:

{v:1, id?, type, action?, data?, ts}
  • type:auth | auth_ok | request | response | notification | error | heartbeat
  • action:ping | get_status | capture_active_tab | capture_url | capture_urls
  • 鉴权(MVP):loopback 信任 + 扩展首帧 auth → server 回 auth_ok。
  • 心跳:双向 30s,60s 无帧则断;扩展指数退避重连。

CaptureResult errorType:no_translator | translator_failure | zotero_offline | timeout | extension_disconnected | cancelled | unknown。

故障排查

现象 原因 / 处理
extension_disconnected Connector 扩展未加载,或 SW 未激活——在 Chrome 打开任意网页(about:blank 不算)触发 SW
zotero_offline Zotero 桌面端没开,或 23119 端口不通——启动 Zotero 客户端
no_translator 该 URL 没有匹配的 translator(非学术页或需登录态已失效)
translator_failure 站点需登录(如知网),在浏览器里重新登录后再抓
WS 连不上 确认端口 24731 未被占用;扩展 service worker 页面无报错;查 %LOCALAPPDATA%\zotero-claude-bridge\bridge.log

配置

环境变量:ZCB_HOST(默认 127.0.0.1)、ZCB_PORT(默认 24731)、ZCB_LOG_LEVEL(默认 INFO)。

扩展端开关:在 Chrome 扩展 storage 里设 claudeBridge.enabled=false 可禁用桥,claudeBridge.port 改端口(需与 server 一致)。

相关仓库

  • 改造的 Connector 扩展:HCLEMINI/zotero-connectors-claude-code(基于 zotero/zotero-connectors)。
  • 本桥与扩展通过 WS 协议契约(见 src/zotero_claude_bridge/schemas.py 与扩展 src/browserExt/claude-bridge.js)保持一致。

License: AGPL-3.0-or-later(与上游 Zotero Connectors 一致)。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选