Project Status
This project has been deprecated and archived (DEPRECATED - PROJECT ARCHIVED) and has been unavailable since January 25, 2026. The reason for deprecation is: the project scraped the AllTrails website without authorization, violating AllTrails' Terms of Service. At the request of AllTrails' Chief Technology Officer, all scraping functionality has been disabled. This repository is maintained solely for historical preservation purposes and to retain GitHub stars; the code no longer runs and should not be used.
The reasons raised by AllTrails regarding this repository include: unauthorized scraping/extraction of data, violating its Terms of Service; possible intellectual property infringement; redistribution of copyrighted content without permission. If trail data is needed, use the official AllTrails website, contact AllTrails directly to inquire about API access, and respect the website's Terms of Service and copyright.
Purpose (Original Design)
This is a Model Context Protocol (MCP) server that provides access to AllTrails data, allowing direct searching of hiking trails and retrieval of detailed trail information through Claude Desktop.
Main Capabilities (Original Design)
- Search trails by national park
- Get detailed trail information, including difficulty, length, elevation gain, and description
- Comprehensive trail data from AllTrails, including ratings, trail type, and summary
- Seamless integration with clients through the MCP protocol
Available Tools (Original Design)
- Search trails by national park using AllTrails data. Parameter park (required): park identifier, in the format us/state/park-name, for example us/tennessee/great-smoky-mountains-national-park.
- get_trail_details: Get detailed information for a specific trail via its AllTrails identifier. Parameter slug (required): the trail identifier from the AllTrails URL (the part after /trail/).
Technical Specifications
- Protocol version: MCP 1.9.4
- Communication method: standard input/output (stdio)
- Capabilities: tools
- Server name: alltrails-mcp
- Server version: 0.1.0
- Server command: python3 server.py
Installation Method (Original Design, Now Unavailable)
Three installation methods are provided:
- Use a virtual environment (recommended): isolate dependencies and avoid conflicts with other Python projects. Requires cloning the repository, creating a virtual environment, installing dependencies, and verifying the installation.
- Use system Python: install dependencies globally.
- Use Docker: run the server in an isolated container, and configure a container-based server for Claude Desktop.
Dependency requirements: Python 3.8 or higher; compatible with any MCP-compatible client (the author used Claude Desktop with a Pro subscription); suitable for macOS (tested) or other Unix-like systems.
Client Configuration (Original Design)
Claude Desktop configuration file locations: macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
Add the MCP server configuration to the configuration file and replace it with the actual absolute path of the project directory. After configuration is complete, fully quit and restart Claude Desktop.
Usage Examples (Original Design)
This MCP server supports natural language, for example: "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 identifier examples:
- 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
Technical Implementation (Original Design)
- MCP Protocol: Uses the Model Context Protocol to communicate with Claude Desktop
- Web Scraping: Uses BeautifulSoup to scrape the AllTrails website to obtain trail data
- Data Processing: Formats trail information and returns it in a structured format
- Tool Integration: Exposes tools that Claude can call to search for and retrieve trail data
Troubleshooting (Original Design)
Covers the server being unable to connect, log inspection, configuration file validation, manually testing the server, the "Connection closed" error, path configuration issues, import errors, Python path errors, etc. You can use pytest to run the test suite, and use ruff to format and lint the code.
Limitations and Notes
This project is deprecated and non-functional (as of January 25, 2026). The scraping functionality has been completely disabled due to violations of the AllTrails Terms of Service. It is strictly prohibited to use, reproduce, or copy this code to scrape AllTrails or any other website without obtaining the explicit written permission of the website owner. Please respect the Terms of Service and copyright, and prioritize using official APIs.