Look up U.S. rail-trails: search, nearby trails, trail facts, trailheads and closures.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One trail's facts (length, surface, states, managing organization, official website, year opened), trailheads with parking, restrooms and water, any current closure, the opening of its "About this trail" article, its numbered sources and its page URL. Takes the slug from search_trails or trails_near.
The trail's slug, for example "great-allegheny-passage". Its page URL or exact name also work.
One trail's facts (length, surface, states, managing organization, official website, year opened), trailheads with parking, restrooms and water, any current closure, the opening of its "About this trail" article, its numbered sources and its page URL. Takes the slug from search_trails or trails_near.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The trail's slug, for example "great-allegheny-passage". Its page URL or exact name also work. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The trail's slug, for example \"great-allegheny-passage\". Its page URL or exact name also work."
}
}
}Current trail closures and detours posted by trail managers and agencies, optionally for one state, with the source notice. Trails not listed have no reported closure.
| Argument | Type | Description |
|---|---|---|
| state | string | Two-letter state code (PA) or state name. Matches every trail that enters the state. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"state": {
"type": "string",
"maxLength": 40,
"description": "Two-letter state code (PA) or state name. Matches every trail that enters the state."
}
}
}Find U.S. rail-trails, canal towpaths and greenways by name, state, surface, kind and length. Returns each trail's page URL and slug (for get_trail). With no query, lists the longest trails that match the filters.
| Argument | Type | Description |
|---|---|---|
| kind | string | rail: on a former railway; trolley: an old streetcar or interurban line; canal_towpath: beside a canal; greenway: a car-free path not on a railbed. |
| limit | integer | How many trails to return (1-50). |
| query | string | Words from the trail's name, for example "Great Allegheny Passage" or "Virginia Creeper". Small typos are tolerated. |
| state | string | Two-letter state code (PA) or state name. Matches every trail that enters the state. |
| surface | string | Trail surface. crushed_stone is packed stone dust, good for most bikes. |
| max_miles | number | Longest length, in miles. |
| min_miles | number | Shortest length, in miles. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"enum": [
"rail",
"trolley",
"canal_towpath",
"greenway"
],
"type": "string",
"description": "rail: on a former railway; trolley: an old streetcar or interurban line; canal_towpath: beside a canal; greenway: a car-free path not on a railbed."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "How many trails to return (1-50)."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Words from the trail's name, for example \"Great Allegheny Passage\" or \"Virginia Creeper\". Small typos are tolerated."
},
"state": {
"type": "string",
"maxLength": 40,
"description": "Two-letter state code (PA) or state name. Matches every trail that enters the state."
},
"surface": {
"enum": [
"paved",
"crushed_stone",
"gravel",
"dirt",
"mixed",
"unknown"
],
"type": "string",
"description": "Trail surface. crushed_stone is packed stone dust, good for most bikes."
},
"max_miles": {
"type": "number",
"minimum": 0,
"description": "Longest length, in miles."
},
"min_miles": {
"type": "number",
"minimum": 0,
"description": "Shortest length, in miles."
}
}
}Trails within a radius of a latitude and longitude, nearest first, with the distance to the closest point of each trail. For a town or address, pass its coordinates. Optional filters as in search_trails.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude in decimal degrees. |
| lon* | number | Longitude in decimal degrees (negative in the United States). |
| kind | string | rail: on a former railway; trolley: an old streetcar or interurban line; canal_towpath: beside a canal; greenway: a car-free path not on a railbed. |
| limit | integer | How many trails to return (1-50). |
| surface | string | Trail surface. crushed_stone is packed stone dust, good for most bikes. |
| min_miles | number | Shortest trail length, in miles. |
| radius_miles | number | Search radius in miles (up to 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in decimal degrees."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in decimal degrees (negative in the United States)."
},
"kind": {
"enum": [
"rail",
"trolley",
"canal_towpath",
"greenway"
],
"type": "string",
"description": "rail: on a former railway; trolley: an old streetcar or interurban line; canal_towpath: beside a canal; greenway: a car-free path not on a railbed."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "How many trails to return (1-50)."
},
"surface": {
"enum": [
"paved",
"crushed_stone",
"gravel",
"dirt",
"mixed",
"unknown"
],
"type": "string",
"description": "Trail surface. crushed_stone is packed stone dust, good for most bikes."
},
"min_miles": {
"type": "number",
"minimum": 0,
"description": "Shortest trail length, in miles."
},
"radius_miles": {
"type": "number",
"default": 10,
"maximum": 100,
"description": "Search radius in miles (up to 100).",
"exclusiveMinimum": 0
}
}
}