arxiv-cli MCP 服务端实现

使用说明内容(Markdown格式)

  • 项目简介

    • 该仓库实现了一个基于 MCP 的服务器端,提供对 Arxiv 论文的搜索、获取以及通过 Cypher 查询对结果进行图形化分析的能力。服务器通过 JSON-RPC 与 MCP 客户端通信,支持初始化、工具列表与调用、以及数据查询等核心 MCP 功能,并提供 stdio 传输通道。
  • 主要功能点

    • 实现 MCP 服务器核心能力:支持 initialize、notifications/initialized、tools/list、tools/call、execute_cypher 等 MCP 请求与响应。
    • 工具集成:提供 search_papers、fetch_paper、execute_cypher 等工具,允许 MCP 客户端查询 Arxiv、获取论文元数据与文本、以及对加载的数据执行 Cypher 查询。
    • 数据管理与缓存:对搜索与抓取结果进行缓存、将结果转化为图数据模型并支持 Cypher 查询。
    • 安全与可扩展性:通过 rmcp 框架定义服务器信息、能力、以及工具路由,支持在多种传输方式下进行通信(当前实现基于 stdio)。
  • 安装步骤

    • 该服务器与客户端在同一个二进制中作为 MCCP 服务器实现,构建后可通过 arxiv-cli mcp 启动 MCP 服务器模式,随后 MCP 客户端即可连接。
    • 构建与运行的核心流程:
      • 编译仓库,确保依赖(Rust 工具链、必要的 Chrome/CDP、网络访问等)就绪。
      • 以 MCP 服务器模式启动:运行 arxiv-cli mcp(通过 CLI 路由进入 MCP 服务器实现)。
      • MCP 客户端连接后即可通过初始化、获取工具列表、调用工具等交互。
  • 服务器配置(MCP 客户端需要配置,以下为服务端信息,供参考配置用途)

    • server name: arxiv-cli
    • command: arxiv-cli
    • args: ["mcp"]
    • 注释:这是 MCP 客户端用来启动并连接到 MCP 服务器所需的最小参数集合,确保服务器在该命令下以 MCP 模式运行。MCP 客户端不需要包含服务器实现的源码,仅配置启动命令与参数即可连接。
  • 基本使用方法

    • 启动 MCP 服务器:在包含可执行文件的环境中执行 arxiv-cli mcp,即进入 MCP 服务器模式,准备接受来自 MCP 客户端的请求。
    • 客户端交互流程示例(简要描述,实际使用以 MCP 客户端为准):
      • 客户端发送 initialize 请求以建立会话和能力声明。
      • 客户端通过 tools/list 查询服务器提供的可用工具,例如 search_papers、fetch_paper、execute_cypher。
      • 客户端调用某个工具(如 search_papers)并传入参数,服务器返回包含数据集名称和图模式描述的结果。
      • 客户端可使用 execute_cypher 对加载的数据执行查询,获取结构化结果。
    • 兼容性与扩展:服务器实现支持并发查询、缓存和对返回的图数据进行 Cypher 查询,便于将结果集可视化或进一步推理。

服务器信息