PermitSnag

US backcountry permit and campground rules, dates and recorded openings. Read-only, no sign-in.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
98%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~5,141Tokens (Tool-Definitionen)
~8.7 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.02% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "permits": {
      "url": "https://api.permitsnag.com/mcp"
    }
  }
}

Remote-Endpunkte

https://api.permitsnag.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (6)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢search_permits(query, state, limit)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "A permit, trail, park or area name, like \"Mount Whitney\" or \"Enchantments\"."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Optional two-letter US state code to narrow results, like CA."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "How many results, 1 to 10. Default 5."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search as asked."
    },
    "state": {
      "type": [
        "string",
        "null"
      ],
      "description": "The two-letter state filter, or null."
    },
    "results": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "park": {
            "type": [
              "string",
              "null"
            ]
          },
          "usState": {
            "type": [
              "string",
              "null"
            ]
          },
          "pageUrl": {
            "type": "string",
            "description": "The permit page on permitsnag.com."
          },
          "scanRoute": {
            "enum": [
              "direct",
              "via_zone",
              "via_children",
              "none",
              null
            ],
            "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none."
          },
          "scannable": {
            "type": "boolean",
            "description": "True when PermitSnag scans this permit for cancellation openings. Whether an alert is on offer today is in get_permit_details."
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "park",
          "usState",
          "pageUrl",
          "scanRoute",
          "scannable"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "query",
    "state",
    "results"
  ],
  "description": "US backcountry and wilderness permits that match the search.",
  "additionalProperties": false
}
🟢get_permit_details(permit)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "permit": {
      "type": "string",
      "maxLength": 200,
      "description": "The permit id or slug from search_permits, or its permitsnag.com page URL."
    }
  },
  "required": [
    "permit"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "found": {
      "const": false,
      "description": "Present, and false, only when nothing matched."
    },
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "park": {
      "type": [
        "string",
        "null"
      ]
    },
    "usState": {
      "type": [
        "string",
        "null"
      ]
    },
    "pageUrl": {
      "type": "string"
    },
    "officialUrl": {
      "type": [
        "string",
        "null"
      ],
      "description": "The agency's own permit page."
    },
    "issuance": {
      "type": "string",
      "description": "How the permit is issued, in plain words."
    },
    "scanRoute": {
      "enum": [
        "direct",
        "via_zone",
        "via_children",
        "none",
        null
      ],
      "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none."
    },
    "alert": {
      "type": "object",
      "properties": {
        "available": {
          "type": "boolean",
          "description": "True only when PermitSnag can send an alert for this place right now."
        },
        "reason": {
          "enum": [
            "eligible",
            "lottery_period",
            "out_of_season",
            "closed",
            "no_quota_now",
            "lottery_draw_only",
            "not_sold_online",
            "not_tracked"
          ],
          "description": "Why an alert is or is not on offer."
        },
        "pageUrl": {
          "type": "string",
          "description": "The PermitSnag page where an alert is set up, or where to read what to do instead."
        }
      },
      "required": [
        "available",
        "reason",
        "pageUrl"
      ],
      "additionalProperties": false
    },
    "season": {
      "type": "object",
      "description": "The agency's season or closure state, with agency words in quoted fields.",
      "properties": {
        "offer": {
          "type": "string",
          "description": "What the page offers in this season."
        },
        "state": {
          "type": [
            "string",
            "null"
          ],
          "description": "The season state code, or null when nothing is published."
        },
        "opensOn": {
          "type": [
            "string",
            "null"
          ],
          "description": "YYYY-MM-DD the agency says the season opens."
        },
        "closesOn": {
          "type": [
            "string",
            "null"
          ],
          "description": "YYYY-MM-DD the agency says the season closes."
        },
        "agency": {
          "type": [
            "string",
            "null"
          ]
        },
        "agencyQuote": {
          "type": [
            "string",
            "null"
          ],
          "description": "The agency's own words, capped."
        },
        "sourceUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "closure": {
          "type": "object",
          "description": "A closure of the whole place, when the agency posted one.",
          "properties": {
            "incident": {
              "type": [
                "string",
                "null"
              ]
            },
            "agency": {
              "type": [
                "string",
                "null"
              ]
            },
            "readAt": {
              "type": "string"
            },
            "since": {
              "type": [
                "string",
                "null"
              ]
            },
            "reopensOn": {
              "type": [
                "string",
                "null"
              ]
            },
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": true
        },
        "closedParts": {
          "type": "array",
          "maxItems": 5,
          "description": "Named parts that are closed while the rest stays open.",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "since": {
                "type": "string"
              },
              "reopensOn": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "agencyQuote": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": true
          }
        }
      },
      "required": [
        "offer",
        "state"
      ],
      "additionalProperties": true
    },
    "agencyDates": {
      "type": "array",
      "maxItems": 8,
      "description": "Upcoming dates from an agency source (lottery opens, closes, results, claims).",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "description": "YYYY-MM-DD."
          },
          "sourceUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "agencyQuote": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "type",
          "date",
          "sourceUrl",
          "agencyQuote"
        ],
        "additionalProperties": false
      }
    },
    "releaseRules": {
      "type": "array",
      "maxItems": 4,
      "description": "The agency schedule for when dates go on sale.",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "sourceUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "agencyQuote": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "kind",
          "sourceUrl",
          "agencyQuote"
        ],
        "additionalProperties": false
      }
    },
    "groupSizeLimit": {
      "type": [
        "integer",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkedAt": {
      "type": "string",
      "description": "When this answer was composed, ISO 8601."
    }
  },
  "description": "The rules and sourced dates of one US backcountry or wilderness permit, or found: false.",
  "anyOf": [
    {
      "required": [
        "id",
        "slug",
        "name",
        "park",
        "usState",
        "pageUrl",
        "officialUrl",
        "issuance",
        "scanRoute",
        "alert",
        "season",
        "agencyDates",
        "releaseRules",
        "groupSizeLimit",
        "description",
        "checkedAt"
      ]
    },
    {
      "required": [
        "found"
      ]
    }
  ],
  "additionalProperties": false
}
🟢search_campgrounds(query, state, limit)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "A campground name or area, like \"Upper Pines\" or \"Big Sur\"."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Optional two-letter US state code to narrow results, like CA."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "How many results, 1 to 10. Default 5."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "state": {
      "type": [
        "string",
        "null"
      ]
    },
    "results": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "bookingSystem": {
            "type": "string"
          },
          "depth": {
            "enum": [
              "site_level",
              "campground_level"
            ],
            "description": "site_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole."
          },
          "pageUrl": {
            "type": "string"
          },
          "scannable": {
            "type": "boolean",
            "description": "True when PermitSnag checks this campground for openings. Whether an alert is on offer today is in get_campground_details."
          }
        },
        "required": [
          "id",
          "name",
          "state",
          "bookingSystem",
          "depth",
          "pageUrl",
          "scannable"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "query",
    "state",
    "results"
  ],
  "description": "US campgrounds that match the search.",
  "additionalProperties": false
}
🟢get_campground_details(campground)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "campground": {
      "type": "string",
      "maxLength": 200,
      "description": "The campground id from search_campgrounds."
    }
  },
  "required": [
    "campground"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "found": {
      "const": false,
      "description": "Present, and false, only when nothing matched."
    },
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "state": {
      "type": [
        "string",
        "null"
      ]
    },
    "bookingSystem": {
      "type": "string"
    },
    "provider": {
      "type": "string"
    },
    "depth": {
      "enum": [
        "site_level",
        "campground_level"
      ],
      "description": "site_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole."
    },
    "pageUrl": {
      "type": "string"
    },
    "bookingUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "totalSites": {
      "type": [
        "integer",
        "null"
      ]
    },
    "siteTypes": {
      "type": "array",
      "maxItems": 6,
      "items": {
        "type": "string"
      }
    },
    "amenities": {
      "type": "array",
      "maxItems": 8,
      "items": {
        "type": "string"
      }
    },
    "maxStayNights": {
      "type": [
        "integer",
        "null"
      ]
    },
    "reservationWindowDays": {
      "type": [
        "integer",
        "null"
      ]
    },
    "priceRange": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "min": {
          "type": [
            "string",
            "null"
          ]
        },
        "max": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "min",
        "max"
      ],
      "additionalProperties": false
    },
    "releaseRule": {
      "type": [
        "object",
        "null"
      ],
      "description": "When sites go on sale, from the listing itself.",
      "properties": {
        "kind": {
          "type": "string"
        },
        "monthsAhead": {
          "type": [
            "number",
            "null"
          ]
        },
        "daysAhead": {
          "type": [
            "number",
            "null"
          ]
        },
        "sourceUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "agencyQuote": {
          "type": [
            "string",
            "null"
          ]
        },
        "readAt": {
          "type": "string"
        }
      },
      "required": [
        "kind",
        "monthsAhead",
        "daysAhead",
        "sourceUrl",
        "agencyQuote",
        "readAt"
      ],
      "additionalProperties": false
    },
    "alert": {
      "type": "object",
      "properties": {
        "available": {
          "type": "boolean",
          "description": "True only when PermitSnag can send an alert for this place right now."
        },
        "reason": {
          "enum": [
            "eligible",
            "lottery_period",
            "out_of_season",
            "closed",
            "no_quota_now",
            "lottery_draw_only",
            "not_sold_online",
            "not_tracked"
          ],
          "description": "Why an alert is or is not on offer."
        },
        "pageUrl": {
          "type": "string",
          "description": "The PermitSnag page where an alert is set up, or where to read what to do instead."
        }
      },
      "required": [
        "available",
        "reason",
        "pageUrl"
      ],
      "additionalProperties": false
    },
    "season": {
      "type": "object",
      "description": "The agency's season or closure state, with agency words in quoted fields.",
      "properties": {
        "offer": {
          "type": "string",
          "description": "What the page offers in this season."
        },
        "state": {
          "type": [
            "string",
            "null"
          ],
          "description": "The season state code, or null when nothing is published."
        },
        "opensOn": {
          "type": [
            "string",
            "null"
          ],
          "description": "YYYY-MM-DD the agency says the season opens."
        },
        "closesOn": {
          "type": [
            "string",
            "null"
          ],
          "description": "YYYY-MM-DD the agency says the season closes."
        },
        "agency": {
          "type": [
            "string",
            "null"
          ]
        },
        "agencyQuote": {
          "type": [
            "string",
            "null"
          ],
          "description": "The agency's own words, capped."
        },
        "sourceUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "closure": {
          "type": "object",
          "description": "A closure of the whole place, when the agency posted one.",
          "properties": {
            "incident": {
              "type": [
                "string",
                "null"
              ]
            },
            "agency": {
              "type": [
                "string",
                "null"
              ]
            },
            "readAt": {
              "type": "string"
            },
            "since": {
              "type": [
                "string",
                "null"
              ]
            },
            "reopensOn": {
              "type": [
                "string",
                "null"
              ]
            },
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": true
        },
        "closedParts": {
          "type": "array",
          "maxItems": 5,
          "description": "Named parts that are closed while the rest stays open.",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "since": {
                "type": "string"
              },
              "reopensOn": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "agencyQuote": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": true
          }
        }
      },
      "required": [
        "offer",
        "state"
      ],
      "additionalProperties": true
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkedAt": {
      "type": "string"
    }
  },
  "description": "The details of one US campground, or found: false.",
  "anyOf": [
    {
      "required": [
        "id",
        "name",
        "state",
        "bookingSystem",
        "provider",
        "depth",
        "pageUrl",
        "bookingUrl",
        "totalSites",
        "siteTypes",
        "amenities",
        "maxStayNights",
        "reservationWindowDays",
        "priceRange",
        "releaseRule",
        "alert",
        "season",
        "description",
        "checkedAt"
      ]
    },
    {
      "required": [
        "found"
      ]
    }
  ],
  "additionalProperties": false
}
🟢check_availability(permit, campground, startDate, endDate)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "permit": {
      "type": "string",
      "maxLength": 200,
      "description": "The permit id or slug from search_permits. Give this or campground, not both."
    },
    "campground": {
      "type": "string",
      "maxLength": 200,
      "description": "The campground id from search_campgrounds. Give this or permit, not both."
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "First date, YYYY-MM-DD, read as the place's own local calendar day (for a campground, the night you arrive)."
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Last date, YYYY-MM-DD, inclusive. Defaults to startDate. The range covers at most 62 days, counting both ends."
    }
  },
  "required": [
    "startDate"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "found": {
      "const": false,
      "description": "Present, and false, only when nothing matched."
    },
    "past": {
      "const": true,
      "description": "Present only when every asked date has passed."
    },
    "subject": {
      "type": "object",
      "properties": {
        "kind": {
          "enum": [
            "permit",
            "campground"
          ]
        },
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string",
          "description": "Permits only."
        },
        "name": {
          "type": "string"
        },
        "pageUrl": {
          "type": "string"
        }
      },
      "required": [
        "kind",
        "id",
        "name",
        "pageUrl"
      ],
      "additionalProperties": false
    },
    "depth": {
      "enum": [
        "permit_level",
        "site_level",
        "campground_level"
      ]
    },
    "scanRoute": {
      "enum": [
        "direct",
        "via_zone",
        "via_children",
        "none",
        null
      ],
      "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none."
    },
    "partialScope": {
      "type": "boolean",
      "description": "Permits only: true when our checks may cover only some zones or entry points, so no date is called \"no opening\"."
    },
    "dates": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string"
        },
        "end": {
          "type": "string"
        },
        "calendar": {
          "const": "local_day"
        }
      },
      "required": [
        "start",
        "end",
        "calendar"
      ],
      "additionalProperties": false
    },
    "staleAfterHours": {
      "type": "number",
      "description": "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": {
      "type": "number",
      "description": "Permits only: dates are described as they stood this many minutes ago."
    },
    "freshness": {
      "type": "object",
      "properties": {
        "band": {
          "enum": [
            "none",
            "recent",
            "stale"
          ]
        },
        "newestObservedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "oldestObservedAt": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "band",
        "newestObservedAt",
        "oldestObservedAt"
      ],
      "additionalProperties": false
    },
    "days": {
      "type": "array",
      "maxItems": 62,
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "YYYY-MM-DD, the place's own local calendar day."
          },
          "state": {
            "enum": [
              "observed_opening",
              "observed_no_match",
              "stale",
              "unknown",
              "unreleased",
              "off_season",
              "closed",
              "unsupported"
            ],
            "description": "What PermitSnag recorded for this date. Neither stale nor unknown means sold out."
          },
          "observedAt": {
            "type": "string",
            "description": "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."
          },
          "ageMinutes": {
            "type": "integer",
            "description": "Minutes since that check."
          },
          "lastSeenState": {
            "enum": [
              "observed_opening",
              "observed_no_match"
            ],
            "description": "For a stale date: what that old check saw."
          },
          "openSites": {
            "type": "integer",
            "description": "Campgrounds at site level only: sites seen open."
          },
          "releasesOn": {
            "type": [
              "string",
              "null"
            ],
            "description": "For an unreleased date: the sourced day it goes on sale, when known."
          },
          "releaseKind": {
            "enum": [
              "lottery",
              "reservations",
              null
            ]
          }
        },
        "required": [
          "date",
          "state"
        ],
        "additionalProperties": false
      }
    },
    "alert": {
      "type": "object",
      "properties": {
        "available": {
          "type": "boolean",
          "description": "True only when PermitSnag can send an alert for this place right now."
        },
        "reason": {
          "enum": [
            "eligible",
            "lottery_period",
            "out_of_season",
            "closed",
            "no_quota_now",
            "lottery_draw_only",
            "not_sold_online",
            "not_tracked"
          ],
          "description": "Why an alert is or is not on offer."
        },
        "pageUrl": {
          "type": "string",
          "description": "The PermitSnag page where an alert is set up, or where to read what to do instead."
        }
      },
      "required": [
        "available",
        "reason",
        "pageUrl"
      ],
      "additionalProperties": false
    },
    "source": {
      "const": "permitsnag_recorded_checks"
    },
    "checkedAt": {
      "type": "string"
    }
  },
  "description": "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.",
  "anyOf": [
    {
      "required": [
        "subject",
        "depth",
        "dates",
        "staleAfterHours",
        "freshness",
        "days",
        "alert",
        "source",
        "checkedAt"
      ]
    },
    {
      "required": [
        "found"
      ]
    },
    {
      "required": [
        "past"
      ]
    }
  ],
  "additionalProperties": false
}
🟢get_booking_link(permit, campground, startDate, endDate, partySize)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "permit": {
      "type": "string",
      "maxLength": 200,
      "description": "The permit id or slug. Give this or campground, not both."
    },
    "campground": {
      "type": "string",
      "maxLength": 200,
      "description": "The campground id. Give this or permit, not both."
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional first date, YYYY-MM-DD. Sent in the link for some booking sites; the site may ignore it."
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional last date, YYYY-MM-DD. Sent in the link for a few booking sites; the site may ignore it."
    },
    "partySize": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60,
      "description": "Optional number of people. Sent in the link for some permit booking sites; the site may ignore it."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "found": {
      "const": false,
      "description": "Present, and false, only when nothing matched."
    },
    "subject": {
      "type": "object",
      "properties": {
        "kind": {
          "enum": [
            "permit",
            "campground"
          ]
        },
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string",
          "description": "Permits only."
        },
        "name": {
          "type": "string"
        },
        "pageUrl": {
          "type": "string"
        }
      },
      "required": [
        "kind",
        "id",
        "name",
        "pageUrl"
      ],
      "additionalProperties": false
    },
    "url": {
      "type": "string",
      "description": "The page to open."
    },
    "destination": {
      "enum": [
        "booking_page",
        "official_page",
        "permitsnag_page"
      ]
    },
    "datePrefill": {
      "enum": [
        "applied",
        "ignored",
        "unknown"
      ],
      "description": "Whether the asked date reaches the booking page."
    },
    "providerHomeUrl": {
      "type": [
        "string",
        "null"
      ],
      "description": "Permits only: the booking site's front page, when that is all we can name."
    },
    "executesNothing": {
      "const": true,
      "description": "This tool only returns a link."
    }
  },
  "description": "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.",
  "anyOf": [
    {
      "required": [
        "subject",
        "url",
        "destination",
        "datePrefill",
        "executesNothing"
      ]
    },
    {
      "required": [
        "found"
      ]
    }
  ],
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet6 Tools