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.
Demo
Obtén respuestas a preguntas sobre cualquier sitio web aprovechando el poder de los sitemaps.
Cursor: ¿cuántas páginas tiene modelcontextprotocol.io?
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:
Luego selecciona visualize_sitemap:
Ahora ingresamos windsurf.com:
Y obtenemos una visualización del sitemap:
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:
- Inicia el servidor:
uvx sitemap-mcp-server
- 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
- Argumentos:
-
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
- Argumentos:
-
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
- Argumentos:
-
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
- Argumentos:
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:
- Haz clic en el icono + junto al campo de mensaje en Claude Desktop
- Selecciona la plantilla deseada de la lista
- Completa la URL del sitio web cuando se te solicite
- 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
- Este servidor MCP aprovecha la librería ultimate-sitemap-parser
- Construido con el Model Context Protocol SDK de Python
Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.