MCP Webscan Server
Obtener, analizar y extraer información de páginas web.
Documentación
MCP Webscan Server
Un servidor de Model Context Protocol (MCP) para el escaneo y análisis de contenido web. Este servidor proporciona herramientas para obtener, analizar y extraer información de páginas web.
Características
- Obtención de páginas: Convierte páginas web a Markdown para un análisis fácil
- Extracción de enlaces: Extrae y analiza enlaces de páginas web
- Rastreo de sitios: Rastrea sitios web de forma recursiva para descubrir contenido
- Verificación de enlaces: Identifica enlaces rotos en páginas web
- Coincidencia de patrones: Encuentra URLs que coincidan con patrones específicos
- Generación de sitemaps: Genera sitemaps XML para sitios web
Instalación
Instalación mediante Smithery
Para instalar Webscan para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install mcp-server-webscan --client claude
Instalación manual
# Clone the repository
git clone <repository-url>
cd mcp-server-webscan
# Install dependencies
npm install
# Build the project
npm run build
Uso
Iniciar el servidor
npm start
El servidor se ejecuta en el transporte stdio, lo que lo hace compatible con clientes MCP como Claude Desktop.
Herramientas disponibles
-
fetch-page- Obtiene una página web y la convierte a Markdown.
- Parámetros:
url(obligatorio): URL de la página a obtener.selector(opcional): Selector CSS para apuntar a contenido específico.
-
extract-links- Extrae todos los enlaces de una página web con su texto.
- Parámetros:
url(obligatorio): URL de la página a analizar.baseUrl(opcional): URL base para filtrar enlaces.limit(opcional, predeterminado: 100): Número máximo de enlaces a devolver.
-
crawl-site- Rastrea un sitio web de forma recursiva hasta una profundidad especificada.
- Parámetros:
url(obligatorio): URL inicial para rastrear.maxDepth(opcional, predeterminado: 2): Profundidad máxima de rastreo (0-5).
-
check-links- Verifica si hay enlaces rotos en una página.
- Parámetros:
url(obligatorio): URL para verificar enlaces.
-
find-patterns- Encuentra URLs que coincidan con un patrón específico.
- Parámetros:
url(obligatorio): URL para buscar.pattern(obligatorio): Patrón de expresión regular compatible con JavaScript para comparar URLs.
-
generate-site-map- Genera un sitemap XML simple mediante rastreo.
- Parámetros:
url(obligatorio): URL raíz para el rastreo del sitemap.maxDepth(opcional, predeterminado: 2): Profundidad máxima de rastreo para descubrir URLs (0-5).limit(opcional, predeterminado: 1000): Número máximo de URLs para incluir en el sitemap.
Ejemplo de uso con Claude Desktop
- Configura el servidor en la configuración de 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
}
}
}
}
- Usa las herramientas en tus conversaciones:
Could you fetch the content from https://example.com and convert it to Markdown?
Desarrollo
Requisitos previos
- Node.js >= 18
- npm
Estructura del proyecto (post-refactorización)
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
Compilación
npm run build
Modo de desarrollo
npm run dev
Ejecución de evaluaciones
El paquete de evaluaciones carga un cliente mcp que luego ejecuta el archivo index.ts, por lo que no es necesario reconstruir entre pruebas. Puedes cargar variables de entorno prefijando el comando npx. La documentación completa se puede encontrar aquí.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/extractLinksTool.ts
Manejo de errores
El servidor implementa un manejo integral de errores:
- Parámetros no válidos
- Errores de red
- Errores de análisis de contenido
- Validación de URLs
Todos los errores se formatean correctamente según la especificación MCP.
Contribuciones
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Haz commit de tus cambios (
git commit -m 'Add some amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - Abre una solicitud de extracción (Pull Request)
Licencia
Licencia MIT: consulta el archivo LICENSE para obtener más detalles
