Skip to main content
Glama

Server Details

Plan US National Park Service trips — parks, alerts, campgrounds, things to do, events.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/national-parks-mcp-server
GitHub Stars
1

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct area: parks, campgrounds, events, activities, alerts, and park details. There is no overlap in purpose, making it easy for an agent to select the correct tool.

Naming Consistency5/5

All tools follow the consistent pattern 'nps_[verb]_[noun]' using snake_case. Verbs are either 'find' for search operations or 'get' for retrieval by park code, with no deviations.

Tool Count5/5

With 6 tools, the server covers essential trip-planning functionality without being overwhelming. Each tool is well-justified and the count feels appropriate for the domain.

Completeness4/5

The tool set covers parks, campgrounds, events, activities, alerts, and park details. Missing dedicated tools for trails or lodging, but campgrounds partially address lodging and park details provide weather. Overall solid coverage.

Available Tools

6 tools
nps_find_campgroundsnational-parks-mcp-server: find campgrounds
Read-only
Inspect

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 — answering "where can I camp at Zion, and can I get an RV hookup?" Get park codes from nps_find_parks. Some parks list lodging or backcountry permits instead of NPS-managed campgrounds; an empty result is not an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum campgrounds to return (1–50).
queryNoFree-text search across campground names/descriptions (e.g. "river", "group", "rv").
startNoZero-based pagination offset.
parkCodeNoPark code, or comma-separated list (e.g. "zion") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode.
stateCodeNoTwo-letter state code, or comma-separated list. Returns campgrounds across all NPS sites in those states.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoLimit applied (populated when results were truncated).
shownNoCampgrounds returned in this response (populated when capped by limit).
noticeNoGuidance when no campgrounds matched.
totalCountYesTotal campgrounds matching the filter before the limit was applied.
campgroundsYesCampgrounds at the requested park(s)/state(s).
appliedFiltersYesEcho of parkCode/stateCode/query as applied.
nps_find_eventsnational-parks-mcp-server: find events
Read-only
Inspect

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. Paginates by page number, not offset. The events feed is sparser and less consistent than alerts or campgrounds; many parks list few or no events, and an empty result is not an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFree-text search across event titles/descriptions (e.g. "ranger", "astronomy", "guided").
dateEndNoEnd of the date window (YYYY-MM-DD). Use with dateStart.
pageSizeNoMaximum events to return per page (1–50). Paginates by page number, not offset — use with pageNumber to walk through results.
parkCodeNoPark code, or comma-separated list (e.g. "yell") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode.
dateStartNoStart of the date window (YYYY-MM-DD). Combine with dateEnd to bound the search (e.g. a weekend). Omit for upcoming events from today.
stateCodeNoTwo-letter state code, or comma-separated list (e.g. "WY", "WY,MT,ID"). Returns events across NPS sites in those states.
pageNumberNo1-based page number. Increment to page through results beyond the first page.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoPage size applied (populated when results were truncated).
shownNoEvents returned on this page (populated when the page was capped by pageSize).
eventsYesEvents matching the park/state and date window.
noticeNoGuidance when no events matched, or a warning when the upstream envelope reported errors.
totalCountYesTotal events matching the filter before the page limit.
appliedFiltersYesEcho of parkCode/stateCode/date window/query as applied.
nps_find_parksnational-parks-mcp-server: find parks
Read-only
Inspect

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 a compact trip-planning summary (designation, states, description, coordinates, headline activities, entrance fee, NPS page). Coverage is US NPS sites only — national parks, monuments, historic sites, seashores — not state parks and not Forest Service or BLM land.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum parks to return (1–50). The full set is ~470 sites; narrow with query/stateCode rather than paging through everything.
queryNoFree-text search across park names and descriptions (e.g. "yosemite", "civil war", "redwood"). Results are re-ranked locally so an exact parkCode or name match leads: NPS returns matches in alphabetical-by-code order with no relevance ranking, so without this the obvious park can sit behind sites that only mention the term in their description. Omit to browse by state. At least one of query or stateCode is recommended; with neither, returns the first page of all ~470 NPS sites.
startNoZero-based offset for pagination within the matched set. Use with limit to page through results.
activityNoFilter to parks offering an activity, matched against each park's activities list (e.g. "hiking", "camping", "stargazing"). Case-insensitive substring match applied locally (the API has no activity param) across every site matching query/stateCode, then paginated with start/limit — so totalCount is the true count of matching parks, not a per-page tally. Use nps_get_park to see a park's full activity list.
stateCodeNoTwo-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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit applied to this response (populated when results were truncated).
parksYesMatching parks, each carrying the parkCode needed to chain into the detail tools.
shownNoNumber of parks returned in this response (populated when the result set was capped by limit).
noticeNoGuidance when no parks matched — suggests broadening the query, checking the state code, or dropping the activity filter.
totalCountYesTotal parks matching the query/state filter before the limit was applied.
appliedFiltersYesEcho of the filters as the server applied them (query / stateCode / activity), so the agent can see what was searched.
nps_get_activitiesnational-parks-mcp-server: get activities
Read-only
Inspect

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 tags in nps_get_park). Accepts a single 4-letter park code or a single two-letter state code, and at least one is required. Not every park has a curated list; an empty result is not an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum activities to return (1–50).
queryNoFree-text search across activity titles/descriptions (e.g. "sunrise", "hike", "tour").
startNoZero-based pagination offset.
parkCodeNoA 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.
stateCodeNoA single two-letter state code (e.g. "ME"). Returns curated activities across NPS sites in that state.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoLimit applied (populated when results were truncated).
shownNoActivities returned in this response (populated when capped by limit).
noticeNoGuidance when no curated activities matched.
activitiesYesCurated activities and points of interest for the requested park/state.
totalCountYesTotal activities matching the filter before the limit was applied.
appliedFiltersYesEcho of parkCode/stateCode/query as applied.
nps_get_alertsnational-parks-mcp-server: get alerts
Read-only
Inspect

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 statewide "what's closed" sweep. Returns most-recent-first; an empty result with totalCount 0 means the park reports nothing closed or hazardous — good news, not an error. An empty page with a non-zero totalCount only means start ran past the end, so read the notice rather than the empty list. Closures and road conditions change daily — re-check before departure.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum alerts to return (1–50), most-recent first.
queryNoFree-text search within alert titles/descriptions (e.g. "road", "wildfire", "trail").
startNoZero-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.
categoryNoFilter to one alert category. "Danger" and "Park Closure" are the high-priority ones for trip safety. Applied locally (the API has no category param) across every alert matching parkCode/stateCode/query, then paginated with start/limit — so totalCount is the true count of matching alerts, not a per-page tally. Omit to see all categories (the default — closures and hazards should not be missed).
parkCodeNoPark 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-wide.
stateCodeNoTwo-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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoLimit applied (populated when results were truncated).
shownNoAlerts returned in this response (populated when capped by limit).
alertsYesCurrent alerts, sorted most-recent first. An empty array with totalCount 0 means no active alerts — good news, not an error; with a non-zero totalCount it means start paged past the end of the matches. The notice says which.
noticeNoMessage when the page is empty — states which case it is: good news (totalCount 0, the park reports nothing closed/hazardous right now) or a paging artifact (start ran past the end of a non-empty matched set).
totalCountYesTotal alerts matching the filter before the limit was applied.
appliedFiltersYesEcho of parkCode/stateCode/category/query as applied.
categoryBreakdownYesCount of returned alerts per category (e.g. "Park Closure: 3, Caution: 1, Information: 2") — gauge severity without scanning every alert.
nps_get_parknational-parks-mcp-server: get park detail
Read-only
Inspect

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 from nps_find_parks. Up to ten codes are fetched in a single request. Use the fields parameter to trim the payload when you only need certain sections.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional 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 need, say, hours and fees.
parkCodeYesOne to ten park codes (each a 4-letter lowercase code like "yose", "grca", "zion"). Get codes from nps_find_parks. Multiple codes are fetched in a single request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
parksYesRequested parks with trip-planning detail.
noticeNoGuidance when one or more codes did not resolve, or when none did.
missingCodesNoRequested park codes the API returned no record for — likely invalid/misspelled codes. Populated only when some codes did not resolve.
returnedCountYesNumber of parks the API returned.
requestedCountYesNumber of park codes requested.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.