cyanheads avatar

National Parks Mcp Server

cyanheads/national-parks-mcp-server

Six read-only tools wrap the NPS Data API, so you can go from a state or free-text query to a trip plan without leaving your agent. The flow starts with nps_find_parks to resolve a place to a parkCode, then nps_get_park batches up to ten codes for fees, hours, and directions. nps_get_alerts surfaces closures and hazards sorted by recency, nps_find_campgrounds reports reservable versus first-come site counts, nps_get_activities pulls curated things to do, and nps_find_events covers date-bounded programming. It runs over stdio or Streamable HTTP and needs an NPS_API_KEY. Reach for it when a planning agent needs current park conditions. Park coordinates can also feed a weather server for forecasts.

GitHub stars
3
tools
6
auth
Required
transport
STDIO, HTTP
env vars
8
last updated
Oct 28, 2026

Install

From registry metadata
$ npx add-mcp https://national-parks.caseyjhand.com/mcp --name national-parks

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http national-parks https://national-parks.caseyjhand.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 6 tools

Verified live against the running server on Nov 13, 2026.

nps_find_parksResolve a place name, US state, or free-text query to National Park Service parks — the required first step before the detail tools. Returns each park's parkCode (the key nps_get_park, nps_get_alerts, nps_find_campgrounds, nps_get_activities, and nps_find_events all use) plus...5 params

Resolve a place name, US state, or free-text query to National Park Service parks — the required first step before the detail tools. Returns each park's parkCode (the key nps_get_park, nps_get_alerts, nps_find_campgrounds, nps_get_activities, and nps_find_events all use) plus...

Parameters* required
activitystring
Filter to parks offering an activity, matched against each park's activities list (e.g. "hiking", "camping", "stargazing"). Case-insensitive substring match, combined with query/stateCode and appli...
limitinteger
Maximum parks to return (1–50). The full set is ~470 sites; narrow with query/stateCode rather than paging through everything.default: 10
querystring
Free-text search across park names and descriptions (e.g. "yosemite", "civil war", "redwood"). Exact parkCode or name matches lead, then other name matches, then parks that only mention the term in...
startinteger
Zero-based offset for pagination within the matched set. Use with limit to page through results.default: 0
stateCodestring
Two-letter US state/territory code, or comma-separated list (e.g. "CA", "WY,MT,ID"). Filters to parks located in those states. Combine with query to narrow.
nps_get_parkFull trip-planning detail for one or more parks by parkCode: description, activities and topics, entrance fees and passes, operating hours by area/season, contacts, directions, a free-text weather overview, representative images, and the NPS page for everything else. Get codes...2 params

Full trip-planning detail for one or more parks by parkCode: description, activities and topics, entrance fees and passes, operating hours by area/season, contacts, directions, a free-text weather overview, representative images, and the NPS page for everything else. Get codes...

Parameters* required
fieldsarray
Optional detail sections to include beyond the always-present core (name, designation, states, description, coordinates, weather, url). Omit for all sections. Narrow to reduce payload when you only...
parkCode*array
One to ten park codes per call, each a 4-letter lowercase code (e.g. "yose", "grca", "zion"). Get codes from nps_find_parks.
nps_get_alertsCurrent alerts for a park or a whole state — closures, hazards, caution notices, and information — with category and recency surfaced first so "is anything closed at Glacier right now?" is answered at a glance. Get park codes from nps_find_parks, or pass a stateCode for a stat...6 params

Current alerts for a park or a whole state — closures, hazards, caution notices, and information — with category and recency surfaced first so "is anything closed at Glacier right now?" is answered at a glance. Get park codes from nps_find_parks, or pass a stateCode for a stat...

Parameters* required
categorystring
Filter to one alert category. "Danger" and "Park Closure" are trip-affecting. Combined with parkCode/stateCode/query and applied before start/limit, so totalCount counts every matching alert, not o...one of Danger · Caution · Information · Park Closure
limitinteger
Maximum alerts to return (1–50), most-recent first.default: 20
parkCodestring
Park code, or comma-separated list (e.g. "glac", "yose,zion") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode; with neither, returns recent alerts service-w...
querystring
Free-text search within alert titles/descriptions (e.g. "road", "wildfire", "trail").
startinteger
Zero-based offset for pagination within the matched set. Use with limit to page through results — when totalCount exceeds what was returned, re-request with start advanced by limit.default: 0
stateCodestring
Two-letter state code, or comma-separated list (e.g. "MT", "WY,MT,ID"). Returns alerts for all NPS sites in those states — use for a statewide sweep rather than one park.
nps_find_campgroundsCampgrounds at a park or across a state: amenities (potable water, showers, RV dump station, toilets, trash collection, RV access), reservable vs. first-come-first-served site counts, reservation guidance and booking URL, accessibility, and fees. Check the linked campground pa...5 params

