Zotero研究库访问服务

一个提供全面访问Zotero研究库的MCP服务器,包括元数据、摘要、注释和全文PDF内容。

  • by drxaibi
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 drxaibi/zotero-mcp

使用说明

Zotero MCP服务器

A. 模型上下文协议(MCP) 提供对您的 佐特罗 研究图书馆。为法学硕士提供论文的完整背景,包括元数据、摘要、笔记、注释和全文PDF内容。

特性

  • 🔍 完整图书馆搜索:按标题、作者、标签或全文内容搜索项目
  • 📚 完整元数据:访问所有项目字段、创建者、标签和集合
  • 📄 全文访问:提取和搜索PDF内容
  • ✏️ 注释和注释:访问PDF亮点、评论和用户笔记
  • 📖 引用:生成各种风格的格式化书目(APA、MLA、芝加哥等)
  • 🔄 双后端:在Web API(远程)和本地SQLite数据库之间切换

快速开始

先决条件

  • Node.js >= 18.0.0
  • A. 佐特罗 具有API密钥的帐户 (仅限Web API模式-本地模式不需要)

检查是否安装了Node.js:

node -v

如果未安装或版本低于18,请从以下网址下载 nodejs.org (建议使用LTS)或使用版本管理器:

# Windows (winget)
winget install OpenJS.NodeJS.LTS

# macOS (Homebrew)
brew install node

# Linux (apt)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

安装

# Clone the repository
git clone https://github.com/drxaibi/zotero-mcp.git
cd zotero-mcp

# Install dependencies
npm install

# Build the project
npm run build

获取Zotero API密钥

  1. 首选 Zotero API密钥
  2. 使用以下权限创建新密钥:
    • ✅ 允许访问库
    • ✅ 允许笔记访问
    • ❌ 允许写访问(不需要)
  3. 注意你的 用户ID 显示在按键页面的顶部
  4. 复制生成的API密钥

配置

选择您的AI助手并按照设置说明进行操作:


MCP配置

将以下配置添加到MCP客户端。用实际路径替换路径 zotero-mcp 位置:

{
  "mcpServers": {
    "zotero": {
      "command": "node",
      "args": ["C:/path/to/zotero-mcp/dist/index.js"],
      "env": {
        // Web API mode (default)
        "ZOTERO_API_KEY": "your-api-key-here",
        "ZOTERO_USER_ID": "your-user-id-here"
        
        // Local mode (uncomment below, comment out API_KEY and USER_ID above)
        // "ZOTERO_MODE": "local"
        // "ZOTERO_DATA_DIR": ""  // Leave empty for auto-detection, or set your path
      }
    }
  }
}

路径格式:使用正斜杠(/)或逃过一劫(\\).始终使用绝对路径。
本地模式:使用前关闭Zotero应用程序(SQLite文件锁定)。


VS代码+副本注释:使用 "servers" 而不是 "mcpServers" 作为根密钥:

{
  "servers": {
    "zotero": {
      "command": "node",
      "args": ["C:/path/to/zotero-mcp/dist/index.js"],
      "env": {
        // Web API mode (default)
        "ZOTERO_API_KEY": "your-api-key-here",
        "ZOTERO_USER_ID": "your-user-id-here"
        
        // Local mode (uncomment below, comment out API_KEY and USER_ID above)
        // "ZOTERO_MODE": "local"
        // "ZOTERO_DATA_DIR": ""  // Leave empty for auto-detection, or set your path
      }
    }
  }
}

在哪里添加配置

客户端 配置文件位置 根密钥
克劳德桌面版 视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
mcpServers
VS代码+副本 .vscode/mcp.json 在工作空间中 servers
VS代码+克劳德 .vscode/mcp.json 在工作空间中 mcpServers
克劳德代码(CLI) 视窗: %USERPROFILE%\.claude\settings.json
macOS/Linux: ~/.claude/settings.json
mcpServers
光标 .cursor/mcp.json 在工作空间中
或设置→ 特性→ MCP服务器
mcpServers

添加配置后,重新启动客户端以加载服务器。


配置选项

设置 默认值 说明
ZOTERO_API_KEY 必需的 您的Zotero API密钥
ZOTERO_USER_ID 必需的 您的Zotero用户ID
ZOTERO_MODE web web (API)或 local (SQLite)
ZOTERO_GROUP_ID 空 组库ID(如果访问组而不是个人)
ZOTERO_DEFAULT_LIMIT 25 每次查询的结果(1-100)
ZOTERO_CACHE_TTL 300 缓存持续时间(秒)
ZOTERO_MAX_FULLTEXT_LENGTH 100000 全文提取的最大字符数
ZOTERO_DATA_DIR 自动检测 Zotero数据文件夹的路径(仅限本地模式)
ZOTERO_CACHE_ENABLED true 启用/禁用响应缓存
ZOTERO_EXTRACT_PDF true 启用PDF文本提取

具有所有选项的完整配置:

