Zotero文献管理服务

一个MCP服务器,允许MCP客户端(如Anthropic Claude App、Goose等)与本地Zotero存储库交互,实现文献搜索、笔记管理等功能。

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

使用说明

Zotero MCP服务器

MCP(模型上下文协议)服务器,让您的MCP客户端(例如Anthropic Claude App、Goose,可能还有vscode Cline)与您的本地Zotero存储库进行交互。此服务器支持对Zotero库的编程访问,允许您搜索论文、管理笔记等。

备注:如果您不想设置API密钥,请参阅 SQLite数据库服务器选项 在......下面

设置

  1. 安装依赖项:
pip install -e .
  1. 创建一个 .env 使用您的Zotero凭据在根目录中创建文件:
ZOTERO_API_KEY=your_api_key_here
ZOTERO_USER_ID=your_user_id_here

您可以从获取Zotero API密钥和用户ID Zotero的设置页面.

与Anthropic桌面应用程序集成

要与Anthropic Desktop应用程序集成,请将以下配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "zotero-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/swairshah/work/research/zotero-mcp",
        "run",
        "python",
        "-m",
        "zotero_mcp.server"
      ]
    }
  }
}

如果这会产生类似的错误

{"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}
  error: unexpected argument '--directory' found

然后使用以下配置,确保 uv venv; source .venv/bin/activate; uv pip install ".[dev]" 以确保服务器可以在所有依赖项下运行。

{
   "mcpServers": {
      "zotero-mcp-server": {
        "command": "bash",
        "args": [
          "-c",
          "cd /Users/shahswai/personal/zotero-mcp-server && source .venv/bin/activate && python -m zotero_mcp.server"
        ]
      }
    }
  }

替代方案:直接SQLite数据库访问

如果您希望完全绕过Zotero API,直接使用SQLite数据库,请使用 zotero_mcp/db_server.py.这种方法使您能够在没有API限制的情况下完全控制Zotero数据。请注意,在使用此方法之前,您需要完全关闭Zotero,因为当Zotero运行时,SQLite会锁定数据库。

SQLite版本的Claude MCP配置:

{
  "mcpServers": {
    "zotero-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/swair/work/code/zotero-mcp-server",
        "run",
        "python",
        "-m",
        "zotero_mcp.db_server"
      ]
    }
  }
}

示例用法

服务器允许您:

  • 按标签搜索论文
  • 获取纸张详细信息和附加注释
  • 在论文中添加注释
  • 索取论文摘要