Campgrounds at a park or across a state: amenities (potable water, showers, RV dump station, toilets, trash collection, RV access), reservable vs. first-come-first-served site counts, reservation guidance and booking URL, accessibility, and fees. Check the linked campground pa...

Parameters* required
limitinteger
Maximum campgrounds to return (1–50).default: 15
parkCodestring
Park code, or comma-separated list (e.g. "zion") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode.
querystring
Free-text search across campground names/descriptions (e.g. "river", "group", "rv").
startinteger
Zero-based pagination offset.default: 0
stateCodestring
Two-letter state code, or comma-separated list. Returns campgrounds across all NPS sites in those states.
nps_get_activitiesCurated things to do and points of interest at a park — title, description, time commitment, location, accessibility, and fee/pet/reservation flags — answering "what should I do at Acadia?" Covers the NPS editorially-curated activity list (distinct from a park's raw activity t...5 params

Curated things to do and points of interest at a park — title, description, time commitment, location, accessibility, and fee/pet/reservation flags — answering "what should I do at Acadia?" Covers the NPS editorially-curated activity list (distinct from a park's raw activity t...

Parameters* required
limitinteger
Maximum activities to return (1–50).default: 15
parkCodestring
A single 4-letter lowercase park code (e.g. "acad"). Get it from nps_find_parks. Accepts one park code, not a list. Provide parkCode or stateCode.
querystring
Free-text search across activity titles/descriptions (e.g. "sunrise", "hike", "tour").
startinteger
Zero-based pagination offset.default: 0
stateCodestring
A single two-letter state code (e.g. "ME"). Returns curated activities across NPS sites in that state.
nps_find_eventsScheduled events at a park within a date range — ranger programs, festivals, tours, interpretive events — answering "what's happening at Yellowstone this weekend?" with title, dates and times, location, category, fee, and registration links. Get park codes from nps_find_parks....7 params

Scheduled events at a park within a date range — ranger programs, festivals, tours, interpretive events — answering "what's happening at Yellowstone this weekend?" with title, dates and times, location, category, fee, and registration links. Get park codes from nps_find_parks....

Parameters* required
dateEndstring
End of the date window (YYYY-MM-DD). Use with dateStart.
dateStartstring
Start of the date window (YYYY-MM-DD). Combine with dateEnd to bound the search (e.g. a weekend). Omit for upcoming events from today.
pageNumberinteger
1-based page number. Increment to page through results beyond the first page.default: 1
pageSizeinteger
Maximum events to return per page (1–50). Paginates by page number, not offset — use with pageNumber to walk through results.default: 15
parkCodestring
Park code, or comma-separated list (e.g. "yell") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode.
querystring
Free-text search across event titles/descriptions (e.g. "ranger", "astronomy", "guided").
stateCodestring
Two-letter state code, or comma-separated list (e.g. "WY", "WY,MT,ID"). Returns events across NPS sites in those states.

Sponsors

Configuration

NPS_API_KEY*

NPS Data API key, sent as the X-Api-Key header. Required — the server fails to start without it. Free instant signup at https://www.nps.gov/subjects/developer/get-started.htm.

NPS_BASE_URLdefault: https://developer.nps.gov/api/v1

NPS Data API base URL override (testing / proxy). Defaults to https://developer.nps.gov/api/v1.

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_TRANSPORT_TYPEdefault: http

Selects the HTTP transport.

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Readme

@cyanheads/national-parks-mcp-server

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.

6 Tools • 1 Skill

Details

Repository
github.com/cyanheads/national-parks-mcp-server
Package
@cyanheads/national-parks-mcp-server
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Resources
1
Tools verified
Nov 13, 2026

More from cyanheads