{
  "mcpServers": {
    "zotero": {
      "command": "node",
      "args": ["C:/path/to/zotero-mcp/dist/index.js"],
      "env": {
        // Required for Web API mode
        "ZOTERO_API_KEY": "your-api-key-here",
        "ZOTERO_USER_ID": "your-user-id-here",
        
        // Optional settings
        "ZOTERO_MODE": "web",
        "ZOTERO_GROUP_ID": "",
        "ZOTERO_DEFAULT_LIMIT": "25",
        "ZOTERO_CACHE_ENABLED": "true",
        "ZOTERO_CACHE_TTL": "300",
        "ZOTERO_EXTRACT_PDF": "true",
        "ZOTERO_MAX_FULLTEXT_LENGTH": "100000"
        
        // Local mode (uncomment and comment out API_KEY/USER_ID above)
        // "ZOTERO_MODE": "local"
        // "ZOTERO_DATA_DIR": ""  // Leave empty for auto-detection, or set your path
      }
    }
  }
}

本地模式注释:

  • 不需要API密钥-只需设置 ZOTERO_MODE 到 local
  • Zotero应用程序必须 关闭 使用本地模式时(SQLite文件锁定)

查找您的Zotero数据目录:

  1. 打开Zotero应用程序
  2. 首选 Edit → 设置 (Windows/Linux)或 佐特罗→ 设置 (macOS)
  3. 点击 高级 → 文件和文件夹
  4. 寻找 数据目录位置 --复制此路径

自动检测: 离开 ZOTERO_DATA_DIR 空的("")或者完全省略它。服务器将自动查找:

  • 窗户: C:\Users\<YourUsername>\Zotero
  • macOS: /Users/<YourUsername>/Zotero
  • Linux: /home/<YourUsername>/Zotero

如果自动检测失败,从Zotero设置中设置确切的路径:

"ZOTERO_DATA_DIR": "C:/Users/John/Zotero"  // Use YOUR actual path

可用工具

工具 说明
search_library 按查询、标签、类型或集合搜索项目
get_item 获取包含所有元数据的完整项目详细信息
get_item_fulltext 从PDF中提取全文
get_item_notes 获取附加到项目的所有注释
get_item_annotations 获取PDF亮点和评论
list_collections 列出所有收藏
get_collection_items 获取收藏中的项目
list_tags 列出所有带有计数的标签
search_fulltext 搜索所有PDF内容
get_bibliography 生成格式化引用
get_related_items 查找相关项目
get_recent_items 获取最近添加/修改的项目

可用资源

资源 描述
zotero://library/stats 图书馆统计概述
zotero://collections 完整的集合层次结构
zotero://tags 所有带有项目计数的标签
zotero://recent 最近修改的项目
zotero://schema/item-types 支持的项目类型

示例提示

连接后,您可以问Claude以下问题:

  • “在我的Zotero库中搜索有关机器学习的论文”
  • “使用ABC123键获取论文全文”
  • “我在这篇论文上做了什么注释?”
  • “向我展示我的《文学评论》收藏中的所有论文”
  • “查找标记为“方法论”的论文”
  • “为这三篇论文生成APA引用”
  • “本周我添加了哪些文件?”
  • “总结我的气候变化论文中的主要发现”

建筑

┌─────────────────────────────────────────────────────────────┐
│                     MCP Server (index.ts)                   │
├─────────────────────────────────────────────────────────────┤
│  Tools              │  Resources                            │
│  - search_library   │  - zotero://library/stats             │
│  - get_item         │  - zotero://collections               │
│  - get_fulltext     │  - zotero://tags                      │
│  - ...              │  - ...                                │
├─────────────────────┴───────────────────────────────────────┤
│                    Backend Interface                        │
├─────────────────────────────────────────────────────────────┤
│   Web API Backend          │      Local SQLite Backend      │
│   (api.zotero.org)         │      (zotero.sqlite)           │
└─────────────────────────────────────────────────────────────┘

故障排除

“ZOTERO_API_KEY是必需的”

确保您已在MCP配置中设置了环境变量。

“无法检测Zotero数据目录”

在本地模式下,设置 ZOTERO_DATA_DIR 明确地将Zotero数据文件夹路径。

“数据库已锁定”(本地模式)

在使用本地模式之前关闭Zotero。Zotero在运行时锁定SQLite数据库。

没有全文结果

确保Zotero已为您的PDF建立索引。在Zotero:编辑→ 偏好→ 搜索→ 重建索引。

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

引用

如果你在研究或工作中使用这个项目,请引用它:

@software{zotero_mcp_2026,
  author = {drxaibi},
  title = {Zotero MCP Server: Model Context Protocol Server for Zotero},
  year = {2026},
  url = {https://github.com/drxaibi/zotero-mcp},
  note = {A Model Context Protocol server providing LLM access to Zotero research libraries}
}

或者以文本格式:

(2026年) Zotero MCP服务器:Zotero的模型上下文协议服务器GitHub。https://github.com/drxaibi/zotero-mcp

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

相关项目