Sitemap MCP Server

Un servidor para obtener, analizar, parsear y visualizar sitemaps de sitios web.

Documentación

Servidor Sitemap MCP

Descubre la arquitectura de sitios web y analiza la estructura del sitio obteniendo, parseando y visualizando sitemaps desde cualquier URL. Descubre páginas ocultas y extrae jerarquías organizadas sin exploración manual.

Incluye plantillas de prompts listas para usar en Claude Desktop que te permiten analizar sitios web, comprobar la salud del sitemap, extraer URLs, encontrar contenido faltante y crear visualizaciones con solo ingresar una URL.

License PyPI Python Version Status smithery badge

Demo

Obtén respuestas a preguntas sobre cualquier sitio web aprovechando el poder de los sitemaps.

Cursor: ¿cuántas páginas tiene modelcontextprotocol.io?
image
Claude + prompt: visualiza el sitemap en un diagrama de windsurf.com

Haz clic en el botón "attach" (adjuntar) junto al botón de herramientas:

image

Luego selecciona visualize_sitemap:

image

Ahora ingresamos windsurf.com:

image

Y obtenemos una visualización del sitemap:

image

Instalación

Asegúrate de que uv esté instalado.

Instalación en Claude Desktop, Cursor o Windsurf

Añade esta entrada a tu claude_desktop_config.json, ajustes de Cursor, etc.:

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

Reinicia Claude si está en ejecución. Para Cursor simplemente presiona actualizar y/o habilita el servidor MCP en los ajustes.

Instalación mediante Smithery

Para instalar sitemap en Claude Desktop automáticamente a través de 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

Abre el MCP Inspector en http://127.0.0.1:6274, selecciona el transporte stdio y conéctate al 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

Abre el MCP Inspector en http://127.0.0.1:6274, selecciona el transporte sse y conéctate al servidor MCP.

Transporte SSE

Si deseas usar el transporte SSE, sigue estos pasos:

  1. Inicia el servidor:
uvx sitemap-mcp-server
  1. Configura tu cliente MCP, por ejemplo Cursor:
{
  "mcpServers": {
    "sitemap": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

Desarrollo Local

Para instrucciones sobre cómo compilar y ejecutar el proyecto desde el código fuente, consulta la guía DEVELOPERS.md.

Uso

Herramientas

Las siguientes herramientas están disponibles a través del servidor MCP:

  • get_sitemap_tree - Obtener y analizar el árbol de sitemap desde una URL de sitio web

    • Argumentos: url (URL del sitio web), include_pages (opcional, booleano)
    • Devuelve: Representación JSON de la estructura del árbol de sitemap
  • get_sitemap_pages - Obtener todas las páginas del sitemap de un sitio web con opciones de filtrado

    • Argumentos: url (URL del sitio web), limit (opcional), include_metadata (opcional), route (opcional), sitemap_url (opcional), cursor (opcional)
    • Devuelve: Lista JSON de páginas con metadatos de paginación
  • get_sitemap_stats - Obtener estadísticas sobre el sitemap de un sitio web

    • Argumentos: url (URL del sitio web)
    • Devuelve: Objeto JSON con estadísticas del sitemap, incluyendo recuentos de páginas, fechas de modificación y detalles de subsitemaps
  • parse_sitemap_content - Analizar un sitemap directamente desde su contenido XML o texto

    • Argumentos: content (contenido XML del sitemap), include_pages (opcional, booleano)
    • Devuelve: Representación JSON del sitemap analizado

Prompts

El servidor incluye prompts listos para usar que aparecen como plantillas en Claude Desktop. Después de instalar el servidor, verás estas plantillas en el menú "Templates" (haz clic en el icono + junto al campo de mensaje):

  • Analyze Sitemap: Proporciona un análisis completo de la estructura del sitemap de un sitio web
  • Check Sitemap Health: Evalúa métricas de SEO y salud del sitemap
  • Extract URLs from Sitemap: Extrae y filtra URLs específicas de un sitemap
  • Find Missing Content in Sitemap: Identifica faltantes de contenido en el sitemap de un sitio web
  • Visualize Sitemap Structure: Crea una visualización de diagrama Mermaid.js de la estructura del sitemap

Para usar estos prompts:

  1. Haz clic en el icono + junto al campo de mensaje en Claude Desktop
  2. Selecciona la plantilla deseada de la lista
  3. Completa la URL del sitio web cuando se te solicite
  4. Claude ejecutará el análisis de sitemap correspondiente

Ejemplos

Obtener un Sitemap Completo

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

Obtener Páginas con Filtrado y Paginación

Filtrar por Ruta
{
  "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"
  }
}
Paginación Basada en Cursor

El servidor implementa paginación basada en cursor de MCP para manejar sitemaps grandes de manera eficiente:

Solicitud Inicial:

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

Respuesta con Paginación:

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

Solicitud Posterior con Cursor:

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

Cuando no hay más resultados, el campo nextCursor estará ausente en la respuesta.

Obtener Estadísticas del Sitemap

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

La respuesta incluye tanto estadísticas totales como estadísticas detalladas 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
    }
  ]
}

Esto permite a los clientes MCP comprender qué subsitemaps podrían ser de interés para una investigación adicional. Luego puedes usar el parámetro sitemap_url en get_sitemap_pages para filtrar páginas de un subsitemap específico.

Analizar Contenido de Sitemap Directamente

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

Agradecimientos

Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.