Sitemap MCP Server

Um servidor para buscar, analisar, interpretar e visualizar sitemaps de sites.

Documentação

Servidor MCP de Sitemap

Descubra a arquitetura de sites e analise a estrutura do site buscando, analisando e visualizando sitemaps de qualquer URL. Descubra páginas ocultas e extraia hierarquias organizadas sem exploração manual.

Inclui modelos de prompt prontos para uso no Claude Desktop que permitem analisar sites, verificar a saúde do sitemap, extrair URLs, encontrar conteúdo ausente e criar visualizações com apenas uma entrada de URL.

License PyPI Python Version Status smithery badge

Demonstração

Obtenha respostas para perguntas sobre qualquer site aproveitando o poder dos sitemaps.

Cursor: quantas páginas o modelcontextprotocol.io possui?
image
Claude + prompt: visualize o sitemap em um diagrama de windsurf.com

Clique no botão "anexar" ao lado do botão de ferramentas:

image

Em seguida, selecione visualize_sitemap:

image

Agora inserimos windsurf.com:

image

E obtemos uma visualização do sitemap:

image

Instalação

Certifique-se de que o uv esteja instalado.

Instalação no Claude Desktop, Cursor ou Windsurf

Adicione esta entrada ao seu claude_desktop_config.json, configurações do Cursor, etc.:

{
  "mcpServers": {
    "sitemap": {
      "command": "uvx",
      "args": ["sitemap-mcp-server"],
      "env": { "TRANSPORT": "stdio" }
    }
  }
}

Reinicie o Claude se ele estiver em execução. Para o Cursor, basta pressionar atualizar e/ou habilitar o Servidor MCP nas configurações.

Instalação via Smithery

Para instalar o sitemap no Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @mugoosse/sitemap --client claude

MCP Inspector

uv + transporte stdio
npx @modelcontextprotocol/inspector env TRANSPORT=stdio uvx sitemap-mcp-server

Abra o MCP Inspector em http://127.0.0.1:6274,, selecione o transporte stdio e conecte-se ao servidor MCP.

uv + transporte sse
# Start the server
uvx sitemap-mcp-server

# Start the MCP Inspector in a separate terminal
npx @modelcontextprotocol/inspector connect http://127.0.0.1:8050

Abra o MCP Inspector em http://127.0.0.1:6274,, selecione o transporte sse e conecte-se ao servidor MCP.

Transporte SSE

Se você quiser usar o transporte SSE, siga estes passos:

  1. Inicie o servidor:
