Skip to main content
Glama

Server Details

Find, price and book independent campsites with live availability; guests pay the campsite directly.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 32 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct step or resource: search_campsites (discovery), get_campsite (one site's details), check_availability (live availability), get_quote (itemised price), start_booking (checkout). The availability-vs-quote boundary is spelled out clearly in the descriptions, so misselection risk is low.

Naming Consistency5/5

All five tools follow a consistent snake_case verb_noun pattern (check_availability, get_campsite, get_quote, search_campsites, start_booking). No mixed conventions or vague verbs.

Tool Count4/5

Five tools is a tight, well-scoped set that maps cleanly to the guest booking journey. It is slightly lean, with no tool for booking status or cancellation, but nothing feels redundant.

Completeness4/5

The surface covers discovery through booking initiation (search, details, availability, quote, booking start). Minor gaps remain: no way to retrieve booking status or cancel an existing booking, and no review/amenity-specific tool, though these are workable around the exposed fields.

Available Tools

5 tools
check_availabilityCheck availabilityA
Read-onlyIdempotent
Inspect

Live availability at one campsite for a stay and party. Returns the accommodation types that can take the party with the total price and the amount due at checkout, and explains why the others cannot (fully booked, minimum stay, adults only, no dogs).

NameRequiredDescriptionDefault
dogsNoNumber of dogs.
adultsNoNumber of adults.
infantsNoNumber of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.
campsiteYesThe campsite slug, as returned by search_campsites.
check_inYesArrival date, YYYY-MM-DD.
childrenNoNumber of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18).
check_outYesDeparture date, YYYY-MM-DD. Must be after check_in.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the description's real contribution is behavioral detail it adds beyond them: it returns not just availability but pricing (total price, amount due at checkout) and explains negative results by reason (fully booked, minimum stay, adults only, no dogs). That is genuinely useful for interpreting an empty result, though it says nothing about rate limiting or how 'live' data may change.

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?

A single dense sentence with the purpose front-loaded and the explanatory parenthetical at the end; every clause carries information about scope or output. It is long and slightly run-on, but no sentence is 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?

With no output schema, the description carries the return-value burden and does so adequately, enumerating the result categories and the reason codes for non-availability. It stops short of covering error conditions (bad slug, check_out before check_in) but covers what an agent needs to interpret a normal response.

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 all seven parameters (including the age-policy nuance for children and the infants constraint) are already documented in the schema. The description adds only the word 'party' and echoes the dog/adult restrictions as exclusion reasons; it contributes no format, default, or interaction detail beyond the schema. 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 ('Live availability at one campsite for a stay and party') and immediately scopes it to a single campsite, which separates it from search_campsites and get_quote without naming them. It also discloses the substance of the result (accommodation types, total price, amount due), so an agent knows what it is asking for.

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

Usage Guidelines3/5

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

The phrase 'for a stay and party' implies the pre-booking check context, but the description never says when to use this versus get_quote or start_booking, nor any prerequisite (e.g. campsite slug must come from search_campsites). Usage is inferable rather than stated.

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

get_campsiteCampsite detailsA
Read-onlyIdempotent
Inspect

Full details of one campsite: description, photos, check-in times, open season, every accommodation type with prices and rules, optional extras, the questions the campsite asks at booking, payment and deposit terms, and recent reviews.

NameRequiredDescriptionDefault
campsiteYesThe campsite slug, as returned by search_campsites.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description's safety burden is low. It adds substantive context by enumerating exactly what data will be returned (accommodation types, payment terms, reviews), which helps agents predict the response shape. No contradiction with annotations.

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 sentence that front-loads the core promise and then lists contents in a readable sequence. It is efficient and free of fluff, though a bulleted list would improve scannability slightly given the many items enumerated.

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?

