Peeky-MCP 服务端

以下为简明的使用指南,帮助你快速理解、搭建并使用该 MCP 服务器。

  • 项目简介

    • 该仓库实现了基于 MCP 的服务器端,暴露两个主要工具供 LLM 调用:
      • peeky_web_search:通过本地 SearXNG 后端进行网页检索,并提取可验证的证据片段。
      • peeky_fetch_page:读取指定网页,并在给定查询时提取聚焦内容或完整清洗后的页面内容。
    • 服务器采用 STDIO 传输,与 MCP 客户端通过 JSON-RPC 进行通信,支持会话管理与跨调用去重等能力。
  • 主要功能点

    • MCP 服务端实现与工具暴露:注册并实现 peeky_web_search 与 peeky_fetch_page 两个工具,供 LLM 客户端远程调用。
    • 资源与工具管理:后端封装了网页抓取、文本提取、证据分发等能力,确保返回的内容可验证且可溯源。
    • 异步处理与调度:结合爬取、分词、排序、分段、组块等流程,形成端到端的证据提取链路。
    • 传输协议与会话管理:通过 StdioServerTransport 进行 JSON-RPC 传输,支持同一会话键的跨调用去重,提升检索效率与一致性。
    • 配置与扩展能力:提供了诸多可配置项(如预算、分段策略、摘要/证据格式等),以适应不同的 LLM 场景。
  • 安装步骤

    • 安装依赖并打包编译代码(仓库采用 TypeScript + tsup 构建)。
    • 启动 MCP 服务器:在已经搭建好 MCP 客户端环境后,使用命令启动服务端,通过 CLI 启动时会加载 MCP 服务器实现并进入 STDIO 传输模式供客户端连接。
    • MCP 客户端配置:将服务器作为一个 MCP 服务注册到客户端配置中,示例使用 npx 方式启动服务器并通过环境变量配置与后端 SearXNG 的对接。
  • 服务器配置(MCP 客户端所需的配置示例说明,JSON 结构,包含服务器名称、启动命令与参数等)

    • 服务器名称通常用于在客户端配置中标识该 MCP 服务。以仓库实现为例,你可以在客户端配置中这样注册: { "mcpServers": { "peeky-search": { "command": "npx", "args": ["-y", "peeky-search", "mcp"], "env": { "SEARXNG_URL": "http://localhost:8888" } } } }
    • 说明与注意事项
      • command 与 args 组合决定如何启动 MCP 服务端进程(CLI 会调用该命令以便通过 MCP 客户端连接)。
      • SEARXNG_URL 设定为本地 SearXNG 的访问地址,确保 peeky_web_search 能正确检索网页并提取证据。
      • 该配置示例与仓库 README 中的做法保持一致,便于快速集成到现有的 MCP 客户端工作流中。
    • 注意:MCP 客户端本身并不需要实现服务器端的所有内部实现细节,JSON 配置仅用于启动与连接,实际的调用与返回仍然通过 MCP 规范与服务端实现的工具接口完成。
  • 基本使用方法

    • 启动与连接
      • 启动本 MCP 服务器端后,LLM 客户端通过 JSON-RPC 调用 peeky_web_search 与 peeky_fetch_page 等工具,以获取网页证据、提取片段及上下文信息。
    • 调用流程示例(高层次理解)
      • 客户端向服务器请求网页检索,服务器使用 SearXNG 进行查询,筛选并抓取合适的网页。
      • 服务器对抓取的网页进行内容提取、分段与排序,生成可验证的证据片段(excerpts)。
      • 客户端可以将这些证据片段融合入对话上下文,用于回答、推理或继续检索。
    • 运行与调试
      • 构建并打包后,通过命令行启动 MCP 服务端(在仓库的 CLI 中已有对接入口,运行时将加载并启动 MCP 服务)。
      • 使用 MCP 客户端(或示例配置)连接并测试 peeky_web_search 与 peeky_fetch_page 的可用性。

服务器信息