返回市场
MCP服务器网页扫描

MCP服务器网页扫描

作者:bsmi02112 星标更新:2025-07-20

项目介绍

MseeP.ai 安全评估徽章

MCP Web扫描服务器

smithery 徽章

这是一个用于网页内容扫描和分析的模型上下文协议(MCP)服务器。该服务器提供了获取、分析和从网页中提取信息的工具。

<a href="https://glama.ai/mcp/servers/u0tna3hemh"><img width="380" height="200" src="https://gips3.baidu.com/it/u=1911438662,3102652737&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Web扫描服务器 MCP服务器" /></a>

特性

  • 页面抓取:将网页转换为Markdown以便于分析
  • 链接提取:从网页中提取并分析链接
  • 站点爬取:递归爬取网站以发现内容
  • 链接检查:识别网页上的断链
  • 模式匹配:查找符合特定模式的URL
  • 生成站点地图:为网站生成XML站点地图

安装

通过Smithery安装

要通过Smithery自动安装Webscan for Claude Desktop:

npx -y @smithery/cli install mcp-server-webscan --client claude

手动安装

# 克隆仓库
git clone <repository-url>
cd mcp-server-webscan

# 安装依赖
npm install

# 构建项目
npm run build

使用方法

启动服务器

npm start

服务器运行在stdio传输上,使其与Claude Desktop等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(必需):与URL匹配的JavaScript兼容正则表达式模式。
  6. generate-site-map

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

使用Claude Desktop的示例

  1. 在你的Claude Desktop设置中配置服务器:
{
  "mcpServers": {
    "webscan": {
      "command": "node",
      "args": ["path/to/mcp-server-webscan/build/index.js"], // 已修正路径
      "env": {
        "NODE_ENV": "development",
        "LOG_LEVEL": "info" // 示例:通过环境变量设置日志级别
      }
    }
  }
}
  1. 在对话中使用工具:
你能从https://example.com抓取内容并转换为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    # 主服务器入口点
├── build/          # 编译后的JavaScript(已修正)
├── 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

运行评估

评估包加载了一个mcp客户端,然后运行index.ts文件,因此在测试之间无需重新构建。你可以通过在npx命令前缀加载环境变量。完整的文档可以在这里找到:这里

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/tools/extractLinksTool.ts

错误处理

服务器实现了全面的错误处理:

  • 无效参数
  • 网络错误
  • 内容解析错误
  • URL验证

所有错误都按照MCP规范进行了适当的格式化。

贡献

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

许可证

MIT许可证 - 详情见LICENSE文件