This project has been deprecated and is no longer functional. Date: January 25, 2026 Reason: This project violated AllTrails' Terms of Service by scraping their website without authorization. At the request of AllTrails' CTO, all scraping functionality has been disabled. This repository is maintained for historical purposes only and to preserve GitHub stars, but the code no longer works and should
Add this skill
npx mdskills install srinath1510/alltrails-mcp-serverDeprecated and non-functional MCP server; exists only for historical reference after ToS violation
1# AllTrails MCP Server2[](https://archestra.ai/mcp-catalog/srinath1510__alltrails-mcp-server)34567## ⚠️ DEPRECATED - PROJECT ARCHIVED89**This project has been deprecated and is no longer functional.**1011**Date:** January 25, 202612**Reason:** This project violated AllTrails' Terms of Service by scraping their website without authorization.1314At the request of AllTrails' CTO, all scraping functionality has been disabled. This repository is maintained for historical purposes only and to preserve GitHub stars, but **the code no longer works and should not be used**.1516### What Happened?1718AllTrails contacted me regarding this repository, citing:19- Unauthorized scraping/data extraction in violation of their Terms of Service20- Potential intellectual property violations21- Redistribution of copyrighted content without a license2223### Alternatives2425If you need trail data, please:26- Use [AllTrails' official website](https://www.alltrails.com/)27- Contact AllTrails directly about API access28- Respect website Terms of Service and copyright2930---3132## Original Description (For Historical Reference)3334A Model Context Protocol (MCP) server that ~~provides access to AllTrails data~~ **[DEPRECATED - NO LONGER FUNCTIONAL]**.3536## Features3738- 🥾 **Search trails** by national park39- 📍 **Get detailed trail information** including difficulty, length, elevation gain, and descriptions40- 🏔️ **Comprehensive trail data** from AllTrails including ratings, route types, and summaries41- 🤖 **Seamless Client integration** via MCP protocol4243## Technical Specifications4445### Protocol Support4647- **Protocol Version**: MCP 1.9.448- **Communication**: Standard input/output (stdio)49- **Capabilities**: Tools50- **Server Name**: alltrails-mcp51- **Server Version**: 0.1.05253## Tools Available5455### `search_trails`56Search for trails in a specific national park using AllTrails data.5758**Parameters:**59- `park` (required): Park slug in format `us/state/park-name` (e.g., `us/tennessee/great-smoky-mountains-national-park`)6061### `get_trail_details`62Get detailed information about a specific trail by its AllTrails slug.6364**Parameters:**65- `slug` (required): Trail slug from AllTrails URL (the part after `/trail/`)6667## Installation Options6869### Option 1: With Virtual Environment (Recommended)7071This approach isolates dependencies and prevents conflicts with other Python projects.7273### 1. Clone the Repository7475```76git clone <your-repo-url>77cd alltrails_mcp78```7980### 2. Create Virtual Environment8182```83python3 -m venv alltrails_mcp_venv84source alltrails_mcp_venv/bin/activate # On Windows: alltrails_mcp_venv\Scripts\activate85```8687### 3. Install Dependencies8889```90pip install -r requirements.txt91```9293### 4. Verify Installation9495Test that the server starts without errors:9697```98python3 server.py99```100101You should see the server start without crashing. Press Ctrl+C to stop.102103## Prerequisites104105- Python 3.8 or higher106- This server can be used with any MCP-compatible client. I use Claude Desktop with Pro subscription.107- macOS (tested) or other Unix-like system108109---110111### Option 2: With System Python112113If you prefer not to use a virtual environment, you can install dependencies globally.114115### 1. Clone the Repository116117```118git clone <your-repo-url>119cd alltrails_mcp120```121122### 2. Install Dependencies Globally123124```125pip install -r requirements.txt126```127128### 3. Verify Installation129130Test that the server starts without errors:131132```133python3 server.py134```135136You should see the server start without crashing. Press Ctrl+C to stop.137138---139140### Option 3: With Docker141142This approach runs the server in an isolated container.143144#### 1. Build the Image145146```bash147docker build -t alltrails-mcp .148```149150#### 2. Run the Container151152```bash153docker run -i --rm alltrails-mcp154```155156#### 3. Use with Claude Desktop157158For Docker-based deployment, you can configure Claude Desktop to use the containerized server:159160```json161{162 "mcpServers": {163 "alltrails_mcp_server": {164 "command": "docker",165 "args": ["run", "-i", "--rm", "alltrails-mcp"]166 }167 }168}169```170171## Claude Desktop Configuration172173### 1. Locate Claude Desktop Config174175Find your Claude Desktop configuration file:176- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`177- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`178179If it doesn't exist, create a json file named claude_desktop_config.json in the above directory.180181### 2. Add MCP Server Configuration182183Add the following to your `claude_desktop_config.json` file:184185#### Option A: Using Virtual Environment (Recommended)186```json187{188 "mcpServers": {189 "alltrails_mcp_server": {190 "command": "/path/to/your/alltrails_mcp/alltrails_mcp_venv/bin/python3",191 "args": ["/path/to/your/alltrails_mcp/server.py"]192 }193 }194}195```196197#### Option B: Using System Python198```json199{200 "mcpServers": {201 "alltrails_mcp_server": {202 "command": "python3",203 "args": ["/path/to/your/alltrails_mcp/server.py"]204 }205 }206}207```208209**Or with absolute Python path:**210```json211{212 "mcpServers": {213 "alltrails_mcp_server": {214 "command": "/usr/bin/python3",215 "args": ["/path/to/your/alltrails_mcp/server.py"]216 }217 }218}219```220221**Important:** Replace `/path/to/your/alltrails_mcp` with the actual absolute path to your project directory.222223#### Other MCP Clients224225For 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.226227**Server Command:** `python3 server.py`228**Communication:** Standard input/output (stdio)229**Protocol Version:** MCP 1.9.4230231### 3. Find Your Python Path232233#### For Virtual Environment Users:234```235cd /path/to/your/alltrails_mcp236source alltrails_mcp_venv/bin/activate237which python3238```239240#### For System Python Users:241```242which python3243```244245Use the output path in your configuration.246247### 4. Install Dependencies248249#### If Using Virtual Environment:250Dependencies are already installed in your virtual environment from step 3.251252#### If Using System Python:253Install dependencies globally:254```255pip install -r requirements.txt256```257258### 5. Restart Claude Desktop259260Completely quit and restart Claude Desktop for the changes to take effect.261262## Usage Examples263264Once configured, you can use these commands in Claude Desktop:265266### Search for Trails267268**By park name:**269```270Find trails in Great Smoky Mountains National Park271```272273**By location:**274```275What are the best hiking trails in Yosemite?276```277278**With specific criteria:**279```280Show me moderate difficulty trails in Yellowstone281```282283**Using park slugs directly:**284```285Search for trails in us/california/yosemite-national-park286```287288**For specific activities:**289```290Find family-friendly trails in Zion National Park291```292293### Get Trail Details294295**By trail name:**296```297Get details for Alum Cave Trail to Mount LeConte298```299300**Using trail slugs:**301```302Get details for trail us/tennessee/alum-cave-trail-to-mount-leconte303```304305**For planning purposes:**306```307I need detailed information about Rainbow Falls Trail including difficulty and elevation308```309310### Combination Queries311312**Search and get details:**313```314Find the most popular trails in Grand Canyon National Park and give me details about the top rated one315```316317**Compare trails:**318```319Search for trails in Great Smoky Mountains and tell me which ones are best for beginners320```321322**Trip planning:**323```324I'm visiting Yellowstone for 3 days. Find me a mix of easy and moderate trails with good views325```326327### Natural Language Examples328329The MCP server works with natural language, so you can ask questions like:330331- "What are some good day hikes in the Smoky Mountains?"332- "Find me a challenging trail with waterfalls in Tennessee"333- "I want to hike to a summit with 360-degree views"334- "Show me trails that are good for photography"335- "Find dog-friendly trails in national parks"336- "What's the difficulty level of Charlies Bunion trail?"337338### Common Park Slugs339- Great Smoky Mountains: `us/tennessee/great-smoky-mountains-national-park`340- Yosemite: `us/california/yosemite-national-park`341- Yellowstone: `us/wyoming/yellowstone-national-park`342- Grand Canyon: `us/arizona/grand-canyon-national-park`343- Zion: `us/utah/zion-national-park`344345## Troubleshooting346347### Server Not Connecting3483491. **Check the logs:**350 ```bash351 tail -f ~/Library/Logs/Claude/mcp.log352 ```3533542. **Verify your config file:**355 ```bash356 cat ~/Library/Application\ Support/Claude/claude_desktop_config.json357 ```3583593. **Test the server manually:**360 ```bash361 cd /path/to/your/alltrails_mcp362 source alltrails_mcp_venv/bin/activate363 python3 server.py364 ```365366### Common Issues367368- **"Connection closed" errors**: Usually indicates a Python path or virtual environment issue369### **Path configuration issues**: Check that all paths in the config are absolute and correct370- **Import errors**: Ensure all dependencies are installed in the correct Python environment (virtual environment vs system Python)371- **Python path errors**: Use `which python3` or `which python` to verify the correct Python executable path372373### Debug Mode374375For detailed debugging, check the MCP logs:376377```378# macOS379tail -f ~/Library/Logs/Claude/mcp.log380381# The server also outputs debug information to stderr382```383384## Development385386### Running Tests387388Run the test suite using pytest:389390```bash391pytest392```393394### Linting395396Format and check code using ruff:397398```bash399ruff check .400ruff format .401```402403## Project Structure404405```406alltrails_mcp/407├── app/408│ └── alltrails_scraper.py # AllTrails scraping logic409├── examples/410│ └── claude_desktop_config.json # Example configuration file for Claude Desktop411├── tests/ # Test suite412│ ├── conftest.py # Test fixtures413│ └── test_scraper.py # Scraper tests414├── server.py # MCP server implementation415├── requirements.txt # Python dependencies416├── pyproject.toml # Project configuration (Ruff, Pytest)417├── alltrails_mcp_venv/ # Virtual environment418├── README.md # This file419└── .gitignore # Git ignore file420```421422## How It Works4234241. **MCP Protocol**: Uses the Model Context Protocol to communicate with Claude Desktop4252. **Web Scraping**: Scrapes AllTrails website for trail data using BeautifulSoup4263. **Data Processing**: Formats and returns trail information in a structured format4274. **Tool Integration**: Exposes tools that Claude can call to search and retrieve trail data428429430## License431432MIT License433434Copyright (c) 2025 Srinath Srinivasan435436## Acknowledgments437438- Built using the [Model Context Protocol](https://modelcontextprotocol.io/)439- Trail data sourced from [AllTrails](https://www.alltrails.com/)440- Inspired by the MCP community examples441442---443444## ⚠️ IMPORTANT NOTICE445446**This project is DEPRECATED and non-functional as of January 25, 2026.**447448The scraping functionality violated AllTrails' Terms of Service and has been completely disabled at their request. This repository exists only for historical/educational purposes.449450**DO NOT attempt to use, fork, or replicate this code for scraping AllTrails or any other website without explicit written permission from the website owner.**451452Respect Terms of Service. Respect copyright. Use official APIs when available.
Full transparency — inspect the skill content before installing.