Overview
What it does
Access comprehensive information about all 423 US National Parks through the official National Park Service API. Get real-time data on park details, visitor centers, campgrounds, events, and alerts.Key Features:
- Search and discover parks by state, activities, or keywords
- Real-time park information including hours, fees, and contacts
- Current alerts for closures, hazards, and safety information
- Visitor center details with operating hours and amenities
- Campground information with reservation details
- Upcoming events and ranger-led programs
Use Cases
Perfect for building AI-powered travel assistants and outdoor recreation planning tools.Examples:
- Trip planning and itinerary creation across multiple parks
- Real-time alerts and closure monitoring
- Educational research about park history and features
- Accessibility and facility information for visitors
- Event discovery and ranger program scheduling
- Campground availability and amenity comparison
Quick Start
1
Get Your API Key
Request a free NPS API key at nps.gov/subjects/developer/get-started.htmFree Tier Includes:
- 1,000 API calls per hour
- Access to all 423 national parks
- Real-time alerts and park information
- Historical and current event data
- No credit card required
2
Add to NimbleBrain Studio
In NimbleBrain Studio:
- Navigate to MCP Servers in the sidebar
- Click Add Server
- Search for “National Parks” in the server registry
- Click Configure
- Paste your API key in the NPS_API_KEY field
- Click Save & Enable
The server will automatically connect and become available in your AI assistant within seconds.
3
Test the Connection
In your Studio chat, try this prompt:You should see detailed park information including description, location, entrance fees, operating hours, contact information, and available activities.
Available Tools
findParks
findParks
Search for national parks based on state, name, activities, or other criteria. Perfect for discovering parks that match specific interests or locations.Parameters:
Returns:
JSON object containing:Example Response:
| Parameter | Type | Required | Description |
|---|---|---|---|
| stateCode | string | No | Filter parks by state code (e.g., “CA” for California). Multiple states can be comma-separated (e.g., “CA,OR,WA”) |
| q | string | No | Search term to filter parks by name or description |
| limit | number | No | Maximum number of parks to return (default: 10, max: 50) |
| start | number | No | Start position for results (useful for pagination) |
| activities | string | No | Filter by available activities (e.g., “hiking,camping”) |
total- Total number of matching parkslimit- Number of results returnedstart- Starting position for paginationparks- Array of park objects with details
getParkDetails
getParkDetails
Get comprehensive information about a specific national park including full descriptions, operating hours, entrance fees, contact information, and available activities.Parameters:
Returns:
Detailed park information including:Example Response:
| Parameter | Type | Required | Description |
|---|---|---|---|
| parkCode | string | Yes | The park code of the national park (e.g., “yose” for Yosemite, “grca” for Grand Canyon) |
- Full name and description
- Location (state, latitude/longitude)
- Operating hours and seasons
- Entrance fees and passes
- Contact information (phone, email)
- Available activities and amenities
- Directions and accessibility info
- Images and multimedia
getAlerts
getAlerts
Get current alerts for national parks including closures, hazards, warnings, and important visitor information. Essential for trip planning to avoid unexpected closures.Parameters:
Returns:
JSON object containing:Example Response:
| Parameter | Type | Required | Description |
|---|---|---|---|
| parkCode | string | No | Filter alerts by park code (e.g., “yose” for Yosemite). Multiple parks can be comma-separated (e.g., “yose,grca”) |
| limit | number | No | Maximum number of alerts to return (default: 10, max: 50) |
| start | number | No | Start position for results (useful for pagination) |
| q | string | No | Search term to filter alerts by title or description |
total- Total number of alertsalerts- Array of alert objects with:title- Alert headlinedescription- Detailed alert informationcategory- Type of alert (Danger, Caution, Information, Park Closure)parkCode- Associated parklastIndexedDate- When alert was last updated
getVisitorCenters
getVisitorCenters
Get information about visitor centers including locations, operating hours, contact details, and available amenities. Visitor centers provide orientation, educational exhibits, and ranger assistance.Parameters:
Returns:
JSON object containing visitor center details:Example Response:
| Parameter | Type | Required | Description |
|---|---|---|---|
| parkCode | string | No | Filter visitor centers by park code (e.g., “yose” for Yosemite). Multiple parks can be comma-separated (e.g., “yose,grca”) |
| limit | number | No | Maximum number of visitor centers to return (default: 10, max: 50) |
| start | number | No | Start position for results (useful for pagination) |
| q | string | No | Search term to filter visitor centers by name or description |
- Name and description
- Physical address and directions
- Operating hours by season
- Contact information
- Available amenities and services
- Accessibility information
getCampgrounds
getCampgrounds
Get information about available campgrounds including amenities, fees, reservation requirements, and operating seasons. Essential for planning overnight stays in national parks.Parameters:
Returns:
JSON object containing campground information:Example Response:
| Parameter | Type | Required | Description |
|---|---|---|---|
| parkCode | string | No | Filter campgrounds by park code (e.g., “yose” for Yosemite). Multiple parks can be comma-separated (e.g., “yose,grca”) |
| limit | number | No | Maximum number of campgrounds to return (default: 10, max: 50) |
| start | number | No | Start position for results (useful for pagination) |
| q | string | No | Search term to filter campgrounds by name or description |
- Name and description
- Number of campsites
- Amenities (water, electricity, dump station, etc.)
- Fees and reservation requirements
- Operating seasons
- RV size limits
- Accessibility features
getEvents
getEvents
Find upcoming events at parks including ranger-led programs, educational talks, guided hikes, and special ceremonies. Great for enriching your park visit with expert-led experiences.Parameters:
Returns:
JSON object containing event information:Example Response:
| Parameter | Type | Required | Description |
|---|---|---|---|
| parkCode | string | No | Filter events by park code (e.g., “yose” for Yosemite). Multiple parks can be comma-separated (e.g., “yose,grca”) |
| limit | number | No | Maximum number of events to return (default: 10, max: 50) |
| start | number | No | Start position for results (useful for pagination) |
| dateStart | string | No | Start date for filtering events (format: YYYY-MM-DD) |
| dateEnd | string | No | End date for filtering events (format: YYYY-MM-DD) |
| q | string | No | Search term to filter events by title or description |
- Event title and description
- Date and time information
- Location within the park
- Duration and meeting point
- Registration requirements
- Cost (most are free)
- Appropriate age groups
Authentication
API Key Required: This server requires a National Park Service API key to function.
Getting Your API Key
- Visit nps.gov/subjects/developer/get-started.htm
- Fill out the API key request form with your name and email
- Agree to the terms of service
- Receive your API key via email (usually within 5-10 minutes)
- Add it to your Studio server configuration
Rate Limits
| Plan | Requests/Hour | Monthly Limit | Price |
|---|---|---|---|
| Free | 1,000 | Unlimited | $0 |
Managing Your API Key in Studio
Your API key is securely stored in NimbleBrain Studio. To update it:- Go to Settings → MCP Servers
- Find “National Parks” in your server list
- Click Edit Configuration
- Update your API key in the NPS_API_KEY field
- Click Save
Example Workflows
- Trip Planning
- Park Discovery
- Current Conditions
- Educational Research
- Visitor Planning
- Campground Comparison
- Event Discovery
Scenario: Plan a family vacation to national parksPrompt:What happens:
- Searches for parks in California
- Retrieves park details for each result
- Provides descriptions, activities, and operating hours
- Includes seasonal information and best visit times
All examples work in NimbleBrain Studio’s natural language interface - no code or configuration required!
Troubleshooting
Rate Limit Exceeded
Rate Limit Exceeded
Error Message:Cause: You’ve exceeded 1,000 requests per hourSolutions:
- Wait until the next hour for your limit to reset (hourly rate limits)
- Space out your requests over time in Studio conversations
- Batch related requests in single prompts: “Tell me about Yosemite and check for alerts”
- Reduce the number of parks you’re querying simultaneously
- Go to Studio Settings → MCP Servers
- Click on National Parks
- View API usage metrics
Invalid API Key
Invalid API Key
Error Message:Cause: API key is missing, incorrect, expired, or revokedSolutions:
- Verify your API key in Studio server settings (no extra spaces)
- Ensure you copied the entire API key from the email
- Request a new API key from nps.gov/subjects/developer/get-started.htm
- Check your email for any revocation notices
- Settings → MCP Servers → National Parks
- Click Edit Configuration
- Paste new API key in NPS_API_KEY field
- Click Save
- Test with: “Tell me about Yellowstone”
- Extra spaces before/after the API key when pasting
- Copying only part of the API key from the email
- Using an API key from a different NPS account
Studio validates your API key automatically when you save. You’ll see a success message if it’s correct.
Park Not Found
Park Not Found
Error Message:Cause: Invalid or non-existent park code providedSolutions:
- Use
findParkstool to search for the correct park code by name - Verify the park code format (usually 4 lowercase letters, e.g., “yose”, “grca”)
- Check if the location is actually a National Park (not a state park or other designation)
- Try searching by full park name instead of abbreviation
- Refer to the park code appendix at the bottom of this page
- Yosemite:
yose(not YOSE or yosemite) - Grand Canyon:
grca(not grand-canyon) - Yellowstone:
yell(not yellow) - Great Smoky Mountains:
grsm(not smoky-mountains)
findParks with a search term: “Find parks matching Yosemite”Invalid State Code
Invalid State Code
Error Message:Cause: Invalid US state code provided in search filtersSolutions:
- Use standard two-letter US state codes (e.g., “CA”, “NY”, “TX”)
- Ensure state codes are uppercase (though the server converts them)
- Verify comma-separated format for multiple states: “CA,OR,WA” (no spaces)
- Check for typos in state abbreviations
- California:
CA - New York:
NY - Texas:
TX - Multiple states:
CA,OR,WAorUT,AZ,CO
Server Not Responding
Server Not Responding
Error Message:orCause: Network connectivity issue or server temporarily unavailableSolutions:
- Check your internet connection
- Verify the server is enabled in Studio (Settings → MCP Servers)
- Try disabling and re-enabling the server in Studio
- Go to Settings → MCP Servers
- Find “National Parks” in the list
- Toggle it Off, wait 5 seconds
- Toggle it On again
Studio manages all server infrastructure automatically - there’s no local setup or Docker containers to troubleshoot. If issues persist, check your API key validity at https://www.nps.gov/subjects/developer/get-started.htm
Empty or Missing Data
Empty or Missing Data
Error Message:or fields return null/empty arraysCause: Data not available for the requested resourcePossible Reasons:
- Park doesn’t have any current alerts (this is good!)
- No upcoming events scheduled in the specified date range
- Visitor centers or campgrounds closed for the season
- Park code is valid but specific resource type not available
- Search query too restrictive (no matches found)
- Verify the park code is correct using
getParkDetails - Expand date range for event searches
- Check if facilities are seasonal (many close in winter)
- Remove or adjust search filters (
qparameter) - Try a different, more established park as a test
- Use broader search criteria or remove activity filters
Slow Response Times
Slow Response Times
Symptoms:
- Requests taking longer than 5-10 seconds
- Timeouts when fetching data
- Intermittent slow responses
- Check your internet connection speed and stability
- Verify NPS API status (check status.nps.gov for outages)
- Reduce number of simultaneous requests
- Use smaller
limitvalues for initial queries (e.g., limit=5 instead of 50) - Try again in a few moments (may be temporary API congestion)
- Implement local caching for frequently accessed data
- Single park search: 1-2 seconds
- Park details: 1-2 seconds
- Alerts: <1 second
- Visitor centers: 1-2 seconds
- Campgrounds: 1-2 seconds
- Events: 1-2 seconds
- Multiple park queries: 3-5 seconds
Links & Resources
GitHub Repository
View source code, report issues, and contribute to the project
NPS API Documentation
Official National Park Service API reference and data coverage
Docker Image
Pull the latest container image from GitHub Container Registry
Report Issues
Found a bug or have a feature request? Submit an issue on GitHub
Related MCP Servers
Weather API
Check weather forecasts for your park visits
Google Maps
Get directions and calculate travel times between parks
Calendly
Schedule and coordinate group trips to parks
Appendix: Popular National Parks and Park Codes
| Park Name | Park Code | State(s) |
|---|---|---|
| Yosemite | yose | CA |
| Grand Canyon | grca | AZ |
| Yellowstone | yell | WY, MT, ID |
| Zion | zion | UT |
| Great Smoky Mountains | grsm | TN, NC |
| Acadia | acad | ME |
| Olympic | olym | WA |
| Rocky Mountain | romo | CO |
| Joshua Tree | jotr | CA |
| Sequoia & Kings Canyon | seki | CA |
| Glacier | glac | MT |
| Grand Teton | grte | WY |
| Bryce Canyon | brca | UT |
| Arches | arch | UT |
| Mount Rainier | mora | WA |
| Shenandoah | shen | VA |
| Crater Lake | crla | OR |
| Denali | dena | AK |
| Everglades | ever | FL |
| Death Valley | deva | CA, NV |
findParks tool with no filters.
Need help? Join the NimbleBrain Discord or email [email protected]