Without an output schema, the description thoroughly documents the return value, covering descriptions, photos, check-in times, season, accommodation types with prices and rules, optional extras, booking questions, payment terms, and reviews. This is sufficient for an agent to correctly invoke the tool and interpret its result, leaving no critical gaps.

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% and the schema already specifies that 'campsite' is a slug from search_campsites. The description adds only minimal reinforcement that it targets 'one campsite' rather than multiple, which is a marginal semantic improvement over the structured data.

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 'Full details of one campsite' with an explicit verb-implied resource, making it clear this is a read operation for a single campsite's detailed information. The enumerated content (photos, times, prices, reviews) clearly distinguishes it from sibling tools like search_campsites, check_availability, and get_quote, which serve different purposes.

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

Usage Guidelines3/5

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

The description implies use when an agent needs comprehensive details about a specific campsite after obtaining a slug via search_campsites. However, it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria, so usage guidance is only implicit.

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

get_quotePrice quoteA
Read-onlyIdempotent
Inspect

An itemised price for one accommodation, stay and party, including chosen extras and any discount or voucher code. Use it to show the guest the exact total and the amount payable now before starting the booking.

NameRequiredDescriptionDefault
dogsNoNumber of dogs.
adultsYesNumber of adults.
extrasNoOptional extras from get_campsite (electric hook-up, firewood, late checkout...).
infantsNoNumber of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.
campsiteYesThe campsite slug, as returned by search_campsites.
check_inYesArrival date, YYYY-MM-DD.
childrenNoNumber of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18).
check_outYesDeparture date, YYYY-MM-DD. Must be after check_in.
voucher_codeNoA gift voucher code, if the campsite sells them.
discount_codeNoA promotional code the guest has, if the campsite accepts them.
accommodation_idYesaccommodation_id from check_availability or get_campsite.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description adds useful behavioral context beyond that: a quote is non-committal and precedes booking, and it discloses that discounts and vouchers are factored in and that an 'amount payable now' (deposit-style) figure is returned.

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 sentences, zero filler, with the resource definition front-loaded and the usage guidance immediately after. Every clause carries information.

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?

No output schema exists, so the description must signal what comes back; it does ('itemised price', 'exact total and the amount payable now'). Combined with rich schema documentation and annotations, an agent has what it needs, though a note on whether the quote expires or holds inventory would close the last 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 description coverage is 100%, with every parameter and the nested extras fields documented in the schema itself, including conditional rules (infants only where age_policy allows, child age varies by campsite). The description only restates extras/discount/voucher at a high level, adding no syntax or format beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('An itemised price for one accommodation, stay and party') and scopes exactly what inputs are priced (extras, discount/voucher code). It implicitly distinguishes itself from start_booking by framing it as the pre-booking step, though it never names check_availability or get_campsite directly.

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 clear context: 'Use it to show the guest the exact total and the amount payable now before starting the booking.' This states when to reach for it and where it sits in the sequence. It does not explicitly exclude alternatives (e.g. that it does not reserve inventory), leaving some inference.

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

search_campsitesSearch campsitesA
Read-onlyIdempotent
Inspect

Find campsites, glamping sites and holiday parks that use Campiamo (the public directory plus every Campiamo-hosted campsite website). Filter by free text (name, town, county, country, description), country, amenities and, with dates, live availability and total stay price for the party. Returns each campsite's slug for the other tools.

NameRequiredDescriptionDefault
dogsNoNumber of dogs.
limitNo
queryNoFree text: a place, region, campsite name or keyword such as "lake" or "glamping".
adultsNoNumber of adults.
countryNoCountry name or ISO code, e.g. "UK", "France", "NZ".
infantsNoNumber of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.
check_inNoArrival date, YYYY-MM-DD.
childrenNoNumber of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18).
amenitiesNoFacilities that must be present, e.g. ["electric hook-up", "showers", "dogs"].
check_outNoDeparture date, YYYY-MM-DD. Must be after check_in.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so safety is covered. The description adds a useful scope limitation (only Campiamo-affiliated sites are searched) and notes the slug output, but omits pagination, result-ordering, or cost of a date-based query.

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 sentences, zero padding, with the searchable corpus and the filtering axes front-loaded before the return-value note. Every clause carries information.

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?

