pyzotero MCP 服务端
- 项目简介
- 这是一个基于 MCP 的服务器实现,核心功能是向 LLM 客户端提供本地 Zotero 库的资源、可执行工具以及基于 Semantic Scholar 的相关能力,并通过 JSON-RPC 进行请求-响应通信。
- 主要功能点
- 拥有对本地 Zotero 库的资源管理能力(读取项、集合、标签、附件等)。
- 提供可调用的工具集(如检索、获取项、获取全文、收藏夹操作等),便于 LLM 调用外部功能。
- 集成对 Semantic Scholar 的查询能力,支持相关论文、引用、参考文献、以及跨系统的结果整合。
- 通过 MCP 的工具装饰器实现命名接口,并在服务器端处理会话、错误和背离(backoff)等机制。
- 支持多种传输方式(示例中采用 STDIO 转译,后续可扩展为 WebSocket/SSE 等),实现与客户端的标准化 JSON-RPC 交互。
- 安装步骤
- 准备环境:保证 Python 3.10 及以上(因为某些实现依赖新版特性)。
- 安装依赖:在仓库根目录执行安装,确保 MCP 相关依赖可用。
- 启动服务器:通过运行服务器入口程序来启动,默认以 STDIO 传输方式对接客户端。命令示例(请以实际部署方式执行):python -m pyzotero.mcp_server
- 服务器配置(示例,供 MCP 客户端使用参考)
- serverName: zotero
- command: pyzotero-mcp
- args: [] // 如需使用 uvx 或其他包装器,可设置为 ["--from", "pyzotero[mcp]", "pyzotero-mcp"] 注:以上配置用于 MCP 客户端在 Claude Desktop 等环境中定位并启动 MCP 服务。在实际部署中,请按客户端的要求传递相应的 serverName、command 与参数。
- 基本使用方法
- 启动后,客户端通过 MCP 协议向服务器发起请求(如读取资源、调用工具、获取 Prompts 等),服务器返回 JSON-RPC 风格的响应或通知。
- 常见操作包括:搜索本地 Zotero 库项、获取某项细节、列出集合与标签、检索本地全文、以及通过整合 Semantic Scholar 的查询获得扩展信息。
- 在使用中可结合客户端的会话与能力声明,确保安全、可扩展的上下文服务。