使用说明

项目简介

Aspire MCP 网页抓取服务器是一个基于 .NET 9 和 Microsoft Aspire 构建的应用后端。它利用 Model Context Protocol (MCP) 向大型语言模型 (LLM) 客户端提供上下文信息和功能,专注于高效、智能地抓取和处理网页内容。

主要功能点

  1. 网页内容抓取 (WebContentTool):

    • 这是一个通过 MCP 协议暴露给 LLM 客户端的工具。
    • 给定任何 URL,它能抓取页面的 HTML 内容。
    • 自动清理 HTML,移除脚本、样式和不必要的标签。
    • 智能提取主要内容区域(如 '<main>', '<article>' 或特定内容的 '<div>')。
    • 内置缓存机制,提高重复访问速度。
  2. 网站自动爬取 (WebCrawlerService):

    • 虽然不是直接暴露给 LLM 的工具,但这是服务器启动时执行的核心功能之一。
    • 能够解析网站的 'robots.txt' 文件以发现站点地图 URL。
    • 抓取并解析 XML 站点地图,发现所有列出的页面 URL。
    • 遍历这些 URL,并使用 'WebContentReader' 抓取内容,为后续处理或作为上下文提供数据。

安装步骤

  1. 安装前提: 确保您已安装 .NET 9 SDK。Docker 是可选的,用于容器化部署。
  2. 克隆仓库: 打开终端或命令提示符,克隆项目仓库:
    git clone https://github.com/IEvangelist/aspire-mcp.git
  3. 进入项目目录:
    cd aspire-mcp
  4. 运行服务器: 导航到服务器项目目录并运行:
    dotnet run --project AspireMcp.Server
    服务器将启动并监听 Stdio 协议的 MCP 请求。

服务器配置

MCP 客户端连接到此服务器时,需要配置如何启动服务器进程。配置信息通常包含在 MCP 客户端的设置中,指导客户端执行哪个命令来启动服务器。

  • 服务器名称 (server name): 可以是任意标识符,例如 "AspireMcpServer"。
  • 启动命令 (command): 'dotnet'
  • 命令参数 (args): '["run", "--project", "AspireMcp.Server"]'
    • 'run': 指示 dotnet 运行项目。
    • '--project AspireMcp.Server': 指定要运行的项目文件或包含项目文件的目录路径(相对于您运行命令的位置,通常是仓库根目录)。

基本使用方法

一旦服务器通过 Stdio 启动并与 MCP 客户端成功建立连接,LLM 客户端就可以通过 MCP 协议调用服务器暴露的工具。

要利用此服务器抓取网页内容,LLM 客户端会调用名为 'WebContentTool' 的工具(或其内部方法,具体取决于 MCP 客户端的实现细节),并传递一个 URL 作为参数。例如,LLM可能会向服务器发送一个 JSON-RPC 请求,调用 'WebContentTool' 的某个方法(如 'ScrapeContentAsync'),并包含待抓取的 URL:

{
  "jsonrpc": "2.0",
  "method": "tool_call",
  "params": {
    "tool_id": "WebContentTool",
    "method": "ScrapeContentAsync",
    "parameters": ["https://example.com/some-page"]
  },
  "id": 1
}

服务器接收到请求后,将执行 'WebContentTool' 的逻辑,抓取并清理指定 URL 的内容,并将结果作为 JSON-RPC 响应返回给客户端。

信息

分类

网页与API