AllTrails

Busca senderos de senderismo y obtén información detallada de los senderos desde AllTrails.

Documentación

AllTrails MCP Server

Trust Score

CI Python

⚠️ OBSOLETO - PROYECTO ARCHIVADO

Este proyecto ha sido obsoleto y ya no es funcional.

Fecha: 25 de enero de 2026
Motivo: Este proyecto violó los Términos de Servicio de AllTrails al extraer datos de su sitio web sin autorización.

A petición del CTO de AllTrails, toda la funcionalidad de scraping ha sido deshabilitada. Este repositorio se mantiene únicamente con fines históricos y para preservar las estrellas de GitHub, pero el código ya no funciona y no debe usarse.

¿Qué pasó?

AllTrails se puso en contacto conmigo con respecto a este repositorio, citando:

  • Scraping/extracción de datos no autorizados en violación de sus Términos de Servicio
  • Posibles violaciones de propiedad intelectual
  • Redistribución de contenido con derechos de autor sin licencia

Alternativas

Si necesitas datos de senderos, por favor:

  • Usa el sitio web oficial de AllTrails
  • Contacta directamente con AllTrails sobre el acceso a la API
  • Respeta los Términos de Servicio del sitio web y los derechos de autor

Descripción original (para referencia histórica)

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a los datos de AllTrails [OBSOLETO - YA NO FUNCIONAL].

Características

  • 🥾 Buscar senderos por parque nacional
  • 📍 Obtener información detallada del sendero incluyendo dificultad, longitud, ganancia de elevación y descripciones
  • 🏔️ Datos completos de senderos de AllTrails incluyendo calificaciones, tipos de ruta y resúmenes
  • 🤖 Integración perfecta con el cliente mediante el protocolo MCP

Especificaciones técnicas

Soporte de protocolo

  • Versión del protocolo: MCP 1.9.4
  • Comunicación: Entrada/salida estándar (stdio)
  • Capacidades: Herramientas
  • Nombre del servidor: alltrails-mcp
  • Versión del servidor: 0.1.0

Herramientas disponibles

search_trails

Busca senderos en un parque nacional específico usando datos de AllTrails.

Parámetros:

  • park (obligatorio): slug del parque en formato us/state/park-name (p. ej., us/tennessee/great-smoky-mountains-national-park)

get_trail_details

Obtén información detallada sobre un sendero específico mediante su slug de AllTrails.

Parámetros:

  • slug (obligatorio): slug del sendero de la URL de AllTrails (la parte después de /trail/)

Opciones de instalación

Opción 1: Con entorno virtual (Recomendado)

Este enfoque aísla las dependencias y evita conflictos con otros proyectos de Python.

1. Clonar el repositorio

git clone <your-repo-url>
cd alltrails_mcp

2. Crear entorno virtual

python3 -m venv alltrails_mcp_venv
source alltrails_mcp_venv/bin/activate  # On Windows: alltrails_mcp_venv\Scripts\activate

3. Instalar dependencias

pip install -r requirements.txt

4. Verificar la instalación

Prueba que el servidor se inicie sin errores:

python3 server.py

Deberías ver que el servidor se inicia sin fallar. Presiona Ctrl+C para detenerlo.

Requisitos previos

  • Python 3.8 o superior
  • Este servidor se puede usar con cualquier cliente compatible con MCP. Yo uso Claude Desktop con suscripción Pro.
  • macOS (probado) u otro sistema tipo Unix

Opción 2: Con Python del sistema

Si prefieres no usar un entorno virtual, puedes instalar las dependencias globalmente.

1. Clonar el repositorio

git clone <your-repo-url>
cd alltrails_mcp

2. Instalar dependencias globalmente

pip install -r requirements.txt

3. Verificar la instalación

Prueba que el servidor se inicie sin errores:

python3 server.py

Deberías ver que el servidor se inicia sin fallar. Presiona Ctrl+C para detenerlo.


Opción 3: Con Docker

Este enfoque ejecuta el servidor en un contenedor aislado.

1. Construir la imagen

docker build -t alltrails-mcp .

2. Ejecutar el contenedor

docker run -i --rm alltrails-mcp

3. Usar con Claude Desktop

Para la implementación basada en Docker, puedes configurar Claude Desktop para usar el servidor contenerizado:

{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "alltrails-mcp"]
    }
  }
}

Configuración de Claude Desktop

1. Localizar la configuración de Claude Desktop

Encuentra tu archivo de configuración de Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Si no existe, crea un archivo json llamado claude_desktop_config.json en el directorio anterior.

2. Agregar configuración del servidor MCP

Agrega lo siguiente a tu archivo claude_desktop_config.json:

Opción A: Usando entorno virtual (Recomendado)

{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "/path/to/your/alltrails_mcp/alltrails_mcp_venv/bin/python3",
      "args": ["/path/to/your/alltrails_mcp/server.py"]
    }
  }
}

Opción B: Usando Python del sistema

{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "python3",
      "args": ["/path/to/your/alltrails_mcp/server.py"]
    }
  }
}

O con ruta absoluta de Python:

{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "/usr/bin/python3",
      "args": ["/path/to/your/alltrails_mcp/server.py"]
    }
  }
}

Importante: Reemplaza /path/to/your/alltrails_mcp con la ruta absoluta real a tu directorio del proyecto.

Otros clientes MCP

Para otros clientes compatibles con MCP, consulta su documentación para la configuración del servidor. El servidor implementa el protocolo MCP estándar y debería funcionar con cualquier cliente compatible.

Comando del servidor: python3 server.py
Comunicación: Entrada/salida estándar (stdio)
Versión del protocolo: MCP 1.9.4

3. Encuentra tu ruta de Python

Para usuarios de entorno virtual:

cd /path/to/your/alltrails_mcp
source alltrails_mcp_venv/bin/activate
which python3

Para usuarios de Python del sistema:

which python3

Usa la ruta de salida en tu configuración.

4. Instalar dependencias

Si usas entorno virtual:

Las dependencias ya están instaladas en tu entorno virtual desde el paso 3.

Si usas Python del sistema:

Instala las dependencias globalmente:

pip install -r requirements.txt

5. Reiniciar Claude Desktop

Cierra y reinicia completamente Claude Desktop para que los cambios surtan efecto.

Ejemplos de uso

Una vez configurado, puedes usar estos comandos en Claude Desktop:

Buscar senderos

Por nombre del parque:

Find trails in Great Smoky Mountains National Park

Por ubicación:

What are the best hiking trails in Yosemite?

Con criterios específicos:

Show me moderate difficulty trails in Yellowstone

Usando slugs de parques directamente:

Search for trails in us/california/yosemite-national-park

Para actividades específicas:

Find family-friendly trails in Zion National Park

Obtener detalles del sendero

Por nombre del sendero:

Get details for Alum Cave Trail to Mount LeConte

Usando slugs de senderos:

Get details for trail us/tennessee/alum-cave-trail-to-mount-leconte

Para fines de planificación:

I need detailed information about Rainbow Falls Trail including difficulty and elevation

Consultas combinadas

Buscar y obtener detalles:

Find the most popular trails in Grand Canyon National Park and give me details about the top rated one

Comparar senderos:

Search for trails in Great Smoky Mountains and tell me which ones are best for beginners

Planificación de viajes:

I'm visiting Yellowstone for 3 days. Find me a mix of easy and moderate trails with good views

Ejemplos de lenguaje natural

El servidor MCP funciona con lenguaje natural, por lo que puedes hacer preguntas como:

  • "¿Cuáles son algunas buenas caminatas de un día en las Montañas Humeantes?"
  • "Encuéntrame un sendero desafiante con cascadas en Tennessee"
  • "Quiero caminar hasta una cumbre con vistas de 360 grados"
  • "Muéstrame senderos que sean buenos para la fotografía"
  • "Encuentra senderos aptos para perros en parques nacionales"
  • "¿Cuál es el nivel de dificultad del sendero Charlies Bunion?"

Slugs comunes de parques

  • Great Smoky Mountains: us/tennessee/great-smoky-mountains-national-park
  • Yosemite: us/california/yosemite-national-park
  • Yellowstone: us/wyoming/yellowstone-national-park
  • Grand Canyon: us/arizona/grand-canyon-national-park
  • Zion: us/utah/zion-national-park

Solución de problemas

El servidor no se conecta

  1. Revisa los registros:

    tail -f ~/Library/Logs/Claude/mcp.log
    
  2. Verifica tu archivo de configuración:

    cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
  3. Prueba el servidor manualmente:

    cd /path/to/your/alltrails_mcp
    source alltrails_mcp_venv/bin/activate
    python3 server.py
    

Problemas comunes

  • Errores de "Conexión cerrada": Generalmente indica un problema con la ruta de Python o el entorno virtual

Problemas de configuración de rutas: Verifica que todas las rutas en la configuración sean absolutas y correctas

  • Errores de importación: Asegúrate de que todas las dependencias estén instaladas en el entorno de Python correcto (entorno virtual vs Python del sistema)
  • Errores de ruta de Python: Usa which python3 o which python para verificar la ruta correcta del ejecutable de Python

Modo de depuración

Para depuración detallada, revisa los registros de MCP:

# macOS
tail -f ~/Library/Logs/Claude/mcp.log

# The server also outputs debug information to stderr

Desarrollo

Ejecutar pruebas

Ejecuta la suite de pruebas usando pytest:

pytest

Linting

Formatea y revisa el código usando ruff:

ruff check .
ruff format .

Estructura del proyecto

alltrails_mcp/
├── app/
│   └── alltrails_scraper.py    # AllTrails scraping logic
├── examples/
│   └── claude_desktop_config.json  # Example configuration file for Claude Desktop
├── tests/                      # Test suite
│   ├── conftest.py             # Test fixtures
│   └── test_scraper.py         # Scraper tests
├── server.py                   # MCP server implementation
├── requirements.txt            # Python dependencies
├── pyproject.toml              # Project configuration (Ruff, Pytest)
├── alltrails_mcp_venv/         # Virtual environment
├── README.md                   # This file
└── .gitignore                  # Git ignore file

Cómo funciona

  1. Protocolo MCP: Usa el Protocolo de Contexto de Modelo para comunicarse con Claude Desktop
  2. Web Scraping: Extrae datos de senderos del sitio web de AllTrails usando BeautifulSoup
  3. Procesamiento de datos: Formatea y devuelve la información de los senderos en un formato estructurado
  4. Integración de herramientas: Expone herramientas que Claude puede llamar para buscar y recuperar datos de senderos

Licencia

Licencia MIT

Copyright (c) 2025 Srinath Srinivasan

Agradecimientos


⚠️ AVISO IMPORTANTE

Este proyecto está OBSOLETO y no es funcional a partir del 25 de enero de 2026.

La funcionalidad de scraping violó los Términos de Servicio de AllTrails y ha sido completamente deshabilitada a petición suya. Este repositorio existe solo con fines históricos/educativos.

NO intentes usar, bifurcar o replicar este código para hacer scraping de AllTrails o de cualquier otro sitio web sin permiso explícito por escrito del propietario del sitio web.

Respeta los Términos de Servicio. Respeta los derechos de autor. Usa las API oficiales cuando estén disponibles.