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
本地运行
- 安装依赖:
- 定义环境变量(参见 配置 部分)。
- 启动服务器:
本地运行 crawl4ai-service 微服务
- 进入服务文件夹并安装依赖:
- 构建并启动微服务:
- 微服务将在其默认端口上可用(查看
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:
toolController
和resourceController
用于 MCP 和 REST 端点。
- CrawlService: 获取和解析网页。
- ExpressServer: 初始化中间件、路由、日志记录和错误处理。
自定义
- 在
src/services/crawlService.ts
中添加新的抓取或解析逻辑。
- 通过修改
src/mcp/SimpleMcpServer.ts
或添加新的控制器来扩展 MCP 功能。
- 通过
configService.ts
中的环境变量调整性能和安全性。
示例图表
架构图
抓取序列图
控制器类图
参考
- 概述: 高层次架构和概念概述。
- 代码结构: 源文件的详细解释。
- MCP API 参考: 端点规范和 JSON-RPC 方法。
- Model Context Protocol SDK: 官方 SDK 文档。
- Mermaid: 图表语法指南。
- Crawl4AI 服务: 用于获取和提取网页内容的微服务。
许可证
本项目采用 MIT 许可证(参见
package.json
中的 license
字段)。- Author:waytomcp
- URL:https://www.waytomcp.com/article/SteffenHebestreit/Webcrawl-MCP
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!