alltrails-mcp-server

srinath1510/alltrails-mcp-server

3.3

If you are the rightful owner of alltrails-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The AllTrails MCP Server provides access to AllTrails data, allowing users to search for hiking trails and get detailed trail information directly through Claude Desktop.

Tools
  1. search_trails

    Search for trails in a specific national park using AllTrails data.

  2. get_trail_details

    Get detailed information about a specific trail by its AllTrails slug.

AllTrails MCP Server

A Model Context Protocol (MCP) server that provides access to AllTrails data, allowing you to search for hiking trails and get detailed trail information directly through Claude Desktop.

Features

  • 🄾 Search trails by national park
  • šŸ“ Get detailed trail information including difficulty, length, elevation gain, and descriptions
  • šŸ”ļø Comprehensive trail data from AllTrails including ratings, route types, and summaries
  • šŸ¤– Seamless Client integration via MCP protocol

Technical Specifications

Protocol Support

  • Protocol Version: MCP 1.9.4
  • Communication: Standard input/output (stdio)
  • Capabilities: Tools
  • Server Name: alltrails-mcp
  • Server Version: 0.1.0

Tools Available

search_trails

Search for trails in a specific national park using AllTrails data.

Parameters:

  • park (required): Park slug in format us/state/park-name (e.g., us/tennessee/great-smoky-mountains-national-park)

get_trail_details

Get detailed information about a specific trail by its AllTrails slug.

Parameters:

  • slug (required): Trail slug from AllTrails URL (the part after /trail/)

Installation Options

Option 1: With Virtual Environment (Recommended)

This approach isolates dependencies and prevents conflicts with other Python projects.

1. Clone the Repository

git clone <your-repo-url>
cd alltrails_mcp

2. Create Virtual Environment

python3 -m venv alltrails_mcp_venv
source alltrails_mcp_venv/bin/activate  # On Windows: alltrails_mcp_venv\Scripts\activate

3. Install Dependencies

pip install -r requirements.txt

4. Verify Installation

Test that the server starts without errors:

python3 server.py

You should see the server start without crashing. Press Ctrl+C to stop.

Prerequisites

  • Python 3.8 or higher
  • This server can be used with any MCP-compatible client. I use Claude Desktop with Pro subscription.
  • macOS (tested) or other Unix-like system

Option 2: With System Python

If you prefer not to use a virtual environment, you can install dependencies globally.

1. Clone the Repository

git clone <your-repo-url>
cd alltrails_mcp

2. Install Dependencies Globally

pip install -r requirements.txt

3. Verify Installation

Test that the server starts without errors:

python3 server.py

You should see the server start without crashing. Press Ctrl+C to stop.

Claude Desktop Configuration

1. Locate Claude Desktop Config

Find your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

If it doesn't exist, create a json file named claude_desktop_config.json in the above directory.

2. Add MCP Server Configuration

Add the following to your claude_desktop_config.json file:

Option A: Using Virtual Environment (Recommended)
{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "/path/to/your/alltrails_mcp/alltrails_mcp_venv/bin/python3",
      "args": ["/path/to/your/alltrails_mcp/server.py"]
    }
  }
}
Option B: Using System Python
{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "python3",
      "args": ["/path/to/your/alltrails_mcp/server.py"]
    }
  }
}

Or with absolute Python path:

{
  "mcpServers": {
    "alltrails_mcp_server": {
      "command": "/usr/bin/python3",
      "args": ["/path/to/your/alltrails_mcp/server.py"]
    }
  }
}

Important: Replace /path/to/your/alltrails_mcp with the actual absolute path to your project directory.

Other MCP Clients

For other MCP-compatible clients, refer to their documentation for server configuration. The server implements the standard MCP protocol and should work with any compliant client.

Server Command: python3 server.py
Communication: Standard input/output (stdio)
Protocol Version: MCP 1.9.4

3. Find Your Python Path

For Virtual Environment Users:
cd /path/to/your/alltrails_mcp
source alltrails_mcp_venv/bin/activate
which python3
For System Python Users:
which python3

