MCP Webscan Server
Сервер веб-сканирования 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.
Доступные инструменты
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 Desktop
Настройте сервер в настройках 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
}
}
}
}Используйте инструменты в своих беседах:
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.
Внося вклад
Форк репозитория
Создайте ветку функций (
git checkout -b feature/amazing-feature)Зафиксируйте свои изменения (
git commit -m 'Add some amazing feature')Отправить в ветку (
git push origin feature/amazing-feature)Открыть запрос на извлечение
Лицензия
Лицензия MIT — подробности см. в файле LICENSE
Available Tools
6 toolscheck-linksA
Fetches a given URL, extracts all anchor ('a') links, and checks each linked URL for validity (reachability via HEAD request). Returns a list of checked links with their status ('valid', 'broken', or 'invalid_url' if the href attribute couldn't be resolved to a full URL).
Inputs: url (required).
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.
extract-linksA
Extract and analyze all hyperlinks from a web page, organizing them into a structured format with URLs, anchor text, and contextual information. Performance-optimized with stream processing and worker threads for efficient handling of large pages. Works with either a direct URL or raw HTML content. Handles relative and absolute URLs properly by supporting an optional base URL parameter. Results can be limited to prevent overwhelming output for link-dense pages. Returns a comprehensive link inventory that includes destination URLs, link text, titles (if available), and whether links are internal or external to the source domain. Useful for site mapping, content analysis, broken link checking, SEO analysis, and as a preparatory step for targeted crawling operations.
Inputs: url (required), baseUrl, limit.
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
Scored across 6 tools
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.
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.
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.
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
Web data for agents. Extract web pages, crawl websites, discover URLs, and search the web.
On-page crawl, tech-stack detection, DNS, SSL and WHOIS as agent tools.
Web extraction MCP: page content, metadata, articles, contacts, email checks, URL probes.
Fetch web/social data, screenshots, scrape/extract content, generate images, audit SEO & links.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables querying and retrieving content from webpages by parsing sitemap.xml files and fetching HTML content from specified URLs. Includes rate limiting for abuse protection.-
- AlicenseNot gradedqualityCmaintenanceEnables web crawling and content extraction from web pages, supporting multiple output formats like text, markdown, XML, and JSON, with robots.txt compliance and rate limiting.14 npm1MIT
- AlicenseAqualityDmaintenanceEnables web scraping of URLs, including extracting text, links, images, metadata, taking screenshots, and using CSS selectors for structured data extraction.610 npmMIT
- FlicenseAqualityCmaintenanceEnables fetching, crawling, and analyzing web pages with 29 tools for SEO audits, content extraction, and more.29-