Skip to main content
Glama
MCP Webscan Server

MCP Webscan Server

by bsmi021

Сервер веб-сканирования MCP

значок кузнеца

Сервер Model Context Protocol (MCP) для сканирования и анализа веб-контента. Этот сервер предоставляет инструменты для извлечения, анализа и извлечения информации из веб-страниц.

Функции

  • Извлечение страниц : преобразование веб-страниц в Markdown для легкого анализа

  • Извлечение ссылок : извлечение и анализ ссылок с веб-страниц.

  • Сканирование сайтов : рекурсивное сканирование веб-сайтов для обнаружения контента.

  • Проверка ссылок : выявление неработающих ссылок на веб-страницах.

  • Сопоставление шаблонов : поиск URL-адресов, соответствующих определенным шаблонам.

  • Генерация карты сайта : создание XML-карт сайта для веб-сайтов

Related MCP server: Open Crawler MCP Server

Установка

Установка через Smithery

Чтобы автоматически установить Webscan for Claude Desktop через Smithery :

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-транспорте, что делает его совместимым с клиентами MCP, такими как Claude Desktop.

Доступные инструменты

  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 Desktop

  1. Настройте сервер в настройках Claude Desktop:

{
  "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

  • нпм

Структура проекта (после рефакторинга)

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

Запуск оценок

Пакет evals загружает клиент 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 'Add some amazing feature' )

  4. Отправить в ветку ( git push origin feature/amazing-feature )

  5. Открыть запрос на извлечение

Лицензия

Лицензия MIT — подробности см. в файле LICENSE

Available Tools

6 tools
crawl-siteA

Recursively crawls a website starting from a given URL up to a specified maximum depth. It follows links within the same origin and returns a list of all unique URLs found during the crawl.

Inputs: url (required), maxDepth.

fetch-pageA

Fetches the HTML content of a given URL. Optionally, it can select a specific part of the HTML using a CSS selector and convert only that part (or the whole body if no selector is provided) to Markdown format. Returns the resulting Markdown text.

Inputs: url (required), selector.

find-patternsA

Fetches a web page, extracts all anchor ('a') links, resolves their absolute URLs, and returns a list of links whose URLs match a given JavaScript-compatible regular expression pattern. Includes the URL and anchor text for each match.

Inputs: pattern (required), url (required).

generate-site-mapA

Crawls a website starting from a given URL up to a specified depth and generates an XML sitemap containing the discovered URLs (up to a specified limit).

Inputs: url (required), limit, maxDepth.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 6 tools

    Disambiguation3/5

    There is significant overlap between tools, particularly check-links, extract-links, and find-patterns, which all involve extracting and analyzing links from web pages, leading to potential confusion. However, crawl-site and generate-site-map have more distinct purposes for recursive crawling and sitemap generation, respectively, and fetch-page stands out for content retrieval and conversion.

    Naming Consistency5/5

    All tool names follow a consistent kebab-case pattern with clear verb-noun structures (e.g., check-links, crawl-site, extract-links). This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming style.

    Tool Count5/5

    With 6 tools, the count is well-scoped for a web scanning server, covering key operations like link checking, crawling, content fetching, and sitemap generation. Each tool has a clear role, avoiding bloat while providing comprehensive coverage for the domain.

    Completeness4/5

    The tool set covers core web scanning tasks such as link extraction, validation, crawling, and sitemap generation, with fetch-page adding content retrieval and conversion. A minor gap exists in lacking tools for security scanning (e.g., vulnerability checks) or performance analysis, but the provided tools support most common workflows effectively.

    Related MCP Connectors

    Related MCP Servers