Use the output path in your configuration.

4. Install Dependencies

If Using Virtual Environment:

Dependencies are already installed in your virtual environment from step 3.

If Using System Python:

Install dependencies globally:

pip install -r requirements.txt

5. Restart Claude Desktop

Completely quit and restart Claude Desktop for the changes to take effect.

Usage Examples

Once configured, you can use these commands in Claude Desktop:

Search for Trails

By park name:

Find trails in Great Smoky Mountains National Park

By location:

What are the best hiking trails in Yosemite?

With specific criteria:

Show me moderate difficulty trails in Yellowstone

Using park slugs directly:

Search for trails in us/california/yosemite-national-park

For specific activities:

Find family-friendly trails in Zion National Park

Get Trail Details

By trail name:

Get details for Alum Cave Trail to Mount LeConte

Using trail slugs:

Get details for trail us/tennessee/alum-cave-trail-to-mount-leconte

For planning purposes:

I need detailed information about Rainbow Falls Trail including difficulty and elevation

Combination Queries

Search and get details:

Find the most popular trails in Grand Canyon National Park and give me details about the top rated one

Compare trails:

Search for trails in Great Smoky Mountains and tell me which ones are best for beginners

Trip planning:

I'm visiting Yellowstone for 3 days. Find me a mix of easy and moderate trails with good views

Natural Language Examples

The MCP server works with natural language, so you can ask questions like:

  • "What are some good day hikes in the Smoky Mountains?"
  • "Find me a challenging trail with waterfalls in Tennessee"
  • "I want to hike to a summit with 360-degree views"
  • "Show me trails that are good for photography"
  • "Find dog-friendly trails in national parks"
  • "What's the difficulty level of Charlies Bunion trail?"

Common Park Slugs

  • Great Smoky Mountains: us/tennessee/great-smoky-mountains-national-park
  • Yosemite: us/california/yosemite-national-park
  • Yellowstone: us/wyoming/yellowstone-national-park
  • Grand Canyon: us/arizona/grand-canyon-national-park
  • Zion: us/utah/zion-national-park

Troubleshooting

Server Not Connecting

  1. Check the logs:

    tail -f ~/Library/Logs/Claude/mcp.log
    
  2. Verify your config file:

    cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
  3. Test the server manually:

    cd /path/to/your/alltrails_mcp
    source alltrails_mcp_venv/bin/activate
    python3 server.py
    

Common Issues

  • "Connection closed" errors: Usually indicates a Python path or virtual environment issue

Path configuration issues: Check that all paths in the config are absolute and correct

  • Import errors: Ensure all dependencies are installed in the correct Python environment (virtual environment vs system Python)
  • Python path errors: Use which python3 or which python to verify the correct Python executable path

Debug Mode

For detailed debugging, check the MCP logs:

# macOS
tail -f ~/Library/Logs/Claude/mcp.log

# The server also outputs debug information to stderr

Project Structure

alltrails_mcp/
ā”œā”€ā”€ app/
│   └── alltrails_scraper.py    # AllTrails scraping logic
ā”œā”€ā”€ examples/
│   └── claude_desktop_config.json  # Example configuration file for Claude Desktop
ā”œā”€ā”€ server.py                   # MCP server implementation
ā”œā”€ā”€ requirements.txt            # Python dependencies
ā”œā”€ā”€ alltrails_mcp_venv/         # Virtual environment
└── README.md                   # This file
└── .gitignore                  # Git ignore file

How It Works

  1. MCP Protocol: Uses the Model Context Protocol to communicate with Claude Desktop
  2. Web Scraping: Scrapes AllTrails website for trail data using BeautifulSoup
  3. Data Processing: Formats and returns trail information in a structured format
  4. Tool Integration: Exposes tools that Claude can call to search and retrieve trail data

License

MIT License

Copyright (c) 2025 Srinath Srinivasan

Acknowledgments


Note: This tool scrapes publicly available data from AllTrails. Please use responsibly and in accordance with AllTrails' terms of service.