MCP Webscan Server
Buscar, analisar e extrair informações de páginas web.
Documentação
MCP Webscan Server
Um servidor Model Context Protocol (MCP) para varredura e análise de conteúdo web. Este servidor fornece ferramentas para buscar, analisar e extrair informações de páginas web.
Recursos
- Busca de Páginas: Converte páginas web em Markdown para facilitar a análise
- Extração de Links: Extrai e analisa links de páginas web
- Rastreamento de Sites: Rastreia sites recursivamente para descobrir conteúdo
- Verificação de Links: Identifica links quebrados em páginas web
- Correspondência de Padrões: Encontra URLs que correspondem a padrões específicos
- Geração de Sitemaps: Gera sitemaps XML para sites
Instalação
Instalação via Smithery
Para instalar o Webscan para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install mcp-server-webscan --client claude
Instalação Manual
# Clone the repository
git clone <repository-url>
cd mcp-server-webscan
# Install dependencies
npm install
# Build the project
npm run build
Uso
Iniciando o Servidor
npm start
O servidor roda no transporte stdio, tornando-o compatível com clientes MCP como o Claude Desktop.
Ferramentas Disponíveis
-
fetch-page- Busca uma página web e a converte em Markdown.
- Parâmetros:
url(obrigatório): URL da página a ser buscada.selector(opcional): Seletor CSS para direcionar conteúdo específico.
-
extract-links- Extrai todos os links de uma página web com seus textos.
- Parâmetros:
url(obrigatório): URL da página a ser analisada.baseUrl(opcional): URL base para filtrar links.limit(opcional, padrão: 100): Número máximo de links a retornar.
-
crawl-site- Rastreia um site recursivamente até uma profundidade especificada.
- Parâmetros:
url(obrigatório): URL inicial para rastrear.maxDepth(opcional, padrão: 2): Profundidade máxima de rastreamento (0-5).
-
check-links- Verifica links quebrados em uma página.
- Parâmetros:
url(obrigatório): URL para verificar links.
-
find-patterns- Encontra URLs que correspondem a um padrão específico.
- Parâmetros:
url(obrigatório): URL para pesquisar.pattern(obrigatório): Padrão regex compatível com JavaScript para corresponder às URLs.
-
generate-site-map- Gera um sitemap XML simples por meio de rastreamento.
- Parâmetros:
url(obrigatório): URL raiz para o rastreamento do sitemap.maxDepth(opcional, padrão: 2): Profundidade máxima de rastreamento para descobrir URLs (0-5).limit(opcional, padrão: 1000): Número máximo de URLs a incluir no sitemap.
Exemplo de Uso com Claude Desktop
- Configure o servidor nas configurações do 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
}
}
}
}
- Use as ferramentas em suas conversas:
Could you fetch the content from https://example.com and convert it to Markdown?
Desenvolvimento
Pré-requisitos
- Node.js >= 18
- npm
Estrutura do Projeto (Pós-Refatoração)
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
Build
npm run build
Modo de Desenvolvimento
npm run dev
Executando evals
O pacote de evals carrega um cliente mcp que executa o arquivo index.ts, portanto não há necessidade de recompilar entre os testes. Você pode carregar variáveis de ambiente prefixando o comando npx. A documentação completa pode ser encontrada aqui.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/extractLinksTool.ts
Tratamento de Erros
O servidor implementa tratamento abrangente de erros:
- Parâmetros inválidos
- Erros de rede
- Erros de análise de conteúdo
- Validação de URL
Todos os erros são formatados adequadamente de acordo com a especificação MCP.
Contribuindo
- Faça um fork do repositório
- Crie sua branch de funcionalidade (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Licença
Licença MIT - consulte o arquivo LICENSE para obter detalhes
