Skip to main content
Glama

US campground details

get_campground_details
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
campgroundYesThe campground id from search_campgrounds.

Output Schema

NameRequiredDescriptionDefault
idNo
nameNo
alertNo
depthNosite_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole.
foundNoPresent, and false, only when nothing matched.
stateNo
seasonNoThe agency's season or closure state, with agency words in quoted fields.
pageUrlNo
providerNo
amenitiesNo
checkedAtNo
siteTypesNo
bookingUrlNo
priceRangeNo
totalSitesNo
descriptionNo
releaseRuleNoWhen sites go on sale, from the listing itself.
bookingSystemNo
maxStayNightsNo
reservationWindowDaysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput 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"
      +}
  2. First observed

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds domain facts (whether PermitSnag can alert on openings, whether checks are per-site or per-campground) but these are output/capability claims rather than behavioral traits of the call itself; it says nothing about failure modes for an unknown campground id. Adequate but not rich beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the purpose before usage and capability notes. No filler, no restatement of the tool name, and every clause carries information an agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With read-only annotations and an output schema covering return values, the description only needs to explain purpose and when to call it, which it does well. The remaining gap is edge-case handling for an invalid or unmatched campground identifier, which the description never addresses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is exactly one parameter and schema description coverage is 100%, with the schema already stating 'The campground id from search_campgrounds.' The description implies an already-identified campground but adds no further syntax, format, or identification guidance beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the details of one US campground') and enumerates the concrete details returned (booking system, sale window, site count/types, stay limits, season/closures). This distinguishes it cleanly from search_campgrounds and check_availability without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggering conditions: 'Use it after search_campgrounds, or when the person names a specific campground.' This names a sibling tool and the workflow position. It stops short of stating when NOT to use it (e.g., to check live openings, use check_availability), so it is clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources