trails-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WINDY_API_KEY | No | Windy Point Forecast API key (Map/Webcam keys do not work) | |
| TRAILS_MCP_LOG_LEVEL | No | Log level: debug | info | warn | error | info |
| TRAILS_MCP_USER_AGENT | No | User-Agent sent to upstream APIs (Nominatim requires a descriptive one) | trails-mcp/<version> (...) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| geocode_placeA | Convert a place name (city, region, landmark, mountain pass, etc.) into geographic coordinates using OpenStreetMap's Nominatim geocoder. Returns candidate matches with lat/lon and a bounding box. Use this when you have a place name and need coordinates — for example before calling find_routes_in_bbox. To find trails near a place in one step, prefer find_routes_near_place instead. |
| trails_statusA | Check whether a Waymarked Trails map flavour is online and when its OpenStreetMap data was last refreshed. Useful as a health check. |
| search_routes_by_nameA | Fuzzy-search recreational routes by name or reference code (e.g. 'GR20', 'E5', 'Pennine Way'). Returns summary route entries (id, name, ref, network group, symbol). Use get_route_details with a returned id for full information. To search by location instead of name, use find_routes_near_place. |
| find_routes_near_placeA | Find recreational routes near a named place in one step: geocodes the place with OpenStreetMap, then returns routes whose path passes through a bounding box around it. This is the primary way to answer 'what trails are near '. Returns summary route entries; follow up with get_route_details for any id. |
| find_routes_in_bboxA | Find recreational routes that pass through an explicit WGS84 lon/lat bounding box. Use this when you already have coordinates (e.g. from geocode_place or a map viewport). For a place name, use find_routes_near_place instead. |
| get_routes_by_idsA | Fetch summary entries for multiple routes at once by their OSM relation ids. Returns the same compact shape as the search tools. For full detail on a single route use get_route_details. |
| get_route_detailsA | Get full information about a single route by its OSM relation id: name, reference, network, total length, operator, description, website, Wikipedia, bounding box (lon/lat), raw OSM tags, and any sub-/super-routes. Geometry is summarised by default to keep the response small — set geometry_detail to 'full' for every coordinate or 'none' to omit it. |
| get_route_elevationA | Get the elevation profile of a route by its OSM relation id: minimum/maximum elevation and elevation points (lon, lat, ele in metres, pos along the way) per segment. Note: elevation data is only available on some flavours/servers; if unavailable a not_found result is returned. |
| get_route_segmentsA | Get the on-map geometry of one or more routes, clipped to a WGS84 lon/lat bounding box, as GeoJSON (reprojected to lon/lat). Useful for drawing the part of a trail inside a map viewport. Geometry is summarised by default; set geometry_detail to 'full' for all coordinates. |
| get_route_wikilinkB | Resolve the Wikipedia article URL for a route by its OSM relation id (if the route is tagged with one). Returns the URL; returns a not_found result if the route has no Wikipedia link. |
| get_guidepostA | Get details of a guidepost (waymarking signpost node) by its OSM node id: name, elevation, lon/lat position, and OSM tags. Guidepost ids come from map tiles or other tools, not from route searches. |
| get_route_symbolA | Fetch the waymarking symbol (route shield) SVG for a given symbol_id. The symbol_id is the value returned as 'symbol_id' by the search/detail tools. Returns the symbol as an image plus the raw SVG markup. |
| get_point_forecastA | Fetch machine-readable weather, marine, or air-quality forecast data for a lat/lon point from the Windy Point Forecast API (https://api.windy.com/point-forecast). Requires WINDY_API_KEY. Returns shaped timesteps with decoded wind direction, precipitation type, and WMO weather codes plus a parameterGuide explaining each requested variable. Pick a regional model when available (iconEu for Europe, hrrrConus for US, arome for France). Use list_forecast_options to browse all models, parameters, and pressure levels. |
| list_forecast_optionsA | Return the full catalog of Windy Point Forecast models, parameters, and pressure levels with descriptions and model–parameter compatibility. Does not call the Windy API (no quota used). Use before get_point_forecast to choose valid model/parameter combinations. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chiraggahujaa/trails-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server