Skip to main content
Glama

Server Details

Live BC Parks campsite and day-pass status with freshness and official booking links.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, and the descriptions explicitly cross-reference one another to prevent confusion. Even the four availability-related tools are separated by scope: named park vs. multi-park, exact dates vs. general timing, and day-use passes vs. campsites.

Naming Consistency4/5

All tools share the parksopen_ prefix and mostly follow a verb_noun pattern like check_alerts, search_campsites, and get_booking_link. Two tools (park_info, park_availability_calendar) omit the leading verb, creating a minor inconsistency, but the overall naming remains predictable and readable.

Tool Count5/5

Eight tools is well-scoped for this domain: alerts, day passes, weather, park discovery, availability calendars, exact campsite search, park facts, and booking link handoff each earn their place. There is no bloat or obvious redundancy.

Completeness5/5

The surface covers the full informational journey for a park visitor: check closures, learn park rules, check weather, find candidate parks, inspect availability, and generate a booking link. Booking itself is intentionally handed off to the official system, so there is no dead-end workflow for an assistant whose job is to inform and redirect.

Available Tools

8 tools
parksopen_check_alertsClosures, fire bans, advisories, nearby wildfiresA
Read-onlyIdempotent
Inspect

Use this when checking current closures, fire bans, advisories, or nearby wildfires for one park or system-wide. Run it before recommending a park in summer; these are 'verify before you travel' notices, never a booking or safety claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
parkNopark name; omit for a system-wide summary
systemNoreservation system id, e.g. bc_parks. Omit for the default system.
provinceNoprovince code or URL prefix (bc, on, …) — an alternative to system.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish read-only, open-world, and idempotent behavior, so the description's extra value comes from clarifying that these are 'verify before you travel' notices and 'never a booking or safety claim.' That caveat prevents the agent from overstating what the data means, which is meaningful behavioral context 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?

Two front-loaded sentences carry the purpose, the recommended timing, and an important interpretive caveat with zero wasted words. Every clause earns its place in the description.

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

Completeness5/5

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

Given full schema coverage, rich annotations, and an output schema, the description is complete enough for correct invocation. It states what the tool checks, when to run it, the scope options, and how to interpret the results, so nothing essential is missing.

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?

Schema description coverage is 100%, so the parameter semantics baseline is 3. The description does add that results can be for 'one park or system-wide,' which aligns with the optional park parameter, but it does not add substantial meaning beyond what the schema already documents.

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?

The description pairs a specific verb, 'checking,' with a concrete resource: current closures, fire bans, advisories, and nearby wildfires, scoped to either one park or system-wide. This clearly differentiates the tool from weather, booking, availability, and park-info siblings without needing to open their schemas.

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?

The description gives explicit usage context: 'Use this when checking current closures...' and 'Run it before recommending a park in summer.' It does not explicitly name alternative tools or state when not to use it, but the timing and scope guidance is clear enough for an agent to select it confidently.

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

parksopen_check_day_passesCheck BC Parks day-pass availabilityA
Read-onlyIdempotent
Inspect

Use this when the user asks whether a BC Parks day-use pass is required, available, sold out, not released yet, or closed for a date, park, access area, or AM/PM slot. It returns every tracked access area and time slot for the requested parks across the live three-day booking window, with explicit No pass needed versus Sold out states, freshness, the Parks Open comparison page, and the official BC Parks booking handoff. If live inventory is stale, incomplete, or conflicts with published rules, it fails closed and will not claim Available or Sold out.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNovisit date, YYYY-MM-DD. Omit for today in British Columbia.
daysNonumber of consecutive dates to compare, 1 to 3; default is the full 3-day booking window
parksNooptional park names, e.g. ['Golden Ears', 'Garibaldi']; omit to return every tracked day-pass park

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
liveYes
noteYes
pageYes
parksYes
freshnessYes
booking_urlYes
observed_atYes
suggestionsYes
coverage_throughYes

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses crucial behavior: it returns every tracked access area and time slot with explicit 'No pass needed' vs 'Sold out' states, includes freshness info, and fails closed if inventory is stale or conflicts with published rules, refusing to claim availability. This adds significant operational context.

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

