Plan US National Park Service trips β parks, alerts, campgrounds, things to do, events.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Plan US National Park Service trips β find parks, check alerts and closures, find campgrounds, browse things to do and events via the NPS Data API. STDIO or Streamable HTTP.
Public Hosted Server: https://national-parks.caseyjhand.com/mcp
Six tools shaped around the trip-planning workflow β resolve a park, then key the detail tools on its code:
| Tool | Description |
|---|---|
nps_find_parks | Resolve a place name, US state, or free-text query to parks β the required first step. Returns each park's parkCode plus a trip-planning summary. |
nps_get_park | Full detail for up to ten parks in one batched call: description, activities, fees & passes, hours, contacts, directions, weather overview, images. |
nps_get_alerts | Current alerts for a park or state β closures, hazards, caution, information β with category and recency surfaced first. |
nps_find_campgrounds | Campgrounds at a park or state: amenities, reservable vs. first-come site counts, reservation info, accessibility, and fees. |
nps_get_activities | Curated things to do and points of interest: title, duration, location, accessibility, and fee/pet/reservation flags. |
nps_find_events | Scheduled events within a date range: dates/times, location, category, fee, and registration links. |
Coverage is US National Park Service sites only β national parks, monuments, historic sites, seashores β not state parks and not Forest Service or BLM land.
parkCode spineparkCode (e.g. yose, grca, zion) is the join key for the whole API. The workflow is two steps:
nps_find_parks resolves a name / state / query β parkCode(s) plus a summary.nps_get_park, nps_get_alerts, nps_find_campgrounds, nps_get_activities, nps_find_events key on that parkCode.nps_get_alerts, nps_find_campgrounds, and nps_find_events also accept a stateCode for statewide queries without a code (e.g. "is anything closed in Montana's parks?"). The coordinates returned by nps_find_parks / nps_get_park feed weather servers (nws-weather, open-meteo) for a forecast.
nps_find_parksResolve a place name, US state, or free-text query into NPS parks β the entry point.
"yosemite", "civil war", "redwood"); results are re-ranked locally so an exact parkCode or name match leads, since NPS returns matches in alphabetical-by-code order with no relevance rankingstateCode or a comma-separated list (e.g. "CA", "WY,MT,ID")activity filter β case-insensitive substring match applied locally (the API has no activity param) across every site matching query/stateCode, then paginatedlimit (1β50, default 10) and start offset; totalCount counts the whole matched set, so truncation guidance names the next startparkCode, designation, states, description, coordinates, headline activities, lowest entrance fee, and the NPS pagetotalCount, applied-filter echo, and broadening guidance when nothing matchednps_get_parkFull trip-planning detail for one or more parks by parkCode.
fields selector (activities, topics, fees, hours, contacts, directions, images) trims the payload to the sections you needimagesTruncated disclosing when the park has more upstream)missingCodes enrichment with a correction hint; only a fully-empty result is an errornps_get_alertsCurrent alerts for a park or a whole state, with category and recency leading.
parkCode, stateCode, or free-text query; optional category (Danger, Caution, Information, Park Closure) applied locally (the API has no category param) across every matching alert, then paginatedlimit (1β50, default 20) and start offset; truncation guidance names the next startstructuredContent and content[])categoryBreakdown enrichment counts returned alerts per category β severity-ordered β so severity is legible without scanning each onestart ran past the end β never a bare errorlastIndexedDate is the recency signal β a stale date may mean the condition has changednps_find_campgroundsCampgrounds at a park or across a state, flattened to what a camper filters on.
parkCode, stateCode, or free-text query; limit (1β50, default 15) and start paginationnps_get_activitiesCurated things to do and points of interest, backed by the NPS /thingstodo list (distinct from a park's raw activity tags).
parkCode or a single two-letter stateCode β at least one is requiredquery; limit (1β50, default 15) and start paginationnps_find_eventsScheduled events at a park within a date range β ranger programs, festivals, tours, interpretive events.
parkCode, stateCode, or free-text query; bound the window with dateStart / dateEnd (YYYY-MM-DD)pageNumber / pageSize), not offset β the /events endpoint differs from the rest of the APIerrors[] array folds into the result notice as a warning rather than failing the requestBuilt on @cyanheads/mcp-ts-core:
none, jwt, oauthin-memory, filesystem, Supabase, Cloudflare KV/R2/D1NPS-specific:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/national-parks-mcp-server)<a href="https://allmcps.com/mcp/national-parks-mcp-server"><img src="https://allmcps.com/api/badge/national-parks-mcp-server?style=directory" alt="National Parks MCP Server on AllMCPs" /></a>