feedgrab MCP 服务器

使用说明(Markdown 格式)

  • 项目简介

    • feedgrab 提供跨平台内容抓取能力,并通过 mcp_server.py 将“读取任意 URL、批量读取、查看内容 inbox、平台识别”等功能暴露为 MCP 工具,供 LLM 客户端通过 JSON-RPC 调用获取结构化内容。
  • 主要功能点

    • 资源与工具暴露:提供 read_url、read_batch、list_inbox、detect_platform 等 MCP 工具,便于 LLM 客户端按需读取结构化内容与元数据。
    • 内容结构化输出:返回的内容通过 feedgrab/schema.py 定义的 UnifiedContent 模型序列化为标准 JSON,便于下游处理与渲染。
    • 会话与上下文能力:内置 UnifiedInbox 作为“阅读结果的会话上下文”存储,支持去重、提取、标记处理状态等。
    • 多传输支持:CLI 启动使用 stdio 传输,后续也支持 SSE 传输等(通过 mcp_server.py 的参数)。
    • 安全与鲁棒性:URL 校验(防止私有/元数据等 SSRF 风险)、批量调用并发处理,以及对不同来源的 URL 的平台识别与调度。
  • 安装步骤

    • 依赖 MCP 服务相关包(假设项目中已有 mcp 库依赖):
      • 安装完整依赖并进入仓库:
        • 运行环境要求:Python 3.10+
        • 安装依赖与 MCP 支持:pip install -e ".[mcp]"
    • 启动 MCP 服务器
      • 标准 stdio 传输(适合 Claude Code 等)
        • 运行命令:python mcp_server.py
      • SSE 传输(面向网页客户端)
        • 运行命令:python mcp_server.py --transport sse
    • 作为 Claude Code 等插件的配置
      • 配置要求在客户端(Claude Desktop/代理)中设定一个 MCP 服务端信息,客户端需要知道启动命令与参数,以建立连接。
  • 服务器配置(MCP 客户端需要的配置信息,示例为 JSON,包含 server name、command、args 等)

    • 服务器名称:feedgrab
    • 启动命令:python
    • 参数示例(根据仓库信息配置路径填写即可)
    • JSON 说明(非代码块文本展示,便于直接理解与粘贴到配置系统): { "server_name": "feedgrab", "command": "python", "args": ["/路径/feedgrab/mcp_server.py"] }
    • 说明:此配置用于 MCP 客户端在需要与 MCP 服务器建立连接时,按照 server_name 对应的命令与参数来启动并连接服务器。客户端本身不需要实现服务器端逻辑,只需要知道如何启动并指向正确的脚本路径即可。
  • 基本使用方法

    • 启动与连接
      • 通过命令行直接运行 mcp 服务器脚本:python mcp_server.py
      • 或在需要的传输模式下启动:python mcp_server.py --transport sse
    • 客户端使用要点
      • 客户端需要知道 feedgrab 的服务器名称,及其启动命令和参数,便于建立 JSON-RPC 通道。
      • 客户端发送 JSON-RPC 请求来调用工具,例如 read_url、read_batch、list_inbox、detect_platform 等,获取结构化内容、批量结果、以及平台识别信息。
    • 兼容性与扩展
      • 服务器侧通过 feedgrab.reader.UniversalReader 调度不同平台的抓取逻辑,MCP 客户端只需关注请求与返回格式,不必关心底层调度实现。
      • 如需扩展新工具,只需在 mcp_server.py 里新增 @mcp.tool() 的异步函数并实现对应的调用逻辑。
  • 其他

    • MCP 服务器通过 FastMCP 提供工具注册、执行、以及返回 JSON-RPC 响应,核心流程与数据模型已在仓库中实现(资源读取、批量读取、清单浏览、平台识别等)。

服务器信息