Conciseness4/5

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

The description is a single dense paragraph, front-loaded with the primary use case. It is longer than minimal but every sentence contributes to understanding the tool's scope and failure behavior. Slightly verbose but well-organized.

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

Completeness5/5

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

Given an output schema exists, the description doesn't need to detail return structure. It covers the range of queries handled, the states returned, freshness, and the fail-closed behavior. It also mentions the comparison page and booking handoff, making it complete for an agent to call correctly.

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?

Schema description coverage is 100%, so the baseline is 3. The description repeats some parameter details (e.g., default to full 3-day window, optional parks) but does not add new meaning beyond the schema. It is adequate but not additive.

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?

The description states a specific verb ('Check'), a resource ('BC Parks day-pass availability'), and a precise scope (day-use pass availability for dates, parks, access areas, and AM/PM slots). It clearly differentiates from siblings like parksopen_check_alerts or parksopen_search_campsites by focusing on day-use passes.

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?

It explicitly says 'Use this when the user asks whether a BC Parks day-use pass is required, available, sold out, not released yet, or closed...' This gives a clear trigger. However, it does not explicitly state when not to use it or name alternative tools for different queries, though the domain restriction implies it.

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

parksopen_check_weatherForecast and air quality at a parkA
Read-onlyIdempotent
Inspect

Use this when the user asks about forecast conditions or air quality at a named park. It returns the Environment Canada forecast (daily high/low/conditions, about 6 days) and AQHI for the nearest station; if the park is beyond range it says so and never invents temperatures.

ParametersJSON Schema
NameRequiredDescriptionDefault
parkYespark name
systemNoreservation system id, e.g. bc_parks. Omit for the default system.
provinceNoprovince code or URL prefix (bc, on, …) — an alternative to system.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint), the description discloses the data source (Environment Canada), the format (daily high/low/conditions, about 6 days), the AQHI from nearest station, and the honest behavior of saying when out of range and never inventing temperatures. This adds substantial behavioral context 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?

The description is a single, front-loaded sentence that packs the trigger condition, the output content, and an edge-case guarantee without waste. Every clause adds value, making it concise and well-structured.

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?

The description covers the core purpose, data source, output scope, and a key edge case (out-of-range handling). An output schema exists to define the return structure, so the description doesn't need to repeat that. It is complete for a low-complexity tool, though it doesn't mention error handling for invalid park names, which is a minor gap.

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?

Schema coverage is 100%, so the input schema already documents all three parameters (park, system, province) with descriptions. The tool description adds no extra parameter-level detail beyond what the schema provides, so it meets the baseline of 3 but does not exceed it.

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?

The description states a specific action (check forecast and air quality) on a specific resource (named park), and clearly distinguishes from siblings like check_alerts or park_info. The trigger condition is explicit: 'Use this when the user asks about forecast conditions or air quality at a named park.'

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?

The description gives a clear when-to-use trigger ('when the user asks about forecast conditions or air quality at a named park'), but does not explicitly mention when not to use it or name alternative tools. It implies the scope well but lacks an explicit exclusion or alternative routing.

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

parksopen_find_open_parksFind parks with openings (ranked)A
Read-onlyIdempotent
Inspect

