MCP-WebScan 网页扫描分析工具
通过使用页面获取、链接提取、站点爬取等工具,从网页中抓取、分析和提取信息,从而实现对网络内容的扫描和分析。
服务介绍
MCP Webscan 服务器
一个用于网页内容扫描和分析的模型上下文协议 (MCP) 服务器。该服务器提供了从网页抓取、分析和提取信息的工具。
特性
- 页面抓取:将网页转换为 Markdown 格式以便于分析
- 链接提取:从网页中提取并分析链接
- 站点爬取:递归地爬取网站以发现内容
- 链接检查:识别网页上的断链
- 模式匹配:查找与特定模式匹配的 URL
- 站点地图生成:为网站生成 XML 站点地图
安装
通过 Smithery 安装
要通过 Smithery 自动安装适用于 Claude 桌面版的 Webscan:
npx -y @smithery/cli install mcp-server-webscan --client claude
手动安装
# Clone the repository
git clone <repository-url>
cd mcp-server-webscan
# Install dependencies
npm install
# Build the project
npm run build
使用
启动服务器
npm start
服务器运行在 stdio 传输上,使其与像 Claude 桌面版这样的 MCP 客户端兼容。
可用工具
-
fetch-page- 抓取一个网页并将其转换为 Markdown。
- 参数:
url(必需):要抓取页面的 URL。selector(可选):CSS 选择器以定位特定内容。
-
extract-links- 提取网页中的所有链接及其文本。
- 参数:
url(必需):要分析页面的 URL。baseUrl(可选):基本 URL 以过滤链接。limit(可选,默认值:100):返回的最大链接数。
-
crawl-site- 递归地爬取一个网站,直到指定的深度。
- 参数:
url(必需):开始爬取的 URL。maxDepth(可选,默认值:2):最大爬取深度(0-5)。
-
check-links- 检查页面上的断链。
- 参数:
url(必需):要检查链接的 URL。
-
find-patterns- 查找与特定模式匹配的 URL。
- 参数:
url(必需):搜索的 URL。pattern(必需):与 JavaScript 兼容的正则表达式模式,用于匹配 URL。
-
generate-site-map- 通过爬取生成简单的 XML 站点地图。
- 参数:
url(必需):站点地图爬取的根 URL。maxDepth(可选,默认值:2):发现 URL 的最大爬取深度(0-5)。limit(可选,默认值:1000):站点地图中包含的最大 URL 数量。
与 Claude 桌面版一起使用的示例
- 在您的 Claude 桌面版设置中配置服务器:
{
"mcpServers": {
"webscan": {
"command": "node",
"args": ["path/to/mcp-server-webscan/build/index.js"], // Corrected path
"env": {
"NODE_ENV": "development",
"LOG_LEVEL": "info" // Example: Set log level via env var
}
}
}
}
- 在对话中使用这些工具:
Could you fetch the content from https://example.com and convert it to Markdown?
开发
前提条件
- Node.js >= 18
- npm
项目结构(重构后)
mcp-server-webscan/
├── src/
│ ├── config/
│ │ └── ConfigurationManager.ts
│ ├── services/
│ │ ├── CheckLinksService.ts
│ │ ├── CrawlSiteService.ts
│ │ ├── ExtractLinksService.ts
│ │ ├── FetchPageService.ts
│ │ ├── FindPatternsService.ts
│ │ ├── GenerateSitemapService.ts
│ │ └── index.ts
│ ├── tools/
│ │ ├── checkLinksTool.ts
│ │ ├── checkLinksToolParams.ts
│ │ ├── crawlSiteTool.ts
│ │ ├── crawlSiteToolParams.ts
│ │ ├── extractLinksTool.ts
│ │ ├── extractLinksToolParams.ts
│ │ ├── fetchPageTool.ts
│ │ ├── fetchPageToolParams.ts
│ │ ├── findPatterns.ts
│ │ ├── findPatternsToolParams.ts
│ │ ├── generateSitemapTool.ts
│ │ ├── generateSitemapToolParams.ts
│ │ └── index.ts
│ ├── types/
│ │ ├── checkLinksTypes.ts
│ │ ├── crawlSiteTypes.ts
│ │ ├── extractLinksTypes.ts
│ │ ├── fetchPageTypes.ts
│ │ ├── findPatternsTypes.ts
│ │ ├── generateSitemapTypes.ts
│ │ └── index.ts
│ ├── utils/
│ │ ├── errors.ts
│ │ ├── index.ts
│ │ ├── logger.ts
│ │ ├── markdownConverter.ts
│ │ └── webUtils.ts
│ ├── initialize.ts
│ └── index.ts # Main server entry point
├── build/ # Compiled JavaScript (Corrected)
├── node_modules/
├── .clinerules
├── .gitignore
├── Dockerfile
├── LICENSE
├── mcp-consistant-servers-guide.md
├── package.json
├── package-lock.json
├── README.md
├── RFC-2025-001-Refactor.md
├── smithery.yaml
└── tsconfig.json
构建
npm run build
开发模式
npm run dev
错误处理
服务器实现了全面的错误处理机制:
- 无效的参数
- 网络错误
- 内容解析错误
- URL 验证
所有错误都按照 MCP 规范正确格式化。
贡献
- 叉出仓库
- 创建你的功能分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个拉取请求
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件