返回 MCP 目录
public公开dns本地运行

Zotero MCP 服务端

一个服务器,它使像Anthropic Claude App这样的MCP客户端能够与本地Zotero图书馆互动,允许用户通过自然语言搜索论文、管理笔记和访问研究资料。

article

README

Zotero MCP Server

A MCP (Model Context Protocol) server to let your MCP clients (e.g. Anthropic Claude App, Goose, possibly vscode Cline too) interact with your local Zotero repository. This server enables programmatic access to your Zotero library, allowing you to search papers, manage notes, and more.

Note: If you don't want to set up API keys, see the SQLite database server option below.

Setup

  1. Install dependencies:
pip install -e .
  1. Create a .env file in the root directory with your Zotero credentials:
ZOTERO_API_KEY=your_api_key_here
ZOTERO_USER_ID=your_user_id_here

You can get your Zotero API key and user ID from Zotero's settings page.

Integration with Anthropic Desktop App

To integrate with the Anthropic Desktop app, add the following configuration to ~/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"
      ]
    }
  }
}

If this gives an error like

{"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

Then use the following config, make sure to do uv venv; source .venv/bin/activate; uv pip install ".[dev]" to make sure the server can be run with all dependencies.

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

Alternative: Direct SQLite Database Access

If you prefer to bypass the Zotero API entirely and work directly with the SQLite database, use zotero_mcp/db_server.py. This approach gives you full control over your Zotero data without API limitations. Note that you'll need to close Zotero completely before using this method since SQLite locks the database when Zotero is running.

Claude MCP config for the SQLite version:

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

Example Usage

Zotero MCP Server Example

The server allows you to:

  • Search papers by tags
  • Get paper details and attached notes
  • Add notes to papers
  • Request paper summaries
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端