Zotero MCP服务器

为Zotero实现的模型上下文协议服务器,提供对Zotero库的访问功能,适用于AI助手集成。

作者 By kujenga
本地部署 文献管理 AI集成
GitHub

Zotero的模型上下文协议服务器

这个项目是一个python服务器,它实现了 模型上下文协议(MCP) 为了 先生,让您在AI助手中访问您的Zotero库。它旨在实现一组与Zotero的小型但最有用的交互,以便与 MCP客户端.

Zotero Server MCP server

特性

此MCP服务器提供以下工具:

  • zotero_search_items:使用文本查询在Zotero库中搜索项目
  • zotero_item_metadata:获取特定Zotero项目的详细元数据信息
  • zotero_item_fulltext:获取特定Zotero项目的全文(即PDF内容)

这些可以通过任何MCP客户端或通过 MCP检查员.

每个工具都会返回包含Zotero项目相关信息的格式化文本,Claude等AI助手可以按顺序使用它们,搜索项目,然后检索其元数据或文本内容。

安装

此服务器可以运行在 Zotero桌面应用程序提供的本地API)或通过 Zotero Web API.本地API的响应可能会稍快一些,但要求Zotero应用程序在启用API的同一台计算机上运行。要启用本地API,请执行以下步骤:

  1. 打开Zotero并打开“Zotero设置”
  2. 在“高级”选项卡下,选中“允许此计算机上的其他应用程序与Zotero通信”的框。

[!重要] 访问 /fulltext 本地API上的端点,该端点允许检索库中项目的全部内容,您需要安装 Beta Build先生 (截至2025年3月30日)。一旦7.1发布,情况将不再如此。看https://github.com/zotero/zotero/pull/5004了解更多信息。如果您不想这样做,请改用Web API。

要使用Zotero Web API,您需要创建一个API密钥,并在Zotero帐户设置中找到您的库ID(通常是您的用户ID): https://www.zotero.org/settings/keys

以下是可用的配置选项:

  • ZOTERO_LOCAL=true:使用本地Zotero API(默认值:false,请参阅下面的注释)
  • ZOTERO_API_KEY:您的Zotero API密钥(本地API不需要)
  • ZOTERO_LIBRARY_ID:您的Zotero库ID(用户库的用户ID,本地API不需要)
  • ZOTERO_LIBRARY_TYPE:库的类型(用户或组,默认值:用户)

uvx 使用本地Zotero API

将其与Claude Desktop一起使用,并直接安装python uvx,将以下内容添加到 mcpServers 配置:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13{ “mcpServers”: { “zotero”: { “command”: “uvx”, “args”: [“—upgrade”, “zotero-mcp”], “env”: { “ZOTERO_LOCAL”: “true”, “ZOTERO_API_KEY”: "", “ZOTERO_LIBRARY_ID”: "" } } } }


这 `--upgrade` flag是可选的,当有新版本可用时,它将拉取最新版本。如果你没有 `uvx` 已安装,您可以使用 `pipx run` 相反,或者在本地克隆此存储库并使用中的说明 发展 在…下面


### 带有Zotero Web API的Docker


如果您想在Docker容器中运行此MCP服务器,您可以使用以下配置,插入您的API密钥和库ID:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
  "mcpServers": {
    "zotero": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "ZOTERO_API_KEY=PLACEHOLDER",
        "-e", "ZOTERO_LIBRARY_ID=PLACEHOLDER",
        "ghcr.io/kujenga/zotero-mcp:main"
      ],
    }
  }
}

要更新到较新版本,请运行 docker pull ghcr.io/kujenga/zotero-mcp:main.也可以使用基于docker的安装与本地Zotero API对话,但您需要修改上述命令,以确保Zotero应用程序的本地API接口具有网络连接。

发展

有关更改和为项目做出贡献的信息。

  1. 克隆此存储库
  2. 安装依赖项 紫外线 通过运行: uv sync
  3. 创建一个 .env 项目根目录中包含上述环境变量的文件

启动 MCP检查员 地方发展:

BASH``` 1npx @modelcontextprotocol/inspector uv run zotero-mcp


要在Claude Desktop上测试本地存储库,请运行 `echo $PWD/.venv/bin/zotero-mcp` 在此目录下的shell中,然后在Claude Desktop配置中设置以下内容


JSON```
1
2
3
4
5
6
7
8
9
10{
  "mcpServers": {
    "zotero": {
      "command": "/path/to/zotero-mcp/.venv/bin/zotero-mcp"
      "env": {
        // Whatever configuration is desired.
      }
    }
  }
}

运行测试

要运行测试套件,请执行以下操作:

BASH``` 1uv run pytest


### Docker开发


使用以下命令构建容器映像:


SH```
1docker build . -t zotero-mcp:local

要使用MCP检查器测试容器,请运行以下命令:

SH``` 1 2 3 4 5 6 7npx @modelcontextprotocol/inspector
-e ZOTERO_API_KEY=$ZOTERO_API_KEY
-e ZOTERO_LIBRARY_ID=$ZOTERO_LIBRARY_ID
docker run —rm -i
—env ZOTERO_API_KEY
—env ZOTERO_LIBRARY_ID
zotero-mcp:local


## 相关文件


- [https://modelcontextprotocol.io/tutorials/building-mcp-with-llms](https://modelcontextprotocol.io/tutorials/building-mcp-with-llms)
- [https://github.com/modelcontextprotocol/python-sdk](https://github.com/modelcontextprotocol/python-sdk)
- [https://pyzotero.readthedocs.io/en/latest/](https://pyzotero.readthedocs.io/en/latest/)
- [https://www.zotero.org/support/dev/web_api/v3/start](https://www.zotero.org/support/dev/web_api/v3/start)
- [https://modelcontextprotocol.io/llms-full.txtLLM可以使用](https://modelcontextprotocol.io/llms-full.txtLLM%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8)