Outdoors

US outdoor recreation: 37k+ trails, 30k+ campgrounds, parks, weather + wildfire safety. Read-only.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
82%
Integridad del esquema
76%
Calidad de los nombres
56%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (21)

  • LOWTool 'weather.current' description lacks action verben weather.current
  • LOWTool 'aqi.current' description lacks action verben aqi.current
  • LOWTool 'fires.nearby' description lacks action verben fires.nearby
  • LOWTool 'adventure.candidates' doesn't follow camelCase/snake_caseen adventure.candidates
  • LOWTool 'adventure.outline' doesn't follow camelCase/snake_caseen adventure.outline
  • LOWTool 'outdoors.ping' doesn't follow camelCase/snake_caseen outdoors.ping
  • LOWTool 'search.global' doesn't follow camelCase/snake_caseen search.global
  • LOWTool 'nearMe.search' doesn't follow camelCase/snake_caseen nearMe.search
  • LOWTool 'trails.search' doesn't follow camelCase/snake_caseen trails.search
  • LOWTool 'trails.get' doesn't follow camelCase/snake_caseen trails.get

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,345Tokens (definiciones de herramientas)
~859 BTamaño de respuesta típico
Impacto moderado en la atención (1.83% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "outdoors": {
      "url": "https://theoutdoorsapp.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://theoutdoorsapp.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (20)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢adventure.candidates(lat, lng, radius_miles, types, trail_difficulty, ...)

Suggest candidate adventures near a location by scoring nearby trails/parks/campgrounds deterministically.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number"
    },
    "lng": {
      "type": "number"
    },
    "radius_miles": {
      "type": "integer",
      "default": 100
    },
    "types": {
      "type": "array",
      "default": [
        "trail",
        "park",
        "campground"
      ]
    },
    "trail_difficulty": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "max_results": {
      "type": "integer",
      "default": 20
    }
  },
  "required": [
    "lat",
    "lng"
  ]
}
🟢adventure.outline(start_date, end_date, trail, park, campground)

Create a structured, day-by-day itinerary outline from selected trail/park/campground IDs or slugs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "start_date": {
      "type": "string"
    },
    "end_date": {
      "type": "string"
    },
    "trail": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "park": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "campground": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    }
  },
  "required": [
    "start_date",
    "end_date"
  ]
}
🟢search(query)

Search Outdoors (theoutdoorsapp.com) for U.S. hiking trails, parks, campgrounds, and lakes/rivers/reservoirs. Returns a list of results whose ids can be passed to the fetch tool for the full record.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
🟢fetch(id)

Fetch the full Outdoors record for a search result id (e.g. "trail:bear-lake-loop", "park:rocky-mountain-national-park"). Returns the complete text of the record plus the canonical theoutdoorsapp.com URL for citation.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢outdoors.ping

Health check for the Outdoors MCP server.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "timestamp": {
      "type": "string"
    },
    "app_version": {
      "type": "string"
    },
    "environment": {
      "type": "string"
    }
  },
  "required": [
    "ok",
    "timestamp",
    "app_version",
    "environment"
  ],
  "additionalProperties": false
}
🟢search.global(q, limit)

Global search across trails, parks, campgrounds, and water bodies (uses Meilisearch when available).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "default": 5
    }
  },
  "required": [
    "q"
  ]
}
🟢nearMe.search(lat, lng, bounds, radius_miles, search, ...)

Aggregate nearby Trails, Parks, and Campgrounds for a map-first exploration experience.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "lng": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "bounds": {
      "type": [
        "array",
        "null"
      ],
      "default": null
    },
    "radius_miles": {
      "type": "integer",
      "default": 100
    },
    "search": {
      "type": "string",
      "default": ""
    },
    "sort": {
      "type": "string",
      "default": "distance"
    },
    "types": {
      "type": "array",
      "default": [
        "trails",
        "parks",
        "campgrounds"
      ]
    },
    "per_type_limit": {
      "type": "integer",
      "default": 50
    },
    "combined_limit": {
      "type": "integer",
      "default": 150
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "retrieved_at": {
      "type": "string"
    },
    "source": {
      "type": "object"
    },
    "payload": {
      "type": "object"
    }
  },
  "required": [
    "retrieved_at",
    "source",
    "payload"
  ]
}
🟢trails.search(q, region, difficulty, min_length_miles, max_length_miles, ...)

