Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.chrischall/alltrails-mcp

NPM · ALLTRAILS-MCP

Unofficial AllTrails MCP for Claude — search trails, get details, reviews, photos, saved lists

Available components

−11 this week 83 Trust /100

Last scanned (9 hours ago)

Scores higher than 77% of npm servers

Category Maps and Location

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security63
  • No malware found by supply-chain analysis.Pass
  • Known CVEs could not be checked: the version this server declares is not published in its registry.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: the version this server declares is not published in its registry.Unverified
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to chrischall/alltrails-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2388 tokens (~183/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −11
    • Known CVEs: pass → unverified ▼ security
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Security disclosure: unverified → fail ▼ functional
    • Dependency health: 1.00 → unverified ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 3.1.11 → 3.2.1 functional
    • Package version: 3.1.11 → 3.2.0 functional
  • 1 Nov 26 0
    • Package version: 3.1.8 → 3.1.11 functional
  • 30 Oct 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 28 Oct 26 0
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 3.1.10 → 3.1.11 functional
  • 18 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 17 Oct 26 −12
    • Malware scan: pass → unverified ▼ security
    • Known CVEs: partial → pass ▲ security
    • Stability: 0.93 → pass security
    • Dependency health: partial → 1.00 functional
    • Package version: 3.1.9 → 3.1.10 functional
  • 16 Oct 26 −4
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Known CVEs: pass → partial ▼ security
    • Schema quality: 155 → 177 ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Dependency health: 1.00 → partial functional
    • Stability: pass → 0.93 functional
    • Package version: 3.1.8 → 3.1.9 functional
  • 14 Oct 26 +46
    • Injection markers: unverified → pass ▲ security
    • Stability: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/alltrails-mcp@3.2.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo chrischall/alltrails-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/chrischall/alltrails-mcp/.github/workflows/release-please.yml@refs/heads/main
Rekor log index 3691538975
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:1e81d33527190dad9220ff46f1a193c0467f340bee4353e6c9087246458863c762934436e7a029918ae4f0295866b3e8d00ba002f1a7695dc279903cd

Background: How many MCP packages publish verified provenance →

MCP tools · 13 exposed · ~2,388 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
alltrails_get_activity_feed ~352

Get an AllTrails user's activity feed (recorded hikes and posts). Defaults to the signed-in user; pass a userId to target a specific public profile. Without a feed argument this returns the feed DIRECTORY (the available feeds: local, timeline (following), personal (own posts)) — pass feed to get the actual items. Returns slim projections by default; pass view:"full" for the whole records, or view:"brief" for one line per item (brief reads the timeline when no feed is named).

NameTypeReqDescription
cursorstring–Opaque nextCursor from a previous page, for pagination
feedstring–Which feed to read: local (nearby activity), timeline (people you follow), personal (own posts). Omit to list the available feeds.
maxItemsinteger–Max items per page (server-side)
userIdstring–Numeric AllTrails user id. Defaults to the signed-in user.
viewstring–Response shape. "compact" (default) returns { count, hasNextPage, nextCursor, items: [{ type, timestamp, description, user, trail, activity, review }] } — and the no-feed directory as { name, display…

No output schema declared.

No examples provided.

alltrails_get_list_items ~207

Get the trails saved in an AllTrails list by its numeric list id (from alltrails_list_user_lists, or a public "list" record from alltrails_search). Items are sparse references: each carries a trailId (hydrate with alltrails_get_trail), the curator's order, and any notes — not trail details. Returns slim { trailId, type, order, notes, addedAt } entries sorted by order by default; pass view:"full" for the whole records.

NameTypeReqDescription
listIdstringyesNumeric AllTrails list id
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns { count, items: [{ trailId, type, order, n…

No output schema declared.

No examples provided.

alltrails_get_profile ~133

Get the signed-in AllTrails user profile (via /api/alltrails/me). Requires a signed-in session. Returns identity fields { id, username, slug, firstName, lastName, location, isPro } by default; pass view:"full" for the whole record (includes email and account settings).

NameTypeReqDescription
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the identity fields only; "full" returns A…

No output schema declared.

No examples provided.

alltrails_get_trail ~240

Get details for a single AllTrails trail by its numeric trail id. Returns name, location, length, elevation gain, difficulty, rating, route type, and (at higher detail levels) route geometry. Returns a slim projection by default (name, overview, length in m+mi, elevation gain, difficulty, rating, route type, location); pass view:"full" for the whole record and geometry.

NameTypeReqDescription
detailstring–Detail level. "medium" (default) is a good overview; "offline" includes full route geometry.
trailIdstringyesNumeric AllTrails trail id (e.g. "10236086")
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns { name, overview, length in m+mi, elevatio…

No output schema declared.

No examples provided.

alltrails_get_trail_gpx ~83

Export an AllTrails trail's route as a GPX 1.1 document (track points with per-point elevation), built from the trail's offline-detail route geometry. Returns raw GPX XML suitable for saving to a .gpx file or importing into navigation apps.

NameTypeReqDescription
trailIdstringyesNumeric AllTrails trail id

No output schema declared.

No examples provided.

alltrails_get_trail_photos ~180

Get photos for an AllTrails trail by its numeric trail id. Returns just { id, title, likeCount, user, uploadedAt, url } per photo by default — the url serves the actual image; pass view:"full" for the whole records.

NameTypeReqDescription
trailIdstringyesNumeric AllTrails trail id
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns { count, photos: [{ id, title, likeCount,…

No output schema declared.

No examples provided.

alltrails_get_trail_reviews ~157

Get user reviews for an AllTrails trail by its numeric trail id. Returns just { user, rating, comment } per review by default; pass view:"full" for the whole records.

NameTypeReqDescription
limitinteger–Max reviews to return (default 20)
trailIdstringyesNumeric AllTrails trail id
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns { count, reviews: [{ user, rating, comment…

No output schema declared.

No examples provided.

alltrails_get_trail_weather ~43

Get the weather overview for an AllTrails trail by its numeric trail id.

NameTypeReqDescription
trailIdstringyesNumeric AllTrails trail id

No output schema declared.

No examples provided.

alltrails_healthcheck ~152

Round-trips a small public www.alltrails.com URL (/api/alltrails/v3/trails/10236086?detail=basic) through ContextMint Bridge (your signed-in browser tab) and returns diagnostics: the bridge's role (host/peer/null), port, version, the extension link (linked / pair pending / not attached / never answered), the elapsed round-trip time, and a plain-English hint distinguishing 'bridge never came up' from 'extension not connected' from 'this browser can't serve a capability' from 'real www.alltrails.com-side problem'. Read-only, no auth required. Call this when a real tool fails and you want to know which hop broke.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

alltrails_list_completed_trails ~158

List the trails an AllTrails user has marked completed. Defaults to the signed-in user; pass a userId to target a specific public profile. Returns slim trail summaries (name, length, elevation, difficulty, rating) by default; pass view:"full" for the whole records.

NameTypeReqDescription
userIdstring–Numeric AllTrails user id. Defaults to the signed-in user.
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns { count, trails: [...] } in the same slim…

No output schema declared.

No examples provided.

alltrails_list_user_lists ~165

List an AllTrails user's saved lists (favorites, custom lists). Defaults to the signed-in user; pass a userId to target a specific public profile. Returns slim { id, name, itemCount, visibility } entries by default (feed an id to alltrails_get_list_items); pass view:"full" for the whole records.

NameTypeReqDescription
userIdstring–Numeric AllTrails user id. Defaults to the signed-in user.
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns { count, lists: [{ id, name, itemCount, vi…

No output schema declared.

No examples provided.

alltrails_resolve_location ~182

Resolve a place name to AllTrails location records — country / state / city / area / point of interest — with each one's kind, coordinates, URL slug, and disambiguation label. Useful for pinning down which "Oregon" (state vs the towns) or getting a place's coordinates/slug. NOTE: the returned id is an Algolia search id and is NOT the id the trail-listing tools take; to find trails for a place, feed the resolved name back into alltrails_search.

NameTypeReqDescription
kindsarray–Which place kinds to return (default: all — country, state, city, area, poi)
limitinteger–Max results to return (default 10)
querystringyesPlace name to resolve, e.g. "portland oregon" or "zion"

No output schema declared.

No examples provided.

alltrails_search ~336

Search AllTrails by name. A free-text query goes to the suggestions endpoint the alltrails.com search box itself uses — relevance is good and the limit is honored. Results may mix record types (trail, poi, area, city, …); pass types=["trail"] to narrow. lat/lng are accepted for backward compatibility but verified ignored by the API (2026-07-02) — results carry an implicit account/IP geo bias instead. Without a query this falls back to the legacy explore search, which returns trails anchored to the signed-in account's location. Results come back as slim per-result summaries, capped at limit client-side, by default; pass view:"full" for AllTrails' whole records.

NameTypeReqDescription
latnumber–Deprecated — the API ignores it (verified 2026-07-02)
limitinteger–Max results to return (default 20)
lngnumber–Deprecated — the API ignores it (verified 2026-07-02)
querystring–Free-text search, e.g. "angels landing" or "waterfall trails"
typesarray–Record types to return (default: all). e.g. ["trail"] for trails only. Only applied when query is provided; silently ignored on the no-query legacy browse fallback.
viewstring–Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns slim per-result summaries capped at limit;…

No output schema declared.

No examples provided.

Install

How do I install the io.github.chrischall/alltrails-mcp server?

io.github.chrischall/alltrails-mcp runs locally as an npm package, launched with npx -y alltrails-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · alltrails-mcp

# add to Claude Code
claude mcp add chrischall-alltrails-mcp -- npx -y alltrails-mcp
Common questions

What is the io.github.chrischall/alltrails-mcp server?

io.github.chrischall/alltrails-mcp is listed in the public MCP registry as io.github.chrischall/alltrails-mcp. Unofficial AllTrails MCP for Claude, search trails, get details, reviews, photos, saved lists. This page covers its npm package (alltrails-mcp).

Is the io.github.chrischall/alltrails-mcp server safe to use?

io.github.chrischall/alltrails-mcp scores 83 out of 100 on VerifyMCP. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.chrischall/alltrails-mcp server expose?

io.github.chrischall/alltrails-mcp exposes 13 tools: alltrails_get_trail, alltrails_get_trail_reviews, alltrails_get_trail_photos, alltrails_get_trail_gpx, alltrails_get_trail_weather, and 8 more. Their descriptions and schemas cost roughly 2,388 tokens of context every time the server is loaded.

Is the io.github.chrischall/alltrails-mcp server still maintained?

io.github.chrischall/alltrails-mcp is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.chrischall/alltrails-mcp server under?

io.github.chrischall/alltrails-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.