Use this when the user has not named a park and wants PARKS ranked by soonest opening or estimated drive time, such as 'where can I camp this weekend' or 'anything near Vancouver with space'. It uses the default tent-compatible inventory and can filter confirmed amenities. Do not use it when van, trailer, RV, or other equipment fit matters; use parksopen_search_campsites with equipment_class. For a named park use parksopen_search_campsites or parksopen_park_availability_calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
nightsNodefault 2 (weekend) or 1
regionNorestrict to a region name as the site shows it, e.g. 'Vancouver Island'
systemNoreservation system id, e.g. bc_parks. Omit for the default system.
weekendNothis coming weekend (Fri→Sun, 2 nights)
provinceNoprovince code or URL prefix (bc, on, …) — an alternative to system.
amenitiesNoANDed site attributes (confirmed-only; the count is a floor)
near_cityNorank by drive time from this city (Vancouver, Victoria, Nanaimo, Whistler, Kelowna, Kamloops, Cranbrook, Prince George, Fort St. John)
start_dateNoa specific arrival date; omit to find the soonest opening
horizon_daysNohow far ahead to look when no date is fixed; default 14

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it uses the default tent-compatible inventory, can filter confirmed amenities, and ranks results by soonest opening or drive time. This helps the agent understand result semantics without contradicting 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 sentences with no filler: use case and examples first, then default behavior, then clear exclusions with alternatives. Every sentence adds decision-relevant information and the most important scoping constraint is front-loaded.

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

Completeness5/5

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

The description fully covers when to use the tool, when not to use it, and which alternatives to choose. With an output schema present and detailed input schema descriptions, an agent has everything needed to select and invoke the tool correctly. No critical context is missing.

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?

Schema description coverage is 90%, so most parameters are already well documented in the schema. The description adds useful context like default tent-compatible inventory and confirmed amenities, but it does not explain individual parameters beyond what the schema provides. Baseline 3 is appropriate because the schema carries the parameter-documentation burden.

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?

The description states a specific action: finding parks ranked by soonest opening or estimated drive time when no park is named. It explicitly distinguishes itself from siblings by defining its scope (unnamed park, ranked results, default tent-compatible inventory), so an agent can select it without inspecting other tools.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance with concrete user examples, and states when not to use it: when equipment fit matters or when a specific park is named. It names the exact alternatives (parksopen_search_campsites with equipment_class, parksopen_park_availability_calendar), leaving no ambiguity.

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

parksopen_park_availability_calendarPark availability calendar (8 weeks)A
Read-onlyIdempotent
Inspect

Use this when the user asks 'when is X free', 'how busy is X', or 'which weekend should I try' for ONE named park. It returns nightly open counts for the next 8 weeks, whole-stay counts for four weekends, fill rate, and booking rules. For exact equipment fit or specific dates across many parks use parksopen_search_campsites.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
parkYespark name — approximate is fine
systemNoreservation system id, e.g. bc_parks
provinceNoprovince code or prefix, e.g. bc

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description discloses result contents: nightly open counts, whole-stay counts for four weekends, fill rate, and booking rules. It is slightly loose about the 8-week window, which the configurable days parameter can extend up to 92 days, but that is a minor semantic wrinkle.

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 short sentences, each earning its place: one for when to use, one for what it returns, and one for the alternative. The trigger phrases are front-loaded and there is no filler.

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?

Given the output schema, the description does not need to enumerate return fields, and it covers scope, trigger, output highlights, and the main alternative. The only substantive gap is the days parameter, whose effect is neither described in the schema nor clearly connected to the '8 weeks' language in the description.

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?

The schema already documents park, system, and province. The description adds usage context for park ('ONE named park') and implies a default time window ('next 8 weeks', 'four weekends'), but it never explains the days parameter or how it affects the calendar range, leaving that parameter largely undocumented.

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?

The description states a specific action for a bounded resource: 'returns nightly open counts for the next 8 weeks' for 'ONE named park'. It also anchors the trigger phrases ('when is X free', 'how busy is X', 'which weekend should I try'), distinguishing it clearly from sibling tools, especially parksopen_search_campsites.

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

Usage Guidelines5/5

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

It explicitly opens with 'Use this when...' and gives concrete user-query examples. It then names the alternative and the condition for choosing it: 'For exact equipment fit or specific dates across many parks use parksopen_search_campsites.'

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

parksopen_park_infoPark facts, rules and fees (knowledge base)A
Read-onlyIdempotent
Inspect

