Deepxiv MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- 这是一个基于 MCP 的后端服务器实现,提供对学术论文数据的访问能力、工具执行以及可渲染的提示模板。通过 JSON-RPC 与客户端通信,允许 LLM 客户端读取论文元数据、读取具体章节、获取全文、获取预览等能力,并通过工具调用实现与外部数据服务的互动。
-
主要功能点
- 暴露 MCP Tools:search_papers、get_paper_metadata、get_paper_section、get_full_paper、get_paper_preview,供客户端调用获取论文相关信息。
- 以 MCP 方式对外提供服务,客户端通过 JSON-RPC 发送请求,服务端返回规范化的 JSON-RPC 响应。
- 会话与状态管理:在服务器端维护对论文的加载状态、章节缓存、全文缓存等,支持多轮对话中的上下文管理。
- 与外部数据服务集成:通过内置的 Reader 访问 rag 数据服务(需提供 DEEPXIV_TOKEN 进行鉴权)。
- 启动与部署:提供一个用于启动 MCP 服务器的入口,并通过 CLI 或直接导入服务器对象运行。
- 安全性与令牌控制:通过环境变量 DEEPXIV_TOKEN 控制对数据服务的访问权限。
-
安装步骤
- 安装带有 MCP 支持的包:pip install deepxiv-sdk[mcp]
- 环境变量配置(示例,不是代码):在运行前设置 DEEPXIV_TOKEN,以便服务器可访问数据服务的受限接口。
- 启动服务器:在安装后环境中执行 deepxiv serve(需要安装的命令行入口来自仓库的 CLI,默认使用 stdio 传输)
-
服务器配置(MCP 客户端需要知道的连接信息,以下为描述性信息,非代码)
- server name(服务器标识,用于在客户端注册)
- command(启动服务器的命令,例如 deepxiv)
- args(启动参数,例如 ["serve"],若需要指定传输方式等也可在此添加)
- 注释说明:
- server_name: 客户端将用该名称标识并连接到对应的 MCP 服务器。
- command: 启动服务端的可执行命令,通常是应用入口命令。
- args: 启动参数,用于指向具体的 MCP 服务(如“serve”表示启动 MCP 服务)。
- 令牌与鉴权:需要在服务器运行时读取环境变量 DEEPXIV_TOKEN,以对 rag 数据服务进行鉴权。
- 服务器配置示例(JSON 说明,非代码块呈现): { "server_name": "deepxiv", "command": "deepxiv", "args": ["serve"] } 说明:以上配置用于 MCP 客户端在启动时识别和连接到该 MCP 服务器。实际使用中,请确保在服务器运行环境中正确设置令牌以及网络/Io 配置,以确保客户端可访问该 MCP 服务器。
-
基本使用方法
- 启动服务器后,MCP 客户端(如 Claude Desktop 等)即可通过配置的 server_name、command、args 连接到该 MCP 服务器,调用工具、获取论文元信息、读取章节、获取全文及预览等。
- 客户端调用示例(简述,不涉及具体代码):
- 调用 search_papers 进行论文检索,返回论文列表及元数据。
- 调用 get_paper_metadata 获取论文的头信息、作者、类别、TLDR 等。
- 调用 get_paper_section 按名称读取特定章节的内容(若需要全文可使用 get_full_paper)。
- 使用 get_paper_preview 获取论文预览,控制数据量,避免大文本加载。
- 运行环境与依赖:
- Python 环境
- 安装 deepxiv-sdk[mcp]
- 运行时需要设置 DEEPXIV_TOKEN,以及可选的 OpenAI/DeepSeek 等 API 访问配置