uvx sitemap-mcp-server
  1. Configure seu Cliente MCP, por exemplo, Cursor:
{
  "mcpServers": {
    "sitemap": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

Desenvolvimento Local

Para instruções sobre como compilar e executar o projeto a partir do código-fonte, consulte o guia DEVELOPERS.md.

Uso

Ferramentas

As seguintes ferramentas estão disponíveis via servidor MCP:

  • get_sitemap_tree - Busca e analisa a árvore do sitemap a partir de uma URL de site

    • Argumentos: url (URL do site), include_pages (opcional, booleano)
    • Retorna: representação JSON da estrutura da árvore do sitemap
  • get_sitemap_pages - Obtém todas as páginas do sitemap de um site com opções de filtragem

    • Argumentos: url (URL do site), limit (opcional), include_metadata (opcional), route (opcional), sitemap_url (opcional), cursor (opcional)
    • Retorna: lista JSON de páginas com metadados de paginação
  • get_sitemap_stats - Obtém estatísticas sobre o sitemap de um site

    • Argumentos: url (URL do site)
    • Retorna: objeto JSON com estatísticas do sitemap, incluindo contagens de páginas, datas de modificação e detalhes de subsitemaps
  • parse_sitemap_content - Analisa um sitemap diretamente de seu conteúdo XML ou texto

    • Argumentos: content (conteúdo XML do sitemap), include_pages (opcional, booleano)
    • Retorna: representação JSON do sitemap analisado

Prompts

O servidor inclui prompts prontos para uso que aparecem como modelos no Claude Desktop. Após instalar o servidor, você verá esses modelos no menu "Modelos" (clique no ícone + ao lado da entrada de mensagem):

  • Analisar Sitemap: Fornece análise abrangente da estrutura do sitemap de um site
  • Verificar Saúde do Sitemap: Avalia métricas de SEO e saúde de um sitemap
  • Extrair URLs do Sitemap: Extrai e filtra URLs específicas de um sitemap
  • Encontrar Conteúdo Ausente no Sitemap: Identifica lacunas de conteúdo no sitemap de um site
  • Visualizar Estrutura do Sitemap: Cria uma visualização de diagrama Mermaid.js da estrutura do sitemap

Para usar esses prompts:

  1. Clique no ícone + ao lado da entrada de mensagem no Claude Desktop
  2. Selecione o modelo desejado na lista
  3. Preencha a URL do site quando solicitado
  4. O Claude executará a análise de sitemap apropriada

Exemplos

Buscar um Sitemap Completo

{
  "name": "get_sitemap_tree",
  "arguments": {
    "url": "https://example.com",
    "include_pages": true
  }
}

Obter Páginas com Filtragem e Paginação

Filtrar por Rota
{
  "name": "get_sitemap_pages",
  "arguments": {
    "url": "https://example.com",
    "limit": 100,
    "include_metadata": true,
    "route": "/blog/"
  }
}
Filtrar por Subsitemap Específico
{
  "name": "get_sitemap_pages",
  "arguments": {
    "url": "https://example.com",
    "limit": 100,
    "include_metadata": true,
    "sitemap_url": "https://example.com/blog-sitemap.xml"
  }
}
Paginação Baseada em Cursor

O servidor implementa paginação baseada em cursor do MCP para lidar com sitemaps grandes de forma eficiente:

Solicitação Inicial:

{
  "name": "get_sitemap_pages",
  "arguments": {
    "url": "https://example.com",
    "limit": 50
  }
}

Resposta com Paginação:

{
  "base_url": "https://example.com",
  "pages": [...],  // First batch of pages
  "limit": 50,
  "nextCursor": "eyJwYWdlIjoxfQ=="
}

Solicitação Subsequente com Cursor:

{
  "name": "get_sitemap_pages",
  "arguments": {
    "url": "https://example.com",
    "limit": 50,
    "cursor": "eyJwYWdlIjoxfQ=="
  }
}

Quando não houver mais resultados, o campo nextCursor estará ausente na resposta.

Obter Estatísticas do Sitemap

{
  "name": "get_sitemap_stats",
  "arguments": {
    "url": "https://example.com"
  }
}

A resposta inclui tanto estatísticas totais quanto estatísticas detalhadas para cada subsitemap:

{
  "total": {
    "url": "https://example.com",
    "page_count": 150,
    "sitemap_count": 3,
    "sitemap_types": ["WebsiteSitemap", "NewsSitemap"],
    "priority_stats": {
      "min": 0.1,
      "max": 1.0,
      "avg": 0.65
    },
    "last_modified_count": 120
  },
  "subsitemaps": [
    {
      "url": "https://example.com/sitemap.xml",
      "type": "WebsiteSitemap",
      "page_count": 100,
      "priority_stats": {
        "min": 0.3,
        "max": 1.0,
        "avg": 0.7
      },
      "last_modified_count": 80
    },
    {
      "url": "https://example.com/blog/sitemap.xml",
      "type": "WebsiteSitemap",
      "page_count": 50,
      "priority_stats": {
        "min": 0.1,
        "max": 0.9,
        "avg": 0.5
      },
      "last_modified_count": 40
    }
  ]
}

Isso permite que os clientes MCP entendam quais subsitemaps podem ser de interesse para investigação adicional. Você pode então usar o parâmetro sitemap_url em get_sitemap_pages para filtrar páginas de um subsitemap específico.

Analisar Conteúdo do Sitemap Diretamente

{
  "name": "parse_sitemap_content",
  "arguments": {
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"><url><loc>https://example.com/</loc></url></urlset>",
    "include_pages": true
  }
}

Agradecimentos

Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.