M

MCP-WebScan 网页扫描分析工具

@bsmi021/mcp-server-webscan
7 Stars 3.1k 次浏览 bsmi021 更新于 2026-08-23

通过使用页面获取、链接提取、站点爬取等工具,从网页中抓取、分析和提取信息,从而实现对网络内容的扫描和分析。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP Webscan 服务器

smithery 徽章

一个用于网页内容扫描和分析的模型上下文协议 (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 客户端兼容。

可用工具

  1. fetch-page

    • 抓取一个网页并将其转换为 Markdown。
    • 参数:
      • url(必需):要抓取页面的 URL。
      • selector(可选):CSS 选择器以定位特定内容。
  2. extract-links

    • 提取网页中的所有链接及其文本。
    • 参数:
      • url(必需):要分析页面的 URL。
      • baseUrl(可选):基本 URL 以过滤链接。
      • limit(可选,默认值:100):返回的最大链接数。
  3. crawl-site

    • 递归地爬取一个网站,直到指定的深度。
    • 参数:
      • url(必需):开始爬取的 URL。
      • maxDepth(可选,默认值:2):最大爬取深度(0-5)。
  4. check-links

    • 检查页面上的断链。
    • 参数:
      • url(必需):要检查链接的 URL。
  5. find-patterns

    • 查找与特定模式匹配的 URL。
    • 参数:
      • url(必需):搜索的 URL。
      • pattern(必需):与 JavaScript 兼容的正则表达式模式,用于匹配 URL。
  6. generate-site-map

    • 通过爬取生成简单的 XML 站点地图。
    • 参数:
      • url(必需):站点地图爬取的根 URL。
      • maxDepth(可选,默认值:2):发现 URL 的最大爬取深度(0-5)。
      • limit(可选,默认值:1000):站点地图中包含的最大 URL 数量。

与 Claude 桌面版一起使用的示例

  1. 在您的 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
      }
    }
  }
}
  1. 在对话中使用这些工具:
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 规范正确格式化。

贡献

  1. 叉出仓库
  2. 创建你的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交你的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个拉取请求

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

相关 MCP 服务