PermitSnag
Server Details
US backcountry permit and campground rules, dates and recorded openings. Read-only, no sign-in.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
6 toolscheck_availabilityCheck recorded openings for a permit or campgroundRead-onlyIdempotentInspect
Shows what PermitSnag has recorded for one US backcountry permit or one campground over a range of up to 62 days. Answers come from PermitSnag's own stored checks of the booking site, not a live look, and nothing is booked. Each date has one state: observed_opening (an opening seen recently, with when it was last seen), observed_no_match (a recent check that saw no opening, with its time), stale (the newest check is older than staleAfterHours, with its time), unknown (no usable check of that date), unreleased (not on sale yet, by the agency's release rule or the booking site), off_season (outside the agency's published season), closed (closed by the agency) or unsupported (PermitSnag does not check this place). Neither stale nor unknown means sold out. Permit dates are shown as they stood 15 minutes ago. For a permit split into zones or entry points, our checks may cover only some of them, so a date with no opening seen comes back as unknown, never as observed_no_match.
| Name | Required | Description | Default |
|---|---|---|---|
| permit | No | The permit id or slug from search_permits. Give this or campground, not both. | |
| endDate | No | Last date, YYYY-MM-DD, inclusive. Defaults to startDate. The range covers at most 62 days, counting both ends. | |
| startDate | Yes | First date, YYYY-MM-DD, read as the place's own local calendar day (for a campground, the night you arrive). | |
| campground | No | The campground id from search_campgrounds. Give this or permit, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | No | |
| past | No | Present only when every asked date has passed. |
| alert | No | |
| dates | No | |
| depth | No | |
| found | No | Present, and false, only when nothing matched. |
| source | No | |
| subject | No | |
| checkedAt | No | |
| freshness | No | |
| scanRoute | No | How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none. |
| partialScope | No | Permits only: true when our checks may cover only some zones or entry points, so no date is called "no opening". |
| staleAfterHours | No | Hours. A check older than this is never reported as observed; it is reported as stale (or as unknown, when partialScope hides a check that saw no opening). |
| publicDelayMinutes | No | Permits only: dates are described as they stood this many minutes ago. |
get_booking_linkBooking link for a permit or campgroundRead-onlyIdempotentInspect
Returns the link to the official booking page for one US backcountry permit or one campground. For some permits the link also carries the first date and the number of people you give, but the booking site may not use them, so the person checks or picks the dates and group size on that page. For a campground, the person picks or checks the dates on the booking page. For some places it returns the agency's own page or the PermitSnag page instead of a booking page. It only returns a link and a sentence about it; it does not book, pay or enter a lottery.
| Name | Required | Description | Default |
|---|---|---|---|
| permit | No | The permit id or slug. Give this or campground, not both. | |
| endDate | No | Optional last date, YYYY-MM-DD. Sent in the link for a few booking sites; the site may ignore it. | |
| partySize | No | Optional number of people. Sent in the link for some permit booking sites; the site may ignore it. | |
| startDate | No | Optional first date, YYYY-MM-DD. Sent in the link for some booking sites; the site may ignore it. | |
| campground | No | The campground id. Give this or permit, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | The page to open. |
| found | No | Present, and false, only when nothing matched. |
| subject | No | |
| datePrefill | No | Whether the asked date reaches the booking page. |
| destination | No | |
| executesNothing | No | This tool only returns a link. |
| providerHomeUrl | No | Permits only: the booking site's front page, when that is all we can name. |
get_campground_detailsUS campground detailsRead-onlyIdempotentInspect
Get the details of one US campground: its booking system, how far ahead sites go on sale, site count and types, stay limits, season and closures. Use it after search_campgrounds, or when the person names a specific campground. Says whether PermitSnag can send an alert when a site opens, and whether our checks count individual sites or only the campground as a whole.
| Name | Required | Description | Default |
|---|---|---|---|
| campground | Yes | The campground id from search_campgrounds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| alert | No | |
| depth | No | site_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole. |
| found | No | Present, and false, only when nothing matched. |
| state | No | |
| season | No | The agency's season or closure state, with agency words in quoted fields. |
| pageUrl | No | |
| provider | No | |
| amenities | No | |
| checkedAt | No | |
| siteTypes | No | |
| bookingUrl | No | |
| priceRange | No | |
| totalSites | No | |
| description | No | |
| releaseRule | No | When sites go on sale, from the listing itself. |
| bookingSystem | No | |
| maxStayNights | No | |
| reservationWindowDays | No |
get_permit_detailsUS backcountry permit rules and datesRead-onlyIdempotentInspect
Get the rules for one US backcountry or wilderness permit: how it is issued (reservation, lottery or in person), its season, lottery and release dates, closures, group size limit, and the official agency page. Use it after search_permits, or when the person names a specific permit. Every date comes from an agency source; a date we cannot source is left out. Says whether PermitSnag can send an alert when the permit opens.
| Name | Required | Description | Default |
|---|---|---|---|
| permit | Yes | The permit id or slug from search_permits, or its permitsnag.com page URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| park | No | |
| slug | No | |
| alert | No | |
| found | No | Present, and false, only when nothing matched. |
| season | No | The agency's season or closure state, with agency words in quoted fields. |
| pageUrl | No | |
| usState | No | |
| issuance | No | How the permit is issued, in plain words. |
| checkedAt | No | When this answer was composed, ISO 8601. |
| scanRoute | No | How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none. |
| agencyDates | No | Upcoming dates from an agency source (lottery opens, closes, results, claims). |
| description | No | |
| officialUrl | No | The agency's own permit page. |
| releaseRules | No | The agency schedule for when dates go on sale. |
| groupSizeLimit | No |
search_campgroundsSearch US campgroundsRead-onlyIdempotentInspect
Find campgrounds in the US by name, area or state, across Recreation.gov and state park booking systems. Use this when someone wants a place to camp or asks about a specific campground. Returns up to 10 campgrounds with their PermitSnag page, their booking system, and whether PermitSnag can send an alert when a site opens. It does not check dates; use check_availability for that.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results, 1 to 10. Default 5. | |
| query | Yes | A campground name or area, like "Upper Pines" or "Big Sur". | |
| state | No | Optional two-letter US state code to narrow results, like CA. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| state | Yes | |
| results | Yes |
search_permitsSearch US backcountry and wilderness permitsRead-onlyIdempotentInspect
Find US backcountry and wilderness permits by name, park, trail or area, for hikes, climbs, river trips and overnight trips in national parks, national forests and state parks. Use this when someone asks how to get a permit or which permit a trip needs. Returns up to 10 permits with their PermitSnag page and whether PermitSnag scans them for cancellation openings. It does not check dates; use check_availability for that, and get_permit_details for the rules of one permit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results, 1 to 10. Default 5. | |
| query | Yes | A permit, trail, park or area name, like "Mount Whitney" or "Enchantments". | |
| state | No | Optional two-letter US state code to narrow results, like CA. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | The search as asked. |
| state | Yes | The two-letter state filter, or null. |
| results | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
check_availability5 fields changed- changed
Input schema / properties / endDate / descriptionPrevious value: -"Last date, YYYY-MM-DD, inclusive. Defaults to startDate. At most 62 days after startDate."New value: +"Last date, YYYY-MM-DD, inclusive. Defaults to startDate. The range covers at most 62 days, counting both ends." - changed
Output schema / descriptionPrevious value: -"PermitSnag's recorded checks of one permit or campground on the asked dates, each with its age. Not a live look at the booking site. Or found: false, or past: true."New value: +"PermitSnag's recorded checks of one permit or campground on the asked dates; an observed or stale date carries the time and age of its check. Not a live look at the booking site. Or found: false, or past: true." - changed
Output schema / properties / days / items / properties / observedAt / descriptionPrevious value: -"When the check behind an observed or stale state was made, ISO 8601."New value: +"The time of the check behind an observed or stale state (for an opening, when it was last seen), ISO 8601. For a permit, never later than publicDelayMinutes ago." - changed
Output schema / properties / days / items / properties / state / descriptionPrevious value: -"What PermitSnag recorded for this date. unknown is never sold out."New value: +"What PermitSnag recorded for this date. Neither stale nor unknown means sold out." - changed
Output schema / properties / staleAfterHours / descriptionPrevious value: -"A check older than this is reported as stale."New value: +"Hours. A check older than this is never reported as observed; it is reported as stale (or as unknown, when partialScope hides a check that saw no opening)."
1 tool update
- Changed
get_booking_link4 fields changed- changed
Input schema / properties / endDate / descriptionPrevious value: -"Optional last date, YYYY-MM-DD."New value: +"Optional last date, YYYY-MM-DD. Sent in the link for a few booking sites; the site may ignore it." - changed
Input schema / properties / partySize / descriptionPrevious value: -"Optional number of people."New value: +"Optional number of people. Sent in the link for some permit booking sites; the site may ignore it." - changed
Input schema / properties / startDate / descriptionPrevious value: -"Optional first date, YYYY-MM-DD."New value: +"Optional first date, YYYY-MM-DD. Sent in the link for some booking sites; the site may ignore it." - changed
Output schema / descriptionPrevious value: -"The official booking page for a permit or campground, or found: false. Nothing is booked."New value: +"A link to the booking page, the agency's page or the PermitSnag page for a permit or campground, or found: false. Nothing is booked."
6 tool updates
- Changed
check_availability1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "subject", + "depth", + "dates", + "staleAfterHours", + "freshness", + "days", + "alert", + "source", + "checkedAt" + ] + }, + { + "required": [ + "found" + ] + }, + { + "required": [ + "past" + ] + } + ], + "description": "PermitSnag's recorded checks of one permit or campground on the asked dates, each with its age. Not a live look at the booking site. Or found: false, or past: true.", + "properties": { + "alert": { + "additionalProperties": false, + "properties": { + "available": { + "description": "True only when PermitSnag can send an alert for this place right now.", + "type": "boolean" + }, + "pageUrl": { + "description": "The PermitSnag page where an alert is set up, or where to read what to do instead.", + "type": "string" + }, + "reason": { + "description": "Why an alert is or is not on offer.", + "enum": [ + "eligible", + "lottery_period", + "out_of_season", + "closed", + "no_quota_now", + "lottery_draw_only", + "not_sold_online", + "not_tracked" + ] + } + }, + "required": [ + "available", + "reason", + "pageUrl" + ], + "type": "object" + }, + "checkedAt": { + "type": "string" + }, + "dates": { + "additionalProperties": false, + "properties": { + "calendar": { + "const": "local_day" + }, + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "start", + "end", + "calendar" + ], + "type": "object" + }, + "days": { + "items": { + "additionalProperties": false, + "properties": { + "ageMinutes": { + "description": "Minutes since that check.", + "type": "integer" + }, + "date": { + "description": "YYYY-MM-DD, the place's own local calendar day.", + "type": "string" + }, + "lastSeenState": { + "description": "For a stale date: what that old check saw.", + "enum": [ + "observed_opening", + "observed_no_match" + ] + }, + "observedAt": { + "description": "When the check behind an observed or stale state was made, ISO 8601.", + "type": "string" + }, + "openSites": { + "description": "Campgrounds at site level only: sites seen open.", + "type": "integer" + }, + "releaseKind": { + "enum": [ + "lottery", + "reservations", + null + ] + }, + "releasesOn": { + "description": "For an unreleased date: the sourced day it goes on sale, when known.", + "type": [ + "string", + "null" + ] + }, + "state": { + "description": "What PermitSnag recorded for this date. unknown is never sold out.", + "enum": [ + "observed_opening", + "observed_no_match", + "stale", + "unknown", + "unreleased", + "off_season", + "closed", + "unsupported" + ] + } + }, + "required": [ + "date", + "state" + ], + "type": "object" + }, + "maxItems": 62, + "type": "array" + }, + "depth": { + "enum": [ + "permit_level", + "site_level", + "campground_level" + ] + }, + "found": { + "const": false, + "description": "Present, and false, only when nothing matched." + }, + "freshness": { + "additionalProperties": false, + "properties": { + "band": { + "enum": [ + "none", + "recent", + "stale" + ] + }, + "newestObservedAt": { + "type": [ + "string", + "null" + ] + }, + "oldestObservedAt": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "band", + "newestObservedAt", + "oldestObservedAt" + ], + "type": "object" + }, + "partialScope": { + "description": "Permits only: true when our checks may cover only some zones or entry points, so no date is called \"no opening\".", + "type": "boolean" + }, + "past": { + "const": true, + "description": "Present only when every asked date has passed." + }, + "publicDelayMinutes": { + "description": "Permits only: dates are described as they stood this many minutes ago.", + "type": "number" + }, + "scanRoute": { + "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none.", + "enum": [ + "direct", + "via_zone", + "via_children", + "none", + null + ] + }, + "source": { + "const": "permitsnag_recorded_checks" + }, + "staleAfterHours": { + "description": "A check older than this is reported as stale.", + "type": "number" + }, + "subject": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "permit", + "campground" + ] + }, + "name": { + "type": "string" + }, + "pageUrl": { + "type": "string" + }, + "slug": { + "description": "Permits only.", + "type": "string" + } + }, + "required": [ + "kind", + "id", + "name", + "pageUrl" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
get_booking_link1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "subject", + "url", + "destination", + "datePrefill", + "executesNothing" + ] + }, + { + "required": [ + "found" + ] + } + ], + "description": "The official booking page for a permit or campground, or found: false. Nothing is booked.", + "properties": { + "datePrefill": { + "description": "Whether the asked date reaches the booking page.", + "enum": [ + "applied", + "ignored", + "unknown" + ] + }, + "destination": { + "enum": [ + "booking_page", + "official_page", + "permitsnag_page" + ] + }, + "executesNothing": { + "const": true, + "description": "This tool only returns a link." + }, + "found": { + "const": false, + "description": "Present, and false, only when nothing matched." + }, + "providerHomeUrl": { + "description": "Permits only: the booking site's front page, when that is all we can name.", + "type": [ + "string", + "null" + ] + }, + "subject": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "permit", + "campground" + ] + }, + "name": { + "type": "string" + }, + "pageUrl": { + "type": "string" + }, + "slug": { + "description": "Permits only.", + "type": "string" + } + }, + "required": [ + "kind", + "id", + "name", + "pageUrl" + ], + "type": "object" + }, + "url": { + "description": "The page to open.", + "type": "string" + } + }, + "type": "object" +}
- Changed
get_campground_details1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "id", + "name", + "state", + "bookingSystem", + "provider", + "depth", + "pageUrl", + "bookingUrl", + "totalSites", + "siteTypes", + "amenities", + "maxStayNights", + "reservationWindowDays", + "priceRange", + "releaseRule", + "alert", + "season", + "description", + "checkedAt" + ] + }, + { + "required": [ + "found" + ] + } + ], + "description": "The details of one US campground, or found: false.", + "properties": { + "alert": { + "additionalProperties": false, + "properties": { + "available": { + "description": "True only when PermitSnag can send an alert for this place right now.", + "type": "boolean" + }, + "pageUrl": { + "description": "The PermitSnag page where an alert is set up, or where to read what to do instead.", + "type": "string" + }, + "reason": { + "description": "Why an alert is or is not on offer.", + "enum": [ + "eligible", + "lottery_period", + "out_of_season", + "closed", + "no_quota_now", + "lottery_draw_only", + "not_sold_online", + "not_tracked" + ] + } + }, + "required": [ + "available", + "reason", + "pageUrl" + ], + "type": "object" + }, + "amenities": { + "items": { + "type": "string" + }, + "maxItems": 8, + "type": "array" + }, + "bookingSystem": { + "type": "string" + }, + "bookingUrl": { + "type": [ + "string", + "null" + ] + }, + "checkedAt": { + "type": "string" + }, + "depth": { + "description": "site_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole.", + "enum": [ + "site_level", + "campground_level" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "found": { + "const": false, + "description": "Present, and false, only when nothing matched." + }, + "id": { + "type": "string" + }, + "maxStayNights": { + "type": [ + "integer", + "null" + ] + }, + "name": { + "type": "string" + }, + "pageUrl": { + "type": "string" + }, + "priceRange": { + "additionalProperties": false, + "properties": { + "max": { + "type": [ + "string", + "null" + ] + }, + "min": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "min", + "max" + ], + "type": [ + "object", + "null" + ] + }, + "provider": { + "type": "string" + }, + "releaseRule": { + "additionalProperties": false, + "description": "When sites go on sale, from the listing itself.", + "properties": { + "agencyQuote": { + "type": [ + "string", + "null" + ] + }, + "daysAhead": { + "type": [ + "number", + "null" + ] + }, + "kind": { + "type": "string" + }, + "monthsAhead": { + "type": [ + "number", + "null" + ] + }, + "readAt": { + "type": "string" + }, + "sourceUrl": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind", + "monthsAhead", + "daysAhead", + "sourceUrl", + "agencyQuote", + "readAt" + ], + "type": [ + "object", + "null" + ] + }, + "reservationWindowDays": { + "type": [ + "integer", + "null" + ] + }, + "season": { + "additionalProperties": true, + "description": "The agency's season or closure state, with agency words in quoted fields.", + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "agencyQuote": { + "description": "The agency's own words, capped.", + "type": [ + "string", + "null" + ] + }, + "closedParts": { + "description": "Named parts that are closed while the rest stays open.", + "items": { + "additionalProperties": true, + "properties": { + "agencyQuote": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "reopensOn": { + "type": [ + "string", + "null" + ] + }, + "since": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "closesOn": { + "description": "YYYY-MM-DD the agency says the season closes.", + "type": [ + "string", + "null" + ] + }, + "closure": { + "additionalProperties": true, + "description": "A closure of the whole place, when the agency posted one.", + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "incident": { + "type": [ + "string", + "null" + ] + }, + "readAt": { + "type": "string" + }, + "reopensOn": { + "type": [ + "string", + "null" + ] + }, + "since": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "offer": { + "description": "What the page offers in this season.", + "type": "string" + }, + "opensOn": { + "description": "YYYY-MM-DD the agency says the season opens.", + "type": [ + "string", + "null" + ] + }, + "sourceUrl": { + "type": [ + "string", + "null" + ] + }, + "state": { + "description": "The season state code, or null when nothing is published.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "offer", + "state" + ], + "type": "object" + }, + "siteTypes": { + "items": { + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "totalSites": { + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" +}
- Changed
get_permit_details1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "id", + "slug", + "name", + "park", + "usState", + "pageUrl", + "officialUrl", + "issuance", + "scanRoute", + "alert", + "season", + "agencyDates", + "releaseRules", + "groupSizeLimit", + "description", + "checkedAt" + ] + }, + { + "required": [ + "found" + ] + } + ], + "description": "The rules and sourced dates of one US backcountry or wilderness permit, or found: false.", + "properties": { + "agencyDates": { + "description": "Upcoming dates from an agency source (lottery opens, closes, results, claims).", + "items": { + "additionalProperties": false, + "properties": { + "agencyQuote": { + "type": [ + "string", + "null" + ] + }, + "date": { + "description": "YYYY-MM-DD.", + "type": "string" + }, + "sourceUrl": { + "type": [ + "string", + "null" + ] + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "date", + "sourceUrl", + "agencyQuote" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "alert": { + "additionalProperties": false, + "properties": { + "available": { + "description": "True only when PermitSnag can send an alert for this place right now.", + "type": "boolean" + }, + "pageUrl": { + "description": "The PermitSnag page where an alert is set up, or where to read what to do instead.", + "type": "string" + }, + "reason": { + "description": "Why an alert is or is not on offer.", + "enum": [ + "eligible", + "lottery_period", + "out_of_season", + "closed", + "no_quota_now", + "lottery_draw_only", + "not_sold_online", + "not_tracked" + ] + } + }, + "required": [ + "available", + "reason", + "pageUrl" + ], + "type": "object" + }, + "checkedAt": { + "description": "When this answer was composed, ISO 8601.", + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "found": { + "const": false, + "description": "Present, and false, only when nothing matched." + }, + "groupSizeLimit": { + "type": [ + "integer", + "null" + ] + }, + "id": { + "type": "string" + }, + "issuance": { + "description": "How the permit is issued, in plain words.", + "type": "string" + }, + "name": { + "type": "string" + }, + "officialUrl": { + "description": "The agency's own permit page.", + "type": [ + "string", + "null" + ] + }, + "pageUrl": { + "type": "string" + }, + "park": { + "type": [ + "string", + "null" + ] + }, + "releaseRules": { + "description": "The agency schedule for when dates go on sale.", + "items": { + "additionalProperties": false, + "properties": { + "agencyQuote": { + "type": [ + "string", + "null" + ] + }, + "kind": { + "type": "string" + }, + "sourceUrl": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "kind", + "sourceUrl", + "agencyQuote" + ], + "type": "object" + }, + "maxItems": 4, + "type": "array" + }, + "scanRoute": { + "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none.", + "enum": [ + "direct", + "via_zone", + "via_children", + "none", + null + ] + }, + "season": { + "additionalProperties": true, + "description": "The agency's season or closure state, with agency words in quoted fields.", + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "agencyQuote": { + "description": "The agency's own words, capped.", + "type": [ + "string", + "null" + ] + }, + "closedParts": { + "description": "Named parts that are closed while the rest stays open.", + "items": { + "additionalProperties": true, + "properties": { + "agencyQuote": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "reopensOn": { + "type": [ + "string", + "null" + ] + }, + "since": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "closesOn": { + "description": "YYYY-MM-DD the agency says the season closes.", + "type": [ + "string", + "null" + ] + }, + "closure": { + "additionalProperties": true, + "description": "A closure of the whole place, when the agency posted one.", + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "incident": { + "type": [ + "string", + "null" + ] + }, + "readAt": { + "type": "string" + }, + "reopensOn": { + "type": [ + "string", + "null" + ] + }, + "since": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "offer": { + "description": "What the page offers in this season.", + "type": "string" + }, + "opensOn": { + "description": "YYYY-MM-DD the agency says the season opens.", + "type": [ + "string", + "null" + ] + }, + "sourceUrl": { + "type": [ + "string", + "null" + ] + }, + "state": { + "description": "The season state code, or null when nothing is published.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "offer", + "state" + ], + "type": "object" + }, + "slug": { + "type": "string" + }, + "usState": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" +}
- Changed
search_campgrounds1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "description": "US campgrounds that match the search.", + "properties": { + "query": { + "type": "string" + }, + "results": { + "items": { + "additionalProperties": false, + "properties": { + "bookingSystem": { + "type": "string" + }, + "depth": { + "description": "site_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole.", + "enum": [ + "site_level", + "campground_level" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "pageUrl": { + "type": "string" + }, + "scannable": { + "description": "True when PermitSnag checks this campground for openings. Whether an alert is on offer today is in get_campground_details.", + "type": "boolean" + }, + "state": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "state", + "bookingSystem", + "depth", + "pageUrl", + "scannable" + ], + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "state": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "query", + "state", + "results" + ], + "type": "object" +}
- Changed
search_permits1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "description": "US backcountry and wilderness permits that match the search.", + "properties": { + "query": { + "description": "The search as asked.", + "type": "string" + }, + "results": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "pageUrl": { + "description": "The permit page on permitsnag.com.", + "type": "string" + }, + "park": { + "type": [ + "string", + "null" + ] + }, + "scanRoute": { + "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none.", + "enum": [ + "direct", + "via_zone", + "via_children", + "none", + null + ] + }, + "scannable": { + "description": "True when PermitSnag scans this permit for cancellation openings. Whether an alert is on offer today is in get_permit_details.", + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "usState": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "slug", + "name", + "park", + "usState", + "pageUrl", + "scanRoute", + "scannable" + ], + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "state": { + "description": "The two-letter state filter, or null.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "query", + "state", + "results" + ], + "type": "object" +}
6 tool updates
- First observed
check_availability - First observed
get_booking_link - First observed
get_campground_details - First observed
get_permit_details - First observed
search_campgrounds - First observed
search_permits
Related MCP Connectors
US outdoor recreation: 37k+ trails, 30k+ campgrounds, parks, weather + wildfire safety. Read-only.
Live US campground availability, wildfire and river conditions, and trails on public land.
Campground search, live availability, weather, safety, and gear for 10,000+ US campgrounds.
- alertcampOAuthcamp.alert
Catch campsite, cabin, permit and day-use cancellations at 1,600+ parks in Canada and the US.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides real-time information about U.S. National Parks through the NPS API, enabling users to search parks, check details, alerts, visitor centers, campgrounds, and upcoming events.6142 npm41MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to the National Park Service API to search for U.S. national parks, view park details, check alerts and closures, find visitor centers, campgrounds, and upcoming events.142 npmMIT
- AlicenseNot gradedqualityCmaintenanceRead-only access to TrailWeights' ultralight gear corpus โ verified weights, creator video reviews, pack templates, and semantic gear search. Auth: none.MIT
- AlicenseNot gradedqualityDmaintenanceProvides LLM context on U.S. national parks by integrating National Park Service, Recreation.gov, and weather APIs, enabling queries about park info, trails, alerts, events, weather forecasts, and more via tool calls.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.