_ registry / mcp http-sse · checked 20h ago

national-parks-mcp-server

https://national-parks.caseyjhand.com

Registry code: 8fc63c04f1db4142

api record

Plan a US National Park Service trip. Coverage is US NPS sites only — national parks, monuments, historic sites, seashores — not state parks, Forest Service, or BLM land. The workflow is parkCode-first: call nps_find_parks to resolve a place/state/query into a parkCode, then key nps_get_park, nps_get_alerts, nps_find_campgrounds, nps_get_activities, and nps_find_events on that code. nps_get_alerts is time-sensitive (closures change daily). Park coordinates returned by nps_find_parks / nps_get_park feed weather servers (nws-weather, open-meteo) for a forecast.

endpoint
https://national-parks.caseyjhand.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is national-parks-mcp-server live?
Yes — it answered the hub's last check (checked 20h ago). It answered 100% of checks over the last 30 days.
Is national-parks-mcp-server free to use?
Yes — the hub reached it with no key and no payment.
What tools does national-parks-mcp-server have?
6 tools: nps_get_park, nps_get_activities, nps_find_parks, nps_get_alerts, nps_find_campgrounds, nps_find_events.
Is national-parks-mcp-server safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
1,231ms

last good check

priced tools
0

of 6 tools

_ answered our checks, 90 days 55 checks · signed record
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 6 tools
4 open 2 never probed 4 of 6 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • nps_find_parks open 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum parks to return (1–50). The full set is ~470 sites; narrow with query/stateCode rather than paging through everything."
        },
        "query": {
          "type": "string",
          "description": "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 their description — ranked across every match before start/limit apply. 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."
        },
        "start": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Zero-based offset for pagination within the matched set. Use with limit to page through results."
        },
        "activity": {
          "type": "string",
          "description": "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 applied before start/limit, so totalCount counts every matching park, not one page. Use nps_get_park to see a park's full activity list."
        },
        "stateCode": {
          "type": "string",
          "description": "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."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • nps_get_alerts open 44h ago

    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 no active alerts match the request (with category or query set, alerts outside that filter may still be active); an empty page with a non-zero totalCount means start ran past the end of the matches. Closures and road conditions change daily.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum alerts to return (1–50), most-recent first."
        },
        "query": {
          "type": "string",
          "description": "Free-text search within alert titles/descriptions (e.g. \"road\", \"wildfire\", \"trail\")."
        },
        "start": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "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."
        },
        "category": {
          "enum": [
            "Danger",
            "Caution",
            "Information",
            "Park Closure"
          ],
          "type": "string",
          "description": "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 one page. Omit to see all categories."
        },
        "parkCode": {
          "type": "string",
          "description": "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-wide."
        },
        "stateCode": {
          "type": "string",
          "description": "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."
        }
      },
      "additionalProperties": false
    }
    arguments 43 lines
  • nps_find_campgrounds open 20h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 15,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum campgrounds to return (1–50)."
        },
        "query": {
          "type": "string",
          "description": "Free-text search across campground names/descriptions (e.g. \"river\", \"group\", \"rv\")."
        },
        "start": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Zero-based pagination offset."
        },
        "parkCode": {
          "type": "string",
          "description": "Park code, or comma-separated list (e.g. \"zion\") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode."
        },
        "stateCode": {
          "type": "string",
          "description": "Two-letter state code, or comma-separated list. Returns campgrounds across all NPS sites in those states."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • nps_find_events open 20h ago

    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. Many parks list few or no events; an empty result is not an error.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "query": {
          "type": "string",
          "description": "Free-text search across event titles/descriptions (e.g. \"ranger\", \"astronomy\", \"guided\")."
        },
        "dateEnd": {
          "type": "string",
          "description": "End of the date window (YYYY-MM-DD). Use with dateStart."
        },
        "pageSize": {
          "type": "integer",
          "default": 15,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum events to return per page (1–50). Paginates by page number, not offset — use with pageNumber to walk through results."
        },
        "parkCode": {
          "type": "string",
          "description": "Park code, or comma-separated list (e.g. \"yell\") — 4-letter lowercase codes. Get codes from nps_find_parks. Provide parkCode or stateCode."
        },
        "dateStart": {
          "type": "string",
          "description": "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."
        },
        "stateCode": {
          "type": "string",
          "description": "Two-letter state code, or comma-separated list (e.g. \"WY\", \"WY,MT,ID\"). Returns events across NPS sites in those states."
        },
        "pageNumber": {
          "type": "integer",
          "default": 1,
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "1-based page number. Increment to page through results beyond the first page."
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • nps_get_park unknown 17d ago

    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. Accepts up to ten codes per call. Use the fields parameter to return only the sections you need.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "parkCode"
      ],
      "properties": {
        "fields": {
          "type": "array",
          "items": {
            "enum": [
              "activities",
              "topics",
              "fees",
              "hours",
              "contacts",
              "directions",
              "images"
            ],
            "type": "string"
          },
          "description": "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 need, say, hours and fees."
        },
        "parkCode": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "description": "One to ten park codes per call, each a 4-letter lowercase code (e.g. \"yose\", \"grca\", \"zion\"). Get codes from nps_find_parks."
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • nps_get_activities unknown 44h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 15,
          "maximum": 50,
          "minimum": 1,
          "description": "Maximum activities to return (1–50)."
        },
        "query": {
          "type": "string",
          "description": "Free-text search across activity titles/descriptions (e.g. \"sunrise\", \"hike\", \"tour\")."
        },
        "start": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Zero-based pagination offset."
        },
        "parkCode": {
          "type": "string",
          "description": "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."
        },
        "stateCode": {
          "type": "string",
          "description": "A single two-letter state code (e.g. \"ME\"). Returns curated activities across NPS sites in that state."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 8fc63c04f1db4142.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/8fc63c04f1db4142/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/8fc63c04f1db4142/badge.svg)](https://brick.blue/agent/8fc63c04f1db4142?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on caseyjhand.com 108 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

100 more sit on this domain. All of them.