Use this when the user asks about reservation policy, fees, pets, fires, facilities, or park descriptions, such as 'does X allow dogs' or 'when do reservations open'. It returns slower-changing facts from the provider's published pages with sources. Do not use it for availability (parksopen_search_campsites) or current closures (parksopen_check_alerts).

ParametersJSON Schema
NameRequiredDescriptionDefault
parkNopark name, when the question is about one park
questionYeswhat you want to know (fees, pets, fires, showers, reservations policy…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
parkYes
contextYes
sourcesYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful context beyond that: it returns slower-changing facts from provider published pages and includes sources, which helps set expectations about freshness and provenance.

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?

Two tight sentences, front-loaded with usage scenarios, then source characteristics, then explicit exclusions. Every sentence earns its place with no filler.

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

Completeness5/5

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

With rich annotations, a full output schema, and complete parameter schema coverage, the description covers what the tool does, when to use it, and what to avoid. It even notes source attribution. Nothing critical is missing for an agent to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100% and both parameters already have descriptions. The description adds semantic value by enumerating question categories (reservation policy, fees, pets, fires, facilities) and giving examples, though it doesn't deeply extend the schema.

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?

The description states a specific verb/resource combo: it answers questions about reservation policy, fees, pets, fires, facilities, and park descriptions, returning slower-changing facts from published pages with sources. It also names what it is not for, distinguishing it from availability and closure tools.

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

Usage Guidelines5/5

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

Explicit 'Use this when...' guidance covers the main use cases with concrete examples ('does X allow dogs', 'when do reservations open'). It also gives clear negative guidance: 'Do not use it for availability (parksopen_search_campsites) or current closures (parksopen_check_alerts).'

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

parksopen_search_campsitesSearch campsites by live availabilityA
Read-onlyIdempotent
Inspect

Use this when exact dates or equipment fit matter, for questions like 'is X available', 'find a site for the long weekend', or 'which parks have space for a 32 ft RV'. It reads observed campsite availability across Canadian park reservation systems (BC Parks today) from public reservation data. Filters the official sites cannot: exact equipment fit, electrical, waterfront, shade, pets, privacy — across every park at once. Returns only sites observed open for EVERY requested night, with an absolute Parks Open page URL to cite, a booking link into the official reservation flow (we never book for the user), and observed_at for freshness; verify availability on the official site. Not for: fees, rules, facilities (use parksopen_park_info), weather (parksopen_check_weather), closures (parksopen_check_alerts), or dates beyond the provider's booking window.

ParametersJSON Schema
NameRequiredDescriptionDefault
parkNopark name — approximate is fine (partial, missing 'Provincial', misspelled). Omit to search every park. If it cannot be resolved you get a did-you-mean list.
limitNopage size, default 20
cursorNoopaque cursor from a previous page
systemNoreservation system id, e.g. bc_parks. Omit for every tracked system.
categoryNobooking category; default frontcountry (drive-in campsites)
end_dateYesdeparture, YYYY-MM-DD (exclusive; nights = end − start)
provinceNoprovince code or URL prefix (bc, on, …) — an alternative to system.
amenitiesNoANDed site attributes: electrical, waterfront, pets, some_shade, full_shade, double, near_restroom, walk_in, accessible, pull_through, private, big_rig
start_dateYesarrival, YYYY-MM-DD
min_privacyNo'Good' or 'Excellent'
equipment_classNocanonical class (tent, tent2, tent3, van, trailer_18, rv_32, rv_32_plus) or free text like '30ft trailer'. Default tent.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
totalYes
nightsYes
closureYes
resultsYes
next_cursorYes
observed_atYes
suggestionsYes
resolved_parkYes
equipment_classYes

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses that it reads observed availability from public reservation data, currently only BC Parks, never books for the user, returns only sites open for every requested night, and provides an observed_at timestamp with advice to verify on the official site. This is rich behavioral context.

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?

The description is long but information-dense, front-loading the use case and example questions before the mechanics and exclusions. Every clause earns its place, and the 'Not for' segment is a compact, structured way to prevent misuse.

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

Completeness5/5

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

For a tool with 11 parameters, an output schema, and 7 siblings, the description covers data source, limitations, return contents, freshness caveat, and alternative tools. The output schema handles return-value details, so nothing needed for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning by connecting equipment_class and amenities to 'exact equipment fit' and listing filterable attributes like electrical, waterfront, shade, pets, and privacy. It also clarifies date semantics by saying only sites open for EVERY requested night are returned.

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?

The description opens with 'Search campsites by live availability' and names example queries ('is X available', 'find a site for the long weekend'), making the verb and resource unmistakable. It also distinguishes itself from siblings by stating it filters 'the official sites cannot' and explicitly lists what it is not for, with sibling tool names.

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

Usage Guidelines5/5

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

The tool gives explicit when-to-use conditions ('when exact dates or equipment fit matter') and concrete example questions. It also provides clear exclusions with sibling alternatives for fees, rules, facilities, weather, and closures, so an agent can route correctly.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • Changedparksopen_check_alerts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "alert": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "access_status": {
        +                  "type": "string"
        +                },
        +                "closed_to_visitors": {
        +                  "type": "boolean"
        +                },
        +                "detail": {
        +                  "type": "string"
        +                },
        +                "from": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "severity": {
        +                  "type": "string"
        +                },
        +                "title": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "type": "string"
        +                },
        +                "until": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "url": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "severity",
        +                "title"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "park": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "source": {
        +          "type": "string"
        +        },
        +        "summary": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "examples": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "fireBansOrClosures": {
        +              "type": "number"
        +            },
        +            "parksNearWildfire": {
        +              "type": "number"
        +            },
        +            "total": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "total",
        +            "fireBansOrClosures",
        +            "parksNearWildfire",
        +            "examples"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "park",
        +        "alert",
        +        "source"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "error": {
        +          "type": "string"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "error"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Addedparksopen_check_day_passes
    • Changedparksopen_check_weather1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "park": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "weather": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "aqhi": {
        +                  "type": [
        +                    "number",
        +                    "null"
        +                  ]
        +                },
        +                "city": {
        +                  "type": "string"
        +                },
        +                "currentTemp": {
        +                  "type": [
        +                    "number",
        +                    "null"
        +                  ]
        +                },
        +                "days": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "condition": {
        +                        "type": "string"
        +                      },
        +                      "date": {
        +                        "type": "string"
        +                      },
        +                      "high": {
        +                        "type": [
        +                          "number",
        +                          "null"
        +                        ]
        +                      },
        +                      "icon": {
        +                        "type": "string"
        +                      },
        +                      "label": {
        +                        "type": "string"
        +                      },
        +                      "low": {
        +                        "type": [
        +                          "number",
        +                          "null"
        +                        ]
        +                      },
        +                      "pop": {
        +                        "type": [
        +                          "number",
        +                          "null"
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "date",
        +                      "label",
        +                      "high",
        +                      "low",
        +                      "icon",
        +                      "condition",
        +                      "pop"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "updated": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "city",
        +                "updated",
        +                "currentTemp",
        +                "days",
        +                "aqhi"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "park",
        +        "weather"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "error": {
        +          "type": "string"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "error"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedparksopen_find_open_parks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "amenities_applied": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "horizon_days": {
        +          "type": "number"
        +        },
        +        "nights": {
        +          "type": "number"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "observed_at": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "parks": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "drive_min": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "earliest_date": {
        +                "type": "string"
        +              },
        +              "earliest_offset_days": {
        +                "type": "number"
        +              },
        +              "ferry": {
        +                "type": "boolean"
        +              },
        +              "page": {
        +                "type": "string"
        +              },
        +              "park": {
        +                "type": "string"
        +              },
        +              "region": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sites_open": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "park",
        +              "page",
        +              "region",
        +              "earliest_date",
        +              "earliest_offset_days",
        +              "sites_open",
        +              "drive_min",
        +              "ferry"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "total_with_openings": {
        +          "type": "number"
        +        },
        +        "window": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "nights",
        +        "horizon_days",
        +        "window",
        +        "amenities_applied",
        +        "parks",
        +        "total_with_openings",
        +        "observed_at",
        +        "note"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "error": {
        +          "type": "string"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "error"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedparksopen_get_booking_link1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "booking_url": {
        +          "type": "string"
        +        },
        +        "equipment_class": {
        +          "type": "string"
        +        },
        +        "page": {
        +          "type": "string"
        +        },
        +        "park": {
        +          "type": "string"
        +        },
        +        "park_key": {
        +          "type": "string"
        +        },
        +        "system": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "system",
        +        "park",
        +        "park_key",
        +        "equipment_class",
        +        "booking_url",
        +        "page"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "error": {
        +          "type": "string"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "error"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedparksopen_park_availability_calendar1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "fill_rate_pct": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "nights": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "date": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "open_sites": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "open_sites"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "observed_at": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "page": {
        +          "type": "string"
        +        },
        +        "park": {
        +          "type": "string"
        +        },
        +        "park_key": {
        +          "type": "string"
        +        },
        +        "reservable_sites": {
        +          "type": "number"
        +        },
        +        "rules": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "max_nights": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "min_lead_days": {
        +              "type": "number"
        +            },
        +            "window": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "window",
        +            "min_lead_days",
        +            "max_nights"
        +          ],
        +          "type": "object"
        +        },
        +        "system": {
        +          "type": "string"
        +        },
        +        "weekends": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "end": {
        +                "type": "string"
        +              },
        +              "label": {
        +                "type": "string"
        +              },
        +              "open_for_whole_stay": {
        +                "type": "number"
        +              },
        +              "start": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "start",
        +              "end",
        +              "label",
        +              "open_for_whole_stay"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "system",
        +        "park",
        +        "park_key",
        +        "page",
        +        "reservable_sites",
        +        "fill_rate_pct",
        +        "nights",
        +        "weekends",
        +        "rules",
        +        "observed_at",
        +        "note"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "error": {
        +          "type": "string"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "error"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedparksopen_park_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "context": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "park": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "sources": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "park",
        +    "context",
        +    "sources",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedparksopen_search_campsites1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "closure": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "park": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            },
        +            "until": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "park",
        +            "title",
        +            "until",
        +            "source"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "equipment_class": {
        +      "type": "string"
        +    },
        +    "next_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "nights": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "observed_at": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "resolved_park": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "attributes": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "adjacent": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "electrical": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "privacy": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "shade": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "privacy",
        +              "shade",
        +              "electrical",
        +              "adjacent"
        +            ],
        +            "type": "object"
        +          },
        +          "booking_url": {
        +            "type": "string"
        +          },
        +          "fit": {
        +            "type": "string"
        +          },
        +          "loop": {
        +            "type": "number"
        +          },
        +          "nights": {
        +            "type": "number"
        +          },
        +          "page": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "park": {
        +            "type": "string"
        +          },
        +          "park_key": {
        +            "type": "string"
        +          },
        +          "site_id": {
        +            "type": "number"
        +          },
        +          "slug": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "system": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "system",
        +          "park",
        +          "park_key",
        +          "slug",
        +          "page",
        +          "site_id",
        +          "loop",
        +          "nights",
        +          "fit",
        +          "attributes",
        +          "booking_url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "suggestions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "total": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "results",
        +    "total",
        +    "next_cursor",
        +    "nights",
        +    "equipment_class",
        +    "resolved_park",
        +    "suggestions",
        +    "observed_at",
        +    "closure",
        +    "note"
        +  ],
        +  "type": "object"
        +}
  2. 7 tool updates
    • First observedparksopen_check_alerts
    • First observedparksopen_check_weather
    • First observedparksopen_find_open_parks
    • First observedparksopen_get_booking_link
    • First observedparksopen_park_availability_calendar
    • First observedparksopen_park_info
    • First observedparksopen_search_campsites

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources