Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Open State: Camping - Parks Canada

NPM · @OPEN-STATE/CAMPING · SCANNED SEP 20

Find and prepare Parks Canada reservations while keeping the citizen in control.

Available components

0 this week 89 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to JCrossman/can-fed-camp-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 46 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability64
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3403 tokens (~162/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage72
  • 95% of tools have a non-trivial description (not blank, and not just the tool's name).Partial
  • 25% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Open State: Camping - Parks Canada MCP server?

Open State: Camping - Parks Canada runs locally as an npm package, launched with npx -y @open-state/camping. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @open-state/camping

# add to Claude Code
claude mcp add jcrossman-open-state-camping -- npx -y @open-state/camping
// .cursor/mcp.json
{
  "mcpServers": {
    "jcrossman-open-state-camping": {
      "command": "npx",
      "args": [
        "-y",
        "@open-state/camping"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "jcrossman-open-state-camping": {
      "command": "npx",
      "args": [
        "-y",
        "@open-state/camping"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add jcrossman-open-state-camping -- npx -y @open-state/camping
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jcrossman-open-state-camping": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@open-state/camping"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jcrossman-open-state-camping --command npx --arg -y --arg @open-state/camping
# ~/.hermes/config.yaml
mcp_servers:
  jcrossman-open-state-camping:
    command: "npx"
    args: ["-y", "@open-state/camping"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "jcrossman-open-state-camping": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@open-state/camping"
      ]
    }
  }
}
# add to Vellum
assistant mcp add jcrossman-open-state-camping -t stdio -c npx -a -y @open-state/camping
// mcp.json
{
  "mcpServers": {
    "jcrossman-open-state-camping": {
      "command": "npx",
      "args": [
        "-y",
        "@open-state/camping"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 11 Sept 26 0
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@open-state/camping@1.0.7

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo JCrossman/can-fed-camp-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/JCrossman/can-fed-camp-mcp/.github/workflows/release-mcpb.yml@refs/tags/camping-v1.0.7
Rekor log index 2340650575
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:c9b6ee31777db5d20bf521c4a9724b91992c305f19a5429f202372a3d566a07100baeb33d45177bcbf3c6a26a0c8db6d8a3e8f50f9803e9759d2c5b6b

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 21 exposed · ~2,904 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
connect_account ~144

Use this whenever the citizen wants to log in, sign in, connect, or access their Parks Canada account — do NOT refuse a login request, call this instead. This is the safe, approved way: it opens the citizen's OWN Google Chrome at the Parks Canada sign-in page so they log in themselves (Google, GCKey, or Facebook, however they normally do). You never see, type, or handle their password — it stays between them and Parks Canada. When they finish, their session is saved on this device, encrypted, so you can help prepare a booking they confirm and pay for themselves. You never book or pay on your own. disconnect_account removes it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

connection_status ~29

Tells you whether your Parks Canada account is connected on this device and whether the session is still valid.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

create_alert ~145

Preview a local cancellation watch and ask the citizen to approve the exact dates, party, accessibility filter, and notification destination through the MCP host. Acceptance saves the watch and, for notify_target='auto', sends a test message. It checks only while the assistant is connected and never books.

NameTypeReqDescription
accessible_onlyboolean
campground_idstringyes
end_datestringyes
equipment_typestring
nightsinteger
notify_targetstring
party_sizeintegeryes
recreation_area_idstring
start_datestringyes
weekends_onlyboolean

No output schema declared.

No examples provided.

debug_account_shape ~48

Diagnostic only. Returns the structure of your Parks Canada profile (GET /api/shopper) with personal values masked, to help debug account updates. Safe to share — no personal values are included.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

delete_alert ~36

Preview deletion of a saved watch and ask the citizen to approve that exact deletion through the MCP host.

NameTypeReqDescription
alert_idstringyes

No output schema declared.

No examples provided.

disconnect_account ~40

Previews removal of the encrypted Parks Canada session and this app's dedicated Chrome authentication state, then asks the citizen to approve that exact action through the MCP host.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_account ~35

Show the citizen's own Parks Canada profile (name, email, phone, address) from their connected session. Requires connect_account first.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_reservation_policies ~219

Look up Parks Canada's reservation rules in plain language: the non-refundable reservation fee, change/cancellation deadlines and refunds, check-in times, no-show rules, and the fact that park entry is NOT included. Call this whenever the citizen asks 'what if I cancel?', 'is there a fee?', 'when can I check in?', 'can I get a refund?', or any rules question — and proactively when you're about to prepare a booking so they confirm with the terms in front of them. Pass `family` to focus on one kind of trip (frontcountry campsite, accommodation, group, dayUse, backcountry); omit it for the full briefing across all families. This reads nothing about the citizen and books nothing.

NameTypeReqDescription
familystringNarrow to one trip type: 'frontcountry' (drive-up campsites), 'accommodation' (oTENTik/cabin/yurt), 'group', 'dayUse' (shuttles, parking, guided), or 'backcountry'. Omit for all of them.

No output schema declared.

No examples provided.

get_site_details ~92

Get plain-language detail about one campsite, including accessibility. The site's photos are shown inline in the conversation by default (so the citizen sees them without hunting for a side panel). Pass include_photos: false only if they explicitly don't want photos.

NameTypeReqDescription
campground_idstringyes
campsite_idstringyes
include_photosboolean
recreation_area_idstring

No output schema declared.

No examples provided.

list_alerts ~6

No description provided.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_equipment_types ~49

List the equipment types you can filter sites by (tent, RV, and so on). Pass a returned equipment id as equipment_type when you search.

NameTypeReqDescription
recreation_area_idstring

No output schema declared.

No examples provided.

list_my_reservations ~32

List the citizen's own current and upcoming Parks Canada reservations from their connected session. Requires connect_account first.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

prepare_booking ~667

Use this WHENEVER the citizen wants to book, reserve, or 'book it' for a campsite — do NOT refuse and do NOT just hand them a website link; call this instead. This is the safe, approved way to help them book: it does the hard, inaccessible parts of the reservation (the timed cart, the account/occupant/party wizard) through Parks Canada's own system and carries it all the way to the payment screen, then opens the citizen's own browser at their cart so they review and enter payment themselves. You never enter a card or pay — but you DO prepare the whole booking, which is the entire purpose of this tool, so don't tell the citizen to go do it themselves on the website. ALWAYS call this first WITHOUT confirm to show the citizen exactly what will be booked (site, dates, party, who the reservation is for) in a trusted confirmation prompt. Only explicit acceptance in that prompt holds the site and opens the cart to pay. Preparing holds nothing and costs nothing; a reservation (and any fee) only exists once the citizen pays. Requires connect_account first (if they aren't connected, this tool will say so — then call connect_account, don't give up). Use site_id and campground_id from search_sites.

NameTypeReqDescription
adultsintegerAdults 18-64 (default 1).
campground_idstringyesThe campground/facility resourceLocationId (from search).
categorystringMatch what you searched: 'campsite' (default), 'group', or 'accommodation' (oTENTik, cabin, yurt).
childrenintegerChildren 0-5.
end_datestringDeparture date, YYYY-MM-DD. Optional for Day Use (single day).
entry_point_idstringFor a Backcountry zone permit: the trailhead/entry point to start from (numeric id). If the area has only one, it's used automatically; if several, prepare_booking will list them and ask.
equipment_typestringThe equipment for the site (e.g. 'small tent', 'van', or an id from list_equipment_types). Use the same equipment you searched with. Defaults to a small tent. Not needed for accommodations.
itineraryarrayFor a Backcountry trip: one entry per night (a zone for a date range), in order. Requires product_id and campground_id (the facility). The trip spans the first arrival to the last departure.
product_idstringFor a Day Use booking (shuttle, parking, guided event) OR a Backcountry trip: the product id from search_day_use / search_backcountry (its productId). For Day Use, site_id is the time slot. For Backc…
seniorsintegerSeniors 65+.
site_idstringThe chosen site/slot id (from search). Omit for a Backcountry trip (use itinerary).
start_datestringArrival date, YYYY-MM-DD. Omit for Backcountry (taken from the itinerary).
youthintegerYouth 6-17.

No output schema declared.

No examples provided.

prepare_booking_url ~185

FALLBACK ONLY — do not use this for a normal booking. To book or reserve a campsite, use the prepare_booking tool instead: it completes the reservation up to the payment screen for the citizen (they only enter their card), which is the whole point of this tool. Only use prepare_booking_url if prepare_booking cannot be used — for example the citizen refuses to connect their account — because handing someone a link back to the inaccessible website is exactly the barrier this tool exists to remove. equipment_type is required: pass the matching id from list_equipment_types. This tool never books or pays.

NameTypeReqDescription
campground_idstringyes
campsite_idstringyes
end_datestringyes
equipment_typestring
party_sizeintegeryes
recreation_area_idstring
start_datestringyes

No output schema declared.

No examples provided.

resolve_dates ~209

Turn a citizen's dates into exact calendar dates, with the correct day of the week, before you search or book. ALWAYS use this when a citizen gives a date — especially a bare one like 'June 16' or 'next Friday' — and do NOT work out the year or the weekday yourself (that is error-prone for you). Give the month and day; leave year off to get the next upcoming occurrence (this runs on the citizen's machine, so it knows today's real date). Add nights for a stay to get the departure date too. Use the start_date and end_date it returns verbatim in search_sites / search_park_availability / prepare_booking.

NameTypeReqDescription
dayintegeryesArrival day of month, 1-31.
monthintegeryesArrival month, 1-12.
nightsintegerNumber of nights, to also compute the departure date.
yearintegerArrival year. Leave off for the next upcoming occurrence.

No output schema declared.

No examples provided.

search_backcountry ~127

Backcountry = multi-night wilderness trips, booked one zone per night. Call with NO query to LIST the backcountry areas. Call with an area/place in `query` PLUS dates and party size to see which zones have room each night (with accessibility surfaced). A trip is then composed one zone per night. start_date/end_date span the nights; pass accessible_only to keep only accessible zones.

NameTypeReqDescription
accessible_onlyboolean
end_datestring
party_sizeinteger
querystring
start_datestring

No output schema declared.

No examples provided.

search_day_use ~134

Day Use = timed passes booked by the day (not overnight sites): shuttles (Moraine Lake, Lake O'Hara), parking, ferries, guided events, fishing. Call with NO query (or just a place) to LIST the available Day Use products. Call with a product/place in `query` (e.g. 'Moraine Lake shuttle', 'parking') PLUS date(s) and party size to get the open time slots with spots remaining.

NameTypeReqDescription
end_datestring
party_sizeinteger
querystring
start_datestring

No output schema declared.

No examples provided.

search_park_availability ~204

Check every campground in a park at once ("anything open in Banff?") and return one consolidated list. start_date/end_date are an EXACT stay (open every night); for a flexible search over a wide range, also pass nights = desired stay length and openings anywhere in the range are returned. Then use search_sites on a campground that has openings. equipment_type takes a word or an id.

NameTypeReqDescription
accessible_onlyboolean
categorystringWhat to search: 'campsite' (regular sites, default), 'group' (group campsites), or 'accommodation' (roofed/equipped — oTENTik, cabin, yurt).
end_datestringyes
equipment_typestring
nightsinteger
party_sizeintegeryes
querystringyes
start_datestringyes
weekends_onlyboolean

No output schema declared.

No examples provided.

search_parks ~68

Find Parks Canada campgrounds by a plain-language place name (for example "Banff" or "Jasper"). Use this first; it returns matching campgrounds and their ids, which the other tools need. Canada only.

NameTypeReqDescription
countrystring
querystringyes

No output schema declared.

No examples provided.

search_sites ~277

Find open campsites in a campground for a stay, accessibility first. Use after search_parks gives you a campground id. start_date and end_date are an EXACT stay — a site must be open every night between them. For a flexible search across a wide range (e.g. "anything in June"), also pass nights = how many nights you want, and openings anywhere in the range are returned. Set accessible_only for sites Parks Canada marks accessible. equipment_type takes a word like "tent" or "RV", or an equipment id from list_equipment_types. The result states each date's weekday (correctly computed) — use that and don't work out days of the week yourself, as that is error-prone.

NameTypeReqDescription
accessible_onlyboolean
campground_idstringyes
categorystringWhat to search: 'campsite' (regular sites, default), 'group' (group campsites), or 'accommodation' (roofed/equipped — oTENTik, cabin, yurt).
end_datestringyes
equipment_typestring
nightsinteger
party_sizeintegeryes
recreation_area_idstring
start_datestringyes
weekends_onlyboolean

No output schema declared.

No examples provided.

update_account ~158

Update the citizen's OWN Parks Canada profile — phone, address, name, or language. This changes their official account record, so ONLY call it after the citizen has told you the exact change AND confirmed it. Pass only the fields to change; everything else is kept. Never change anything without the citizen's explicit go-ahead; the result shows them exactly what changed.

NameTypeReqDescription
citystring
first_namestring
languagestring
last_namestring
postal_codestring
primary_phonestring
regionstring
secondary_phonestring
street_addressstring
unitstring

No output schema declared.

No examples provided.

Common questions

What is the Open State: Camping - Parks Canada MCP server?

Open State: Camping - Parks Canada is an MCP server listed in the public MCP registry as io.github.JCrossman/open-state-camping. Find and prepare Parks Canada reservations while keeping the citizen in control. This page covers its npm package (@open-state/camping).

Is the Open State: Camping - Parks Canada MCP server safe to use?

Open State: Camping - Parks Canada scores 89 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Open State: Camping - Parks Canada MCP server expose?

Open State: Camping - Parks Canada exposes 21 tools: resolve_dates, search_parks, list_equipment_types, search_sites, search_park_availability, and 16 more. Their descriptions and schemas cost roughly 2,904 tokens of context every time the server is loaded.

Is the Open State: Camping - Parks Canada MCP server still maintained?

Open State: Camping - Parks Canada is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Open State: Camping - Parks Canada MCP server under?

Open State: Camping - Parks Canada declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.