Cosmic's Camp Map
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Can I camp here, and will I have signal? Land status, signal, weather and fires in Canada and the US
| Author | io.github.brendoncampbell |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2708 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Cosmic's Camp Map": {
"url": "https://camp.cosmicotter.ca/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
check_spotread-onlyLand status at a point (Crown/public land, park, private, reserve…) with the camping rule that applies, special areas (parks, pass zones, tree farm licences), estimated mobile signal per carrier, active logging, the nearest road and its surface, and where to check fire bans. Hunting details are included only with a Camp Map Pass.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
find_spotsread-onlyRanked camping spots near a point that are remote and still have signal for the carrier. Free: the top 3, with how many more the Camp Map Pass adds. With the pass: up to `limit`. access=rental keeps spots on pavement or under 500 m of unpaved road (most rental agreements exclude unpaved roads).
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.limit— integeraccess— string — any; rental (on or near pavement); drive (paved or gravel); rough (rough or unpaved roads); hike (hike-in or boat access).carrier— string — Mobile carrier to rank signal for. Canada: telus (also Bell, Koodo, Virgin), rogers (also Fido), freedom, sasktel. US: verizon, att, tmobile, gci, inland. Defaults to telus in Canada and verizon in the US.radius_km— number — Search radius in kilometres (default 50, at most 200).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
plan_tripread-onlyOne call that answers "can I camp at this spot this weekend?": land status and the camping rule, signal per carrier, the 3-day forecast with workable days, wildfires within 60 km, road reports within 10 km, and the best remote spots with signal nearby (top 3 free, 5 with a pass), with the important heads_up lines listed first.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.access— stringcarrier— string — Mobile carrier to rank signal for. Canada: telus (also Bell, Koodo, Virgin), rogers (also Fido), freedom, sasktel. US: verizon, att, tmobile, gci, inland. Defaults to telus in Canada and verizon in the US.radius_km— number — Search radius in kilometres (default 40, at most 200).tz_offset_min— integer — Minutes from UTC for day boundaries. Default -420.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
work_weekread-onlyCamp Map Pass only (CA$55 a year or CA$5 a month). Ranks nearby spots by signal for the carrier, open sky for Starlink and flat ground, then adds each spot's 3-day forecast and marks workable days (under 2 mm rain, wind under 35 km/h).
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.carrier— string — Mobile carrier to rank signal for. Canada: telus (also Bell, Koodo, Virgin), rogers (also Fido), freedom, sasktel. US: verizon, att, tmobile, gci, inland. Defaults to telus in Canada and verizon in the US.radius_km— number — Search radius in kilometres (default 60, at most 200).tz_offset_min— integer — Minutes from UTC for day boundaries, e.g. -420 for Pacific daylight time. Default -420.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
hunting_spotsread-onlyCamp Map Pass only (CA$55 a year or CA$5 a month). Access points near 5-10 year old cut blocks and winter ranges, with the hunting unit and trail-camera signal. Seasons and bag limits are not included; the official regulations are the source for those.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.limit— integerradius_km— number — Search radius in kilometres (default 50, at most 200).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
weatherread-onlyCurrent conditions and a 3-day outlook (min/max °C, rain mm, wind km/h) from Environment Canada in Canada and the US National Weather Service in the US, MET Norway as a fallback.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.tz_offset_min— integer — Minutes from UTC for day boundaries. Default -420.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
wildfiresread-onlyActive wildfire hotspots, perimeters and incidents within a radius, nearest first, from CWFIS (Canada) and NIFC (US).
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.radius_km— number — Search radius in kilometres (default 60, at most 200).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
road_reportsread-onlyField reports from map users within a radius in the last 120 days: road fine for a car, rough, 4x4 only, washout, gate open or locked, log hauling, turnaround room, camped here, closed, no-camping sign.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.radius_km— number — Search radius in kilometres (default 10, at most 50).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
camp_map_passread-onlyWhat the Camp Map Pass adds over the free map (offline maps, the full scouting list, work-week picks, the full hunting view, more for AI assistants), its prices (CA$55 a year or CA$5 a month), direct purchase links, and how the user gives the pass to an assistant. Also says whether the current request carries a valid pass. Covers offline use, more spots, work-week picks, hunting details and upgrading.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
start_pass_purchaseread-onlyBegin a Camp Map Pass purchase without leaving the conversation: returns checkout links (CA$55 a year or CA$5 a month, Stripe, no account) tagged with a purchase reference. The user pays in their browser; the reference identifies that payment afterwards.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
pass_statusChecks whether the payment for a purchase reference has completed. Returns pending (with a retry interval) or paid with the pass key, which is sent as "Authorization: Bearer <key>" from then on, plus a link that activates the pass in the user's own map.
Parameters:
reference(required) — string — The reference from start_pass_purchase (ag_…).
Hints: read-only no · destructive no · idempotent yes · open-world yes
report_conditionsStores a one-tap field report at a point, the same kind the map's users leave (kinds: road-good, road-rough, road-4x4, washout, gate-open, gate-locked, spot-ok, spot-closed, no-camping, hauling, turnaround, no-turnaround, rig-ok, low-clearance; vehicle: car, awd, 4x4, van, rv, unk). Needs the user's Camp Map Pass key; at most 10 stored reports a day per key. No free text.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.kind(required) — stringvehicle— string
Hints: read-only no · destructive no · idempotent no · open-world yes
confirm_spotStores what the user found at a camping spot (outcome: camped, signal_worked, signal_failed, road_as_described, road_worse, closed, no_camping_sign), read by the next scouting-list build. Needs the user's Camp Map Pass key; shares the daily cap of 10 stored reports.
Parameters:
lat(required) — number — Latitude in decimal degrees (WGS84).lng(required) — number — Longitude in decimal degrees (WGS84), negative west of Greenwich.outcome(required) — stringname— string — The spot name as the map shows it, if known.
Hints: read-only no · destructive no · idempotent no · open-world yes
trip_feedbackStores the user's answers after a trip planned with plan_trip (its followup token): camped there or not, whether the signal worked (worked, weak, none) and whether the road was as described (as_described, worse, better). Stored beside the forecast that was given. Needs the user's Camp Map Pass key.
Parameters:
token(required) — string — The followup.token from the plan_trip answer.road— stringcamped— booleansignal— string
Hints: read-only no · destructive no · idempotent no · open-world yes
list_regionsread-onlyThe provinces, territories and states the Camp Map covers, with their bounding boxes, when their data was built and their offline packs.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.