Webcrawl-MCP

查看源码
2025-5-12
Words 1270Read Time 4 min
Score:85

实现MCP协议的Web爬虫服务器,提供LangChain兼容的爬虫工具,支持MCP客户端调用。

MCP-Server-Template

本仓库实现了一个用于网页抓取功能的 Model Context Protocol (MCP) 服务器,将抓取工具暴露为与 LangChain 兼容的工具或任何符合 MCP 标准的客户端。它包括两个主要服务:
  • mcp-service: 基于 Express 的 MCP 服务器,用于发现并提供抓取工具。
  • crawl4ai-service: 负责获取和提取网页内容的微服务(源码仓库:crawl4ai

文档

  • OVERVIEW.md: 高层次架构和概念概述。
  • CODE_STRUCTURE.md: 每个源文件及其用途的详细说明。
  • MCP_API.md: 详细的 API 端点规范、JSON-RPC 方法、请求/响应模式、示例和序列图。

文件夹结构

快速入门

使用 Docker

本地运行

  1. 安装依赖:
    1. 定义环境变量(参见 配置 部分)。
    1. 启动服务器:

      本地运行 crawl4ai-service 微服务

      1. 进入服务文件夹并安装依赖:
        1. 构建并启动微服务:
          1. 微服务将在其默认端口上可用(查看 crawl4ai-service/package.json 中的 start 脚本或默认配置)。

          API 使用示例

          详细 API 文档请参见 MCP_API.md。

          获取能力

          响应:

          使用工具(抓取)

          响应:

          资源列表(info)

          响应:

          获取资源(info://about)

          响应:

          环境变量

          • PORT (默认: 11235): MCP 服务器的端口。
          • CRAWL_SERVICE_URL: crawl4ai-service 的 URL(例如 http://localhost:3000)。
          • MAX_REQUEST_SIZE (默认: 10mb): HTTP 请求的最大负载大小。
          • CORS_ORIGINS (默认: *): 允许的 CORS 来源。
          • RATE_LIMIT_WINDOW, RATE_LIMIT_MAX_REQUESTS, CACHE_TTL: 限流和缓存设置。

          配置

          所有环境变量都在 src/services/configService.ts 中加载和验证。

          关键组件

          • SimpleMcpServer: 实现 MCP 发现和工具调用逻辑。
          • Controllers: toolControllerresourceController 用于 MCP 和 REST 端点。
          • CrawlService: 获取和解析网页。
          • ExpressServer: 初始化中间件、路由、日志记录和错误处理。

          自定义

          • src/services/crawlService.ts 中添加新的抓取或解析逻辑。
          • 通过修改 src/mcp/SimpleMcpServer.ts 或添加新的控制器来扩展 MCP 功能。
          • 通过 configService.ts 中的环境变量调整性能和安全性。

          示例图表

          架构图

          抓取序列图

          控制器类图

          参考

          • 概述: 高层次架构和概念概述。
          • 代码结构: 源文件的详细解释。
          • MCP API 参考: 端点规范和 JSON-RPC 方法。
          • Crawl4AI 服务: 用于获取和提取网页内容的微服务。

          许可证

          本项目采用 MIT 许可证(参见 package.json 中的 license 字段)。
          上一篇
          mcp
          下一篇
          playwright-mcp