There is no output schema, so the description correctly states what comes back (the slug for downstream tools). Combined with strong param docs this is nearly complete; only the limit/pagination behavior is left unexplained.

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?

With 90% schema coverage the baseline is 3, and the description earns an extra point by explaining what free-text query matches (name, town, county, country, description) and that supplying dates triggers live availability and total stay price computed for the party.

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 precise verb (Find) and resource (campsites, glamping sites, holiday parks) and bounds the corpus to Campiamo's directory plus hosted sites. The scope statement alone lets an agent tell it apart from narrower siblings like get_campsite.

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

Usage Guidelines3/5

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

It implies the use case (discovery via free text, country, amenities, and optionally dates for availability/price) but never names an alternative or a when-not condition, which matters because check_availability and get_quote overlap with the date-based mode described here.

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

start_bookingStart a bookingAInspect

Start a booking and get a secure checkout link for the guest. Nothing is reserved until the guest pays on that link (valid 24 hours). Only works at campsites that take payment online (assistant_can_book is true); elsewhere send the guest to the booking_url to book themselves. Requires the guest's name and email, which the campsite uses for the confirmation. Confirm every detail with the guest first. Rate limited.

NameRequiredDescriptionDefault
dogsNoNumber of dogs.
guestYes
notesNoA message for the campsite (arrival time, requests).
adultsYesNumber of adults.
extrasNoOptional extras from get_campsite (electric hook-up, firewood, late checkout...).
answersNoAnswers to the campsite's booking_questions from get_campsite, keyed by question id. Required questions must be answered.
infantsNoNumber of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.
campsiteYesThe campsite slug, as returned by search_campsites.
check_inYesArrival date, YYYY-MM-DD.
childrenNoNumber of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18).
check_outYesDeparture date, YYYY-MM-DD. Must be after check_in.
child_agesNoOne age per child, if known.
voucher_codeNoA gift voucher code, if the campsite sells them.
discount_codeNoA promotional code the guest has, if the campsite accepts them.
club_membershipNoRequired when get_campsite lists a members-only club under club_memberships. status "member" with the guest's membership identifier in "number" (a membership number, or where the club's identifier is "email", such as the Greener Camping Club, the email address the membership is registered to), or "join" where the club allows joining at booking (the fee is added to the total).
accommodation_idYesaccommodation_id from check_availability or get_campsite.

TDQS

A4.4/5.0
Behavior5/5

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

Although annotations already declare readOnlyHint=false and idempotentHint=false, the description adds context annotations cannot express: deferred commitment ('Nothing is reserved until the guest pays'), the 24-hour link expiry, the downstream use of the guest's email for confirmation, and an explicit rate limit. These are exactly the behavioral traits an agent must know before calling.

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?

Six short sentences, each carrying a distinct fact (capability, deferred payment, eligibility, fallback path, guest prerequisites, confirmation instruction, rate limit). The most decision-relevant constraint (nothing reserved until payment) is front-loaded; 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?

