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
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 not be used.
AllTrails contacted me regarding this repository, citing:
If you need trail data, please:
A Model Context Protocol (MCP) server that provides access to AllTrails data [DEPRECATED - NO LONGER FUNCTIONAL].
search_trailsSearch 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_detailsGet detailed information about a specific trail by its AllTrails slug.
Parameters:
slug (required): Trail slug from AllTrails URL (the part after /trail/)This approach isolates dependencies and prevents conflicts with other Python projects.
git clone
cd alltrails_mcp
python3 -m venv alltrails_mcp_venv
source alltrails_mcp_venv/bin/activate # On Windows: alltrails_mcp_venv\Scripts\activate
pip install -r requirements.txt
Test that the server starts without errors:
python3 server.py
You should see the server start without crashing. Press Ctrl+C to stop.
If you prefer not to use a virtual environment, you can install dependencies globally.
git clone
cd alltrails_mcp
pip install -r requirements.txt
Test that the server starts without errors:
python3 server.py
You should see the server start without crashing. Press Ctrl+C to stop.
This approach runs the server in an isolated container.
docker build -t alltrails-mcp .
docker run -i --rm alltrails-mcp
For Docker-based deployment, you can configure Claude Desktop to use the containerized server:
{
"mcpServers": {
"alltrails_mcp_server": {
"command": "docker",
"args": ["run", "-i", "--rm", "alltrails-mcp"]
}
}
}
Find your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonIf it doesn't exist, create a json file named claude_desktop_config.json in the above directory.
Add the following to your claude_desktop_config.json file:
{
"mcpServers": {
"alltrails_mcp_server": {
"command": "/path/to/your/alltrails_mcp/alltrails_mcp_venv/bin/python3",
"args": ["/path/to/your/alltrails_mcp/server.py"]
}
}
}
{
"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.
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
cd /path/to/your/alltrails_mcp
source alltrails_mcp_venv/bin/activate
which python3
which python3
Use the output path in your configuration.
Dependencies are already installed in your virtual environment from step 3.
Install dependencies globally:
pip install -r requirements.txt
Completely quit and restart Claude Desktop for the changes to take effect.
Once configured, you can use these commands in Claude Desktop:
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
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
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
The MCP server works with natural language, so you can ask questions like:
us/tennessee/great-smoky-mountains-national-parkus/california/yosemite-national-parkus/wyoming/yellowstone-national-parkus/arizona/grand-canyon-national-parkus/utah/zion-national-parkCheck the logs:
tail -f ~/Library/Logs/Claude/mcp.log
Verify your config file:
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
Test the server manually:
cd /path/to/your/alltrails_mcp
source alltrails_mcp_venv/bin/activate
python3 server.py
which python3 or which python to verify the correct Python executable pathFor detailed debugging, check the MCP logs:
# macOS
tail -f ~/Library/Logs/Claude/mcp.log
# The server also outputs debug information to stderr
Run the test suite using pytest:
pytest
Format and check code using ruff:
ruff check .
ruff format .
alltrails_mcp/
├── app/
│ └── alltrails_scraper.py # AllTrails scraping logic
├── examples/
│ └── claude_desktop_config.json # Example configuration file for Claude Desktop
├── tests/ # Test suite
│ ├── conftest.py # Test fixtures
│ └── test_scraper.py # Scraper tests
├── server.py # MCP server implementation
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration (Ruff, Pytest)
├── alltrails_mcp_venv/ # Virtual environment
├── README.md # This file
└── .gitignore # Git ignore file
MIT License
Copyright (c) 2025 Srinath Srinivasan
This project is DEPRECATED and non-functional as of January 25, 2026.
The scraping functionality violated AllTrails' Terms of Service and has been completely disabled at their request. This repository exists only for historical/educational purposes.
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.
Respect Terms of Service. Respect copyright. Use official APIs when available.
Install via CLI
npx mdskills install srinath1510/alltrails-mcp-serverAllTrails MCP Server is a free, open-source AI agent skill. 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
Install AllTrails MCP Server with a single command:
npx mdskills install srinath1510/alltrails-mcp-serverThis downloads the skill files into your project and your AI agent picks them up automatically.
AllTrails MCP Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.