Outdoors
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
US outdoor recreation: 37k+ trails, 30k+ campgrounds, parks, weather + wildfire safety. Read-only.
| Author | com.theoutdoorsapp |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2036 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Outdoors": {
"url": "https://theoutdoorsapp.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (20)
adventure.candidatesread-onlySuggest candidate adventures near a location by scoring nearby trails/parks/campgrounds deterministically.
Parameters:
lat(required) — numberlng(required) — numbertypes— arraymax_results— integerradius_miles— integertrail_difficulty— ['null', 'string']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
adventure.outlineread-onlyCreate a structured, day-by-day itinerary outline from selected trail/park/campground IDs or slugs.
Parameters:
start_date(required) — stringend_date(required) — stringpark— ['null', 'string']trail— ['null', 'string']campground— ['null', 'string']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
searchread-onlySearch Outdoors (theoutdoorsapp.com) for U.S. hiking trails, parks, and campgrounds. Returns a list of results whose ids can be passed to the fetch tool for the full record.
Parameters:
query(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fetchread-onlyFetch 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.
Parameters:
id(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
outdoors.pingread-onlyHealth check for the Outdoors MCP server.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
search.globalread-onlyGlobal search across trails, parks, and campgrounds (uses Meilisearch when available).
Parameters:
q(required) — stringlimit— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
nearMe.searchread-onlyAggregate nearby Trails, Parks, and Campgrounds for a map-first exploration experience.
Parameters:
lat— ['null', 'number']lng— ['null', 'number']sort— stringtypes— arraybounds— ['array', 'null']search— stringradius_miles— integercombined_limit— integerper_type_limit— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
trails.searchread-onlySearch public, verified trails with filters (supports map bounds and near-me style geo filtering).
Parameters:
q— stringdir— stringlat— ['null', 'number']lng— ['null', 'number']page— integersort— stringbounds— ['null', 'string']region— ['null', 'integer']per_page— integerdifficulty— ['null', 'string']radius_meters— ['null', 'integer']max_length_miles— ['null', 'number']min_length_miles— ['null', 'number']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
trails.getread-onlyGet a single public, verified trail by id or slug, including nearby trails and breadcrumbs.
Parameters:
trail(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
safety.overviewread-onlyCombined safety overview (weather alerts, AQI, wildfire context) for a location.
Parameters:
lat(required) — numberlon(required) — number
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
weather.currentread-onlyCurrent weather conditions for a location.
Parameters:
lat(required) — numberlon(required) — number
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
weather.alertsread-onlyWeather alerts for a location.
Parameters:
lat(required) — numberlon(required) — number
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
aqi.currentread-onlyCurrent air quality (AQI) for a location.
Parameters:
lat(required) — numberlon(required) — numberdistance_miles— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fires.nearbyread-onlyNearby wildfire incidents for a location.
Parameters:
lat(required) — numberlon(required) — numberradius_miles— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
parks.searchread-onlySearch published, verified parks with optional geo and region filters.
Parameters:
q— stringlat— ['null', 'number']lng— ['null', 'number']page— integerbounds— ['null', 'string']per_page— integerpark_type— ['null', 'string']region_id— ['null', 'integer']radius_meters— ['null', 'integer']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
parks.getread-onlyGet a single published, verified park by id or slug.
Parameters:
park(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
campsites.listread-onlyList campsites for a campground with filters (type, hookups, accessibility, availability, loop).
Parameters:
campground(required) — stringloop— ['null', 'string']page— integersort— stringstatus— ['null', 'string']min_amps— ['null', 'integer']per_page— integerdirection— stringhookup_type— ['null', 'string']pets_allowed— ['null', 'boolean']campsite_type— ['null', 'string']is_accessible— ['null', 'boolean']is_reservable— ['null', 'boolean']is_waterfront— ['null', 'boolean']min_occupancy— ['null', 'integer']available_only— ['null', 'boolean']vehicle_length— ['null', 'integer']is_pull_through— ['null', 'boolean']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
campsites.getread-onlyGet a single campsite (and its campground/park/region relations) by campground + campsite id.
Parameters:
campground(required) — stringcampsite_id(required) — integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
campgrounds.searchread-onlySearch published, verified campgrounds with common filters (type, reservation, region/state, geo).
Parameters:
q— stringlat— ['null', 'number']lng— ['null', 'number']page— integerstate— ['null', 'string']bounds— ['null', 'string']park_id— ['null', 'integer']per_page— integerregion_id— ['null', 'integer']has_cabins— ['null', 'boolean']has_rv_sites— ['null', 'boolean']radius_meters— ['null', 'integer']has_tent_sites— ['null', 'boolean']campground_type— ['null', 'string']reservation_type— ['null', 'string']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
campgrounds.getread-onlyGet a single published, verified campground by id or slug.
Parameters:
campground(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.