CampWatch

Australian campground search, availability and phone-linked alerts using existing credits.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
57%
Naming quality
94%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,166Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.69% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "campwatch": {
      "url": "https://www.campwatch.com.au/mcp"
    }
  }
}

Remote endpoints

https://www.campwatch.com.au/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢find_campgrounds(q, provider, state, limit, cursor)

Search CampWatch's supported Australian campground catalogue. Use returned provider and slug for availability and alerts.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200
    },
    "provider": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+$",
      "maxLength": 128
    },
    "state": {
      "type": "string",
      "enum": [
        "ACT",
        "NSW",
        "NT",
        "QLD",
        "SA",
        "TAS",
        "VIC",
        "WA"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20
    },
    "cursor": {
      "type": "string",
      "maxLength": 1024
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_providers

List supported booking systems and regions.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_availability(provider, slug, checkIn, checkOut, adults, ...)

Check current availability for a campground, dates and party size. A result is a snapshot; errors do not prove no availability.

Input Schema

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+$",
      "maxLength": 128
    },
    "slug": {
      "$ref": "#/properties/provider"
    },
    "checkIn": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "checkOut": {
      "$ref": "#/properties/checkIn"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10,
      "default": 0
    },
    "infants": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10,
      "default": 0
    }
  },
  "required": [
    "provider",
    "slug",
    "checkIn",
    "checkOut",
    "adults"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_alerts(status, limit, cursor)

List the connected account's alerts. Default is active; pass ACTIVE,STOPPED,EXPIRED to see all.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "maxLength": 80
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "cursor": {
      "type": "string",
      "maxLength": 1024
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪enable_sms_alerts

Enable SMS delivery for all alerts on the connected account, only after the user approves SMS notification intent. New phone-linked accounts have no delivery channel until configured. This preserves push settings and never starts a purchase.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_alert(target, dates, partySize, siteTypeFilter, excludedCampgroundSlugs, ...)

Create an SMS/push alert after the user approves target, dates and party size. Use a new idempotencyKey for each intended alert; reuse it on retries. Available-now results can consume an alert credit under CampWatch's existing rules.

Input Schema

{
  "type": "object",
  "properties": {
    "target": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "campground"
            },
            "provider": {
              "type": "string",
              "minLength": 1,
              "default": "nsw"
            },
            "slug": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "kind",
            "slug"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "park"
            },
            "provider": {
              "type": "string",
              "minLength": 1,
              "default": "nsw"
            },
            "parkSlug": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "kind",
            "parkSlug"
          ],
          "additionalProperties": false
        }
      ]
    },
    "dates": {
      "type": "object",
      "properties": {
        "checkIn": {
          "type": "string",
          "minLength": 1,
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "checkOut": {
          "type": "string",
          "minLength": 1,
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        }
      },
      "required": [
        "checkIn",
        "checkOut"
      ],
      "additionalProperties": false
    },
    "partySize": {
      "type": "object",
      "properties": {
        "adults": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10
        },
        "children": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10,
          "default": 0
        },
        "infants": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10,
          "default": 0
        }
      },
      "required": [
        "adults"
      ],
      "additionalProperties": false
    },
    "siteTypeFilter": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      },
      "maxItems": 20,
      "default": []
    },
    "excludedCampgroundSlugs": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128
      },
      "maxItems": 100,
      "default": []
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    },
    "watchOptions": {
      "type": "object",
      "properties": {
        "flexibleStartDays": {
          "type": "integer",
          "minimum": 0,
          "maximum": 30
        },
        "startDayFilter": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "weekend",
                "weekday"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "campsiteFilterMode": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "ANY_NIGHT",
                "MUST_INCLUDE",
                "RESTRICT_TO"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "campsiteFilter": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "maxItems": 40
        }
      },
      "additionalProperties": false,
      "default": {}
    }
  },
  "required": [
    "target",
    "dates",
    "partySize",
    "idempotencyKey"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪stop_alert(id)

Stop one alert owned by the connected account. It can be reactivated.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+$",
      "maxLength": 128
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪reactivate_alert(id)

Reactivate a stopped alert owned by the connected account.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+$",
      "maxLength": 128
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢credit_balance

Read the connected account's free and purchased alert credits.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢credit_history

Read the connected account's credit ledger.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {},
    "demo": {
      "type": "boolean"
    },
    "notice": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools