A Model Context Protocol (MCP) server for accessing AllTrails hiking trail data
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"srinath-srinivasan-alltrails-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# AllTrails MCP Client A Model Context Protocol (MCP) server and Python package for searching hiking trails from AllTrails.com. Includes smart caching to avoid rate limiting. ## ⚠️ Important: Rate Limiting **AllTrails.com implements CAPTCHA and rate limiting.** This package includes a caching system to minimize requests: - ✅ **Cache-first**: Stores up to 15 trails per park for 7 days - 🔄 **Automatic refresh**: Updates cache after expiration - 💾 **SQLite storage**: Local database (`trails_cache.db`) - 🚫 **Use sparingly**: Best for personal, low-volume usage ## Features - 🥾 Search trails by US National Park (all 63 parks supported) - 📍 Get detailed trail information - 💾 Smart caching system (7-day cache) - 🤖 MCP server for Claude Desktop integration - 🛠️ CLI tools for quick searches - 🐍 Python API for programmatic access ## Installation ### From PyPI (when published) ```bash pip install alltrails-mcp ``` ### Development Install ```bash git clone https://github.com/dbrown540/alltrails-mcp-client.git cd alltrails-mcp-client pip install -e . ``` ## Quick Start ### Python API ```python from alltrails_mcp import NationalPark, search_trails_with_cache # Search with automatic caching trails = search_trails_with_cache(NationalPark.YOSEMITE.value) for trail in trails[:5]: print(f"{trail['name']} - {trail['difficulty']} - {trail['length']}") ``` ### CLI ```bash # Search trails alltrails-search search us/california/yosemite-national-park --limit 5 # Get trail details alltrails-search details us/california/half-dome-trail # Show cache info and location alltrails-search cache # Clear the cache alltrails-search cache --clear # View current configuration alltrails-search config # Set cache expiration to 14 days alltrails-search config --set-cache-days 14 ``` ### MCP Server (Claude Desktop) Add to `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { "mcpServers": { "alltrails": { "command": "/path/to/.venv/bin/py…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.