alltrails-fpx
Query alltrails.com (trail search, trail detail, reviews, photos, weather, and a signed-in user's saved lists / completed trails / activity feed) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the alltrails-mcp server — one-shot calls through a signed-in browser tab. Use when you want AllTrails data without the MCP, in a script, or on a machine where the MCP isn't installed. Skill: alltrails-fpx Owner: chrischall Summary: Query alltrails.com (trail search, trail detail, reviews, photos, weather, and a signed-in user's saved lists / completed trails / activity feed) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the alltrails-mcp server — one-shot calls through a signed-in browser tab. Use when you want AllTrails data without the MCP, in a script, or on a machine where
Rank
62
Safety
84
Downloads
1.5k
Updated
Oct 10, 2026
Version
3.1.8
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.5K downloadsadoption · observed Oct 10, 2026
- Latest release
- 3.1.8release · observed Oct 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:alltrails-fpx- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/snapshot"
Documentation
CLAWHUB
147,219 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
--- name: alltrails-fpx description: >- Query alltrails.com (trail search, trail detail, reviews, photos, weather, and a signed-in user's saved lists / completed trails / activity feed) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the alltrails-mcp server — one-shot calls through a signed-in browser tab. Use when you want AllTrails data without the MCP, in a script, or on a machine where the MCP isn't installed. --- # AllTrails via fpx (no MCP) AllTrails has **no public API**; alltrails-mcp reverse-engineers the internal one alltrails.com itself uses, fronted by **DataDome**. DataDome fingerprints the HTTP client, not just the cookie — a Node/curl replay of a captured cookie gets **403'd** even the same day an identical in-tab fetch succeeds. So every request must ride a same-origin fetch inside the user's own signed-in tab, which `fpx` provides (no stored-cookie mode, unlike some other fleet skills). Every request also needs an **`x-at-key` app header** — a static, anonymous client-identifier the web app sends on every `/api/alltrails/*` call. It is **not stored anywhere** — capture it live from the tab's own traffic (below). An in-tab `fetch` does **not** add it automatically, so it (plus `x-at-caller`/`x-language-locale`) must be attached explicitly on every `fpx` call, same as the MCP's `client.ts` does. ## One-time setup ```sh npm install -g @fetchproxy/cli # provides `fpx` fpx profile add alltrails --domain alltrails.com fpx profile declare alltrails \ --capture-header '[email protected]/api/alltrails/*' fpx pair -p alltrails # prints a pair code → approve in ContextMint Bridge ``` Requirements: the **ContextMint Bridge** browser extension installed ([releases](https://github.com/nullnet-app/contextmint-bridge/releases) — Chrome: load the chrome zip unpacked; use Chrome for now — Safari will ship inside the ContextMint app, which has no public download yet), its Chrome **Site access** allowing `alltrails.com`, and an open, **signed-in** `www.alltrails.com` tab (the per-user tools need a real session; the trail tools work signed-out too). Pairing persists after the first approval. ContextMint Bridge is the fetchproxy extension renamed, same maintainer; source and `.sha256`-checkable release zips at https://github.com/nullnet-app/contextmint-bridge. ## Capture the app key, then attach it on every call `x-at-key` is captured from the *tab's own* API traffic — the capture only fires while the tab makes a request. `fpx session` triggers the capture and returns everything declared, including `capturedHeaders`: ```sh AT_KEY=$(fpx session -p alltrails | jq -r '.capturedHeaders["x-at-key"] // empty') ``` If `AT_KEY` comes back empty, the tab made no `/api/alltrails/*` request **during the capture window**. The extension listens only while the capture call is in flight, so loading a page first and running `fpx session` afterwards is a race you usually lo
_meta.json
{
"ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
"slug": "alltrails-fpx",
"version": "3.1.8",
"publishedAt": 1791588181723
}references/endpoints.md
# AllTrails endpoints for fpx
Every request needs the app-key headers captured in `SKILL.md`. All examples
below assume:
```sh
AT_KEY=$(fpx session -p alltrails | jq -r '.capturedHeaders["x-at-key"] // empty')
H=(-H "x-at-key: $AT_KEY" -H 'x-at-caller: Mugen' -H 'x-language-locale: en-US')
```
Base URL: `https://www.alltrails.com`. Paths below are all under
`/api/alltrails/...` unless noted. Endpoints and response shapes are
transcribed from `src/tools/*.ts` / `src/client.ts` / `CLAUDE.md` in
`alltrails-mcp` (live-verified there); no shape here was guessed.
---
## 1. Trail detail
`detail` is `basic` | `medium` (default) | `offline` (adds route geometry).
```sh
fpx get 'https://www.alltrails.com/api/alltrails/v3/trails/10236086?detail=medium' -p alltrails "${H[@]}" \
| jq '.trails[0] | {id: .objectID, name, overview, length, elevation_gain, difficulty_rating, avg_rating, routeType: .routeType.name, location}'
```
The envelope is `{ "trails": [ {...} ] }` — a one-element array in practice.
## 2. Trail reviews
```sh
cat > /tmp/at_reviews.json <<'JSON'
{"limit": 20}
JSON
fpx post-json 'https://www.alltrails.com/api/alltrails/v2/trails/10236086/reviews/search' @/tmp/at_reviews.json -p alltrails "${H[@]}" \
| jq '.trail_reviews[] | {user: .user.name, rating, comment}'
```
Envelope: `{ "trail_reviews": [...] }`.
## 3. Trail photos
```sh
fpx get 'https://www.alltrails.com/api/alltrails/v2/trails/10236086/photos' -p alltrails "${H[@]}" \
| jq --arg key "$AT_KEY" '.photos[] | {
id, title, likeCount,
user: ((.user.firstName // "") + " " + (.user.lastName // "")),
uploadedAt: .metadata.created,
url: ("https://www.alltrails.com/api/alltrails/photos/" + (.id|tostring) + "/image?size=large&key=" + $key)
}'
```
Envelope: `{ "photos": [...] }`. The record carries **no direct image URL** —
`GET /api/alltrails/photos/{id}/image?size=large&key=<x-at-key>` 302s to the
CDN original and is **not** DataDome-walled (fetchable directly, no bridge
needed, if you just want the bytes).
## 4. Trail weather
```sh
fpx get 'https://www.alltrails.com/api/alltrails/weather-service/v2/trails/10236086/overview' -p alltrails "${H[@]}" | jq .
```
## 5. Trail route geometry (for GPX / mapping)
```sh
fpx get 'https://www.alltrails.com/api/alltrails/v3/trails/10236086?detail=offline' -p alltrails "${H[@]}" \
| jq '.trails[0].defaultMap.routes[0].lineSegments[0]'
```
`pointsData` is 2-dim `(lat, lng) × 1e5`; `indexedElevationData` is 2-dim
`(pointIndex × 100, elevationMeters × 1e5)`, one pair per point — decode both
by dividing by `1e5` (elevation index by `100`). alltrails-mcp's
`alltrails_get_trail_gpx` does this decode + emits GPX 1.1 in
`src/gpx.ts`/`decodePolyline` — reproducing that Google-polyline-variant
decoder in shell is impractical, so this skill stops at the raw geometry;
reach for the MCP tool (or port `decodePolyline`) if you need actual GPX XML.
## 6. Your profile / user id
```sh
fpx get 'https://www.alltrails.com/apskill-card.md
## Description: Helps agents query AllTrails trails, reviews, photos, weather, and signed-in account activity using one-shot fpx commands through a browser tab without an MCP server. This skill is ready for commercial/non-commercial use. ## Publisher: [chrischall](https://clawhub.ai/user/chrischall) ### License/Terms of Use: MIT-0 ## Use Case: Developers and other AllTrails users use this skill to retrieve trail information and, with a signed-in browser session, their saved lists, completed trails, and activity feed from a shell without running an MCP server. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: Browser-mediated requests may expose personal AllTrails activity and captured request headers in shared logs or scripts. Mitigation: Review account-scoped commands and avoid sharing logs or scripts containing captured headers or personal AllTrails data. ## Reference(s): - [AllTrails endpoint examples](references/endpoints.md) - [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases) - [ClawHub skill listing](https://clawhub.ai/chrischall/skills/alltrails-fpx) ## Skill Output: **Output Type(s):** [Shell commands, Guidance] **Output Format:** [Markdown with shell commands] **Output Parameters:** [1D] **Other Properties Related to Output:** [Read-only requests; account-specific results require a signed-in AllTrails browser tab.] ## Skill Version(s): 3.1.8 (source: ClawHub release metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/chrischall/skills/alltrails-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/skills/alltrails-fpx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:27:56.493Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T09:27:56.493Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/chrischall/alltrails-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/alltrails-fpx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:27:56.493Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "3.1.8",
"href": "https://clawhub.ai/chrischall/alltrails-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/alltrails-fpx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:23:01.723Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 3.1.8",
"description": "- Removed the skill-card.md file. - No changes to core functionality or usage; documentation and setup remain the same.",
"href": "https://clawhub.ai/chrischall/alltrails-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/alltrails-fpx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:23:01.723Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