For a 16-parameter, nested, non-idempotent mutation with no output schema, the description covers eligibility, prerequisites, guest confirmation, and the return artifact (checkout link), so return values need not be explained. It omits any instruction to verify availability/price first (e.g. via check_availability or get_quote), a workflow step an agent would otherwise have to infer.

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 94%, so the schema already documents nearly every parameter in depth. The description only restates the guest name/email requirement, which the schema already explains ('Where the confirmation is sent'), and adds nothing about extras, answers, children/age_policy, or club_membership. Baseline 3 is correct when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource ('Start a booking') plus the concrete artifact produced ('a secure checkout link for the guest'), and clarifies that nothing is reserved until payment. It does not explicitly differentiate itself from the sibling get_quote, which an agent could reasonably confuse it with, so it falls short of a 5.

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 when-to-use conditions ('Only works at campsites that take payment online (assistant_can_book is true)'), an explicit alternative path for when it does not apply ('send the guest to the booking_url to book themselves'), plus a prerequisite ('Confirm every detail with the guest first'). This is close to textbook routing guidance.

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. 1 tool update
    • Changedstart_booking3 fields changed
      • changedInput schema / properties / club_membership / description
        Previous value: -"Required when get_campsite lists a members-only club under club_memberships. status \"member\" with the guest's membership number, or \"join\" where the club allows joining at booking (the fee is added to the total)."New value: +"Required when get_campsite lists a members-only club under club_memberships. status \"member\" with the guest's membership identifier in \"number\" (a membership number, or where the club's identifier is \"email\", such as the Greener Camping Club, the email address the membership is registered to), or \"join\" where the club allows joining at booking (the fee is added to the total)."
      • addedInput schema / properties / club_membership / properties / number / description
        Added value: +"Membership number, or membership email for clubs whose identifier is email."
      • changedInput schema / properties / club_membership / properties / number / maxLength
        Previous value: -40New value: +255
  2. 4 tool updates
    • Changedcheck_availability2 fields changed
      • changedInput schema / properties / children / description
        Previous value: -"Number of children (under 18)."New value: +"Number of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18)."
      • addedInput schema / properties / infants
        Added value: +{
        +  "default": 0,
        +  "description": "Number of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.",
        +  "maximum": 20,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedget_quote2 fields changed
      • changedInput schema / properties / children / description
        Previous value: -"Number of children (under 18)."New value: +"Number of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18)."
      • addedInput schema / properties / infants
        Added value: +{
        +  "default": 0,
        +  "description": "Number of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.",
        +  "maximum": 20,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedsearch_campsites2 fields changed
      • changedInput schema / properties / children / description
        Previous value: -"Number of children (under 18)."New value: +"Number of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18)."
      • addedInput schema / properties / infants
        Added value: +{
        +  "default": 0,
        +  "description": "Number of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.",
        +  "maximum": 20,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedstart_booking2 fields changed
      • changedInput schema / properties / children / description
        Previous value: -"Number of children (under 18)."New value: +"Number of children. Which ages count as a child varies by campsite: see age_policy on get_campsite (default: everyone under 18)."
      • addedInput schema / properties / infants
        Added value: +{
        +  "default": 0,
        +  "description": "Number of infants, only at campsites whose age_policy has infants_under_age. Infants are never charged.",
        +  "maximum": 20,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  3. 1 tool update
    • Changedstart_booking1 field changed
      • addedInput schema / properties / club_membership
        Added value: +{
        +  "description": "Required when get_campsite lists a members-only club under club_memberships. status \"member\" with the guest's membership number, or \"join\" where the club allows joining at booking (the fee is added to the total).",
        +  "properties": {
        +    "club": {
        +      "description": "The club key from club_memberships.",
        +      "type": "string"
        +    },
        +    "number": {
        +      "maxLength": 40,
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "member",
        +        "join"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "club",
        +    "status"
        +  ],
        +  "type": "object"
        +}
  4. 5 tool updates
    • First observedcheck_availability
    • First observedget_campsite
    • First observedget_quote
    • First observedsearch_campsites
    • First observedstart_booking

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI clients to search and browse camping availability across Alberta Parks, BC Parks, and Parks Canada, including front-country and backcountry campgrounds, through a unified set of tools.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Vacation rental software. A signed stay offer on the host's own domain. Agents discover a host domain, verify an Ed25519-signed offer (VRP), and send the guest to that domain to book and pay the host. Do not compare hosts or prices. HemmaBo + VRP, 6 runtime tools: 2 HemmaBo tools, 2 host onboarding tools, and 2 VRP verification tools. Not an OTA. Not a marketplace.
    7
    6
    280 npm
    4
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Connects to the Tentahead API to facilitate campsite searching and group trip planning for Illinois state parks. It provides live availability, weather forecasts, safety alerts, and EV charging data to streamline outdoor adventure planning.
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources