Avalanche.org
Servidor MCP para consultar índices de peligro de avalanchas, pronósticos históricos de avalanchas y GeoJSON de pronósticos desde la API pública de Avalanche.org. No afiliado con Avalanche.org
Documentación
avalanche-org-mcp-server
Un servidor mínimo de Model Context Protocol (MCP) que envuelve los endpoints de capas de mapa de la API pública de Avalanche.org. Permite que los LLM consulten los niveles de peligro de avalanchas por ubicación, recuperen GeoJSON de pronósticos sin procesar y consulten condiciones históricas.
Características
- Búsqueda de peligro por lat/lon — encuentra la zona de avalancha para cualquier punto y obtén su nivel de peligro actual
- Búsqueda de peligro histórico — igual que la anterior, pero para una fecha pasada específica
- GeoJSON de capas de mapa sin procesar — FeatureCollection completa para todos los centros de avalancha, o limitada a un centro
Datos obtenidos de la API pública de Avalanche.org. Consulta la documentación de la API para más detalles.
Inicio rápido
Claude Desktop (npx — recomendado)
Añade esto a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS):
{
"mcpServers": {
"avalanche-org": {
"command": "npx",
"args": ["-y", "avalanche-org-mcp-server"]
}
}
}
No se requiere instalación. Claude lo descargará y ejecutará automáticamente.
Instalación global con npm
npm install -g avalanche-org-mcp-server
{
"mcpServers": {
"avalanche-org": {
"command": "avalanche-org-mcp-server"
}
}
}
Docker
docker pull ghcr.io/haydenwade/avalanche-org-mcp-server:latest
{
"mcpServers": {
"avalanche-org": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/haydenwade/avalanche-org-mcp-server:latest"]
}
}
}
Desde el código fuente
git clone https://github.com/haydenwade/avalanche-org-mcp-server.git
cd avalanche-org-mcp-server
npm install
npm run build
{
"mcpServers": {
"avalanche-org": {
"command": "node",
"args": ["/absolute/path/to/avalanche-org-mcp-server/dist/src/index.js"]
}
}
}
Herramientas
avalanche_danger_rating_by_point
Obtén el nivel de peligro de avalancha actual para un punto lat/lon. Devuelve la zona en la que cae el punto, o la zona más cercana si preferNearest es verdadero.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
lat | number | sí | Latitud en grados decimales |
lon | number | sí | Longitud en grados decimales |
preferNearest | boolean | no | Recurrir a la zona más cercana si el punto está fuera de todos los polígonos (predeterminado: true) |
centerId | string | no | Limitar la búsqueda a un centro de avalancha específico (p. ej. "UAC", "CBAC") |
Ejemplo de entrada:
{ "lat": 40.5763, "lon": -111.7522, "preferNearest": true, "centerId": "UAC" }
Ejemplo de salida
{
"match": "inside_zone",
"distance_km": 0,
"distance_miles": 0,
"zone": {
"id": "zone-1",
"name": "Salt Lake",
"state": "UT"
},
"center": {
"id": "UAC",
"name": "Utah Avalanche Center",
"timezone": "America/Denver",
"link": "https://utahavalanchecenter.org"
},
"danger": {
"level": 3,
"label": "Considerable",
"color": "#f1a302"
},
"travel_advice": "Dangerous avalanche conditions. Careful snowpack evaluation, cautious route-finding and conservative decision-making essential.",
"forecast_url": "https://utahavalanchecenter.org/forecast/salt-lake",
"validity": {
"start_date": "2026-03-22",
"end_date": "2026-03-23"
},
"warning": null
}
historic_avalanche_danger_rating_by_point
Igual que la anterior, pero para una fecha histórica específica. Devuelve todos los mismos campos más day.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
lat | number | sí | Latitud en grados decimales |
lon | number | sí | Longitud en grados decimales |
day | string | sí | Fecha en formato YYYY-MM-DD |
preferNearest | boolean | no | Recurrir a la zona más cercana (predeterminado: true) |
centerId | string | no | Limitar a un centro de avalancha |
Ejemplo de entrada:
{ "lat": 40.5763, "lon": -111.7522, "day": "2025-02-24", "preferNearest": true }
Ejemplo de salida
{
"match": "inside_zone",
"distance_km": 0,
"distance_miles": 0,
"zone": { "id": "zone-1", "name": "Salt Lake", "state": "UT" },
"center": { "id": "UAC", "name": "Utah Avalanche Center", "..." : "..." },
"danger": { "level": 3, "label": "Considerable", "color": "#f1a302" },
"travel_advice": "Dangerous avalanche conditions. ...",
"forecast_url": "https://utahavalanchecenter.org/forecast/salt-lake",
"validity": { "start_date": "2025-02-24", "end_date": "2025-02-25" },
"warning": null,
"day": "2025-02-24"
}
raw_map_layer
Devuelve la FeatureCollection GeoJSON sin procesar de la capa de mapa de Avalanche.org para todos los centros de avalancha.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
day | string | no | Fecha histórica en formato YYYY-MM-DD |
Ejemplo de salida
{
"geojson": {
"type": "FeatureCollection",
"features": [ "... full GeoJSON features ..." ]
}
}
raw_map_layer_by_avalanche_center
Devuelve la FeatureCollection GeoJSON sin procesar de la capa de mapa para un único centro de avalancha.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
centerId | string | sí | ID del centro de avalancha (p. ej. "CBAC", "NWAC", "UAC") |
day | string | no | Fecha histórica en formato YYYY-MM-DD |
Ejemplo de salida
{
"geojson": {
"type": "FeatureCollection",
"features": [ "... full GeoJSON features ..." ]
}
}
Desarrollo
Requiere Node.js >= 18.
npm install
npm run build
npm test
Para probar interactivamente las herramientas con el MCP Inspector:
npx @modelcontextprotocol/inspector node dist/src/index.js
Estructura del proyecto
src/
index.ts # Entry point — server setup + stdio transport
tools.ts # Tool registration
constants.ts # API URLs and timeouts
types.ts # GeoJSON type definitions
api/
mapLayer.ts # Map-layer fetch + GeoJSON normalization
lib/
geometry.ts # Point-in-polygon, haversine distance, bounds
dangerLookup.ts # Danger rating lookup logic
validation.ts # Date and coordinate validation
test/
*.test.ts # Tests (node:test)
Contribuciones
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b my-feature) - Realiza tus cambios y añade pruebas
- Ejecuta
npm testpara asegurarte de que todo pasa - Abre una pull request
Licencia
MIT