Search public, verified trails with filters (supports map bounds and near-me style geo filtering).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "default": ""
    },
    "region": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "difficulty": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "min_length_miles": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "max_length_miles": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "lat": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "lng": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "radius_meters": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "bounds": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "sort": {
      "type": "string",
      "default": "name"
    },
    "dir": {
      "type": "string",
      "default": "asc"
    },
    "page": {
      "type": "integer",
      "default": 1
    },
    "per_page": {
      "type": "integer",
      "default": 24
    }
  }
}
🟢trails.get(trail)

Get a single public, verified trail by id or slug, including nearby trails and breadcrumbs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "trail": {
      "type": "string"
    }
  },
  "required": [
    "trail"
  ]
}
🟢safety.overview(lat, lon)

Combined safety overview (weather alerts, AQI, wildfire context) for a location.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number"
    },
    "lon": {
      "type": "number"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢weather.current(lat, lon)

Current weather conditions for a location.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number"
    },
    "lon": {
      "type": "number"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢weather.alerts(lat, lon)

Weather alerts for a location.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number"
    },
    "lon": {
      "type": "number"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢aqi.current(lat, lon, distance_miles)

Current air quality (AQI) for a location.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number"
    },
    "lon": {
      "type": "number"
    },
    "distance_miles": {
      "type": "integer",
      "default": 25
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢fires.nearby(lat, lon, radius_miles)

Nearby wildfire incidents for a location.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number"
    },
    "lon": {
      "type": "number"
    },
    "radius_miles": {
      "type": "integer",
      "default": 50
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢parks.search(q, region_id, park_type, lat, lng, ...)

Search published, verified parks with optional geo and region filters.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "default": ""
    },
    "region_id": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "park_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "lat": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "lng": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "radius_meters": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "bounds": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "page": {
      "type": "integer",
      "default": 1
    },
    "per_page": {
      "type": "integer",
      "default": 20
    }
  }
}
🟢parks.get(park)

Get a single published, verified park by id or slug.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "park": {
      "type": "string"
    }
  },
  "required": [
    "park"
  ]
}
🟢campsites.list(campground, campsite_type, hookup_type, status, loop, ...)

List campsites for a campground with filters (type, hookups, accessibility, availability, loop).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campground": {
      "type": "string"
    },
    "campsite_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "hookup_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "status": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "loop": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "available_only": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "is_accessible": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "is_waterfront": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "is_pull_through": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "pets_allowed": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "is_reservable": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "min_occupancy": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "vehicle_length": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "min_amps": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "sort": {
      "type": "string",
      "default": "name"
    },
    "direction": {
      "type": "string",
      "default": "asc"
    },
    "page": {
      "type": "integer",
      "default": 1
    },
    "per_page": {
      "type": "integer",
      "default": 50
    }
  },
  "required": [
    "campground"
  ]
}
🟢campsites.get(campground, campsite_id)

Get a single campsite (and its campground/park/region relations) by campground + campsite id.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campground": {
      "type": "string"
    },
    "campsite_id": {
      "type": "integer"
    }
  },
  "required": [
    "campground",
    "campsite_id"
  ]
}
🟢campgrounds.search(q, region_id, state, park_id, campground_type, ...)

Search published, verified campgrounds with common filters (type, reservation, region/state, geo).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "default": ""
    },
    "region_id": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "state": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "park_id": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "campground_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "reservation_type": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "has_tent_sites": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "has_rv_sites": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "has_cabins": {
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    "lat": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "lng": {
      "type": [
        "null",
        "number"
      ],
      "default": null
    },
    "radius_meters": {
      "type": [
        "null",
        "integer"
      ],
      "default": null
    },
    "bounds": {
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    "page": {
      "type": "integer",
      "default": 1
    },
    "per_page": {
      "type": "integer",
      "default": 20
    }
  }
}
🟢campgrounds.get(campground)

Get a single published, verified campground by id or slug.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campground": {
      "type": "string"
    }
  },
  "required": [
    "campground"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada20 herramientas
verificadoversión no registrada20 herramientas
verificadoversión no registrada20 herramientas