mcp
Byway MCP: call Byway Engine and Byway Atlas, the discovery engine for the real world.
Should I use this
Quality & Safety
Findings (2)
- LOWin search_lookouts
- LOWin get_itinerary
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp": {
"url": "https://www.byway.world/api/mcp"
}
}
}Remote endpoints
https://www.byway.world/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢search_byways(query, state, country, limit)
Search scenic byways and signed routes — the US federal roster plus regional routes (Québec, France, Northern Ireland, Ireland, Iceland, Norway, New Zealand today; growing). Filter by name, US state, or ISO-2 country. US byways carry byway.world links.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Name text to match"
},
"state": {
"type": "string",
"description": "Two-letter US state code"
},
"country": {
"type": "string",
"description": "ISO-2 country (US, CA, FR, GB, IE, IS, NO, NZ); non-US searches regional routes"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_byway(slug)
Full detail for one scenic byway or regional route: designation, states or country, length, scenic lookouts on the route, and itineraries that ride it.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Byway slug from search_byways"
}
},
"required": [
"slug"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_lookouts(byway, state, limit)
Scenic lookouts (viewpoints) along a specific byway, or across a US state. Every lookout is a real, verified place — coverage is growing. Where known, each carries the walk in from the car: time, path length one way and climb, or roadside (no walk).
Input Schema
{
"type": "object",
"properties": {
"byway": {
"type": "string",
"description": "Byway slug"
},
"state": {
"type": "string",
"description": "Two-letter US state code"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_itinerary(slug)
A classic road-trip itinerary: waypoints, states, and the scenic byways along the route.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Itinerary slug"
}
},
"required": [
"slug"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_places(kind, state, name, lat, lon, ...)
Search the Byway atlas of typed places — waterfalls, hot springs, lighthouses, covered bridges, historic sites, beaches, peaks, rest areas, ghost towns, museums and attractions. Locate by US state (which also needs a kind), by a point and radius, or by name; a name given alongside a locator narrows it. Every result links to the byway.world page for that place, and every place traces to its OpenStreetMap or Wikidata record. One limit, stated: ghost-town rows live in a separate Wikidata corpus that the point and name searches cannot read, so they are absent from a kind-less search. Reach them with state + kind, or with get_place. Asking for one any other way is refused, never answered empty.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"waterfall",
"hot-spring",
"lighthouse",
"covered-bridge",
"beach",
"historic-site",
"peak",
"rest-area",
"ghost-town",
"museum",
"attraction",
"park",
"nature-reserve",
"artwork",
"spring",
"garden",
"cliff",
"picnic-site",
"arch",
"trailhead"
],
"description": "Place type to filter on"
},
"state": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Two-letter US state code; requires kind"
},
"name": {
"type": "string",
"minLength": 3,
"maxLength": 200,
"description": "Place name text"
},
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude to search near"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude to search near"
},
"radiusMi": {
"type": "number",
"minimum": 0.0621371192237334,
"maximum": 99.41939075797343,
"description": "Miles around lat/lon (default 30)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_place(url, kind, slug)
Everything the Byway atlas holds on one place: its own description, the records it traces to (OpenStreetMap, Wikipedia, Wikidata), reconciled public records (GNIS, National Register), the scenic byways that pass near it, the nearest verified lookouts, and for a place people walk to from the car (a waterfall, peak, cliff, arch, hot spring, lighthouse or trailhead) the walk in: time, path length one way and climb, with what the numbers come from. Takes the byway.world URL search_places returned, or the place's kind and slug.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The place's byway.world /places URL"
},
"kind": {
"type": "string",
"enum": [
"waterfall",
"hot-spring",
"lighthouse",
"covered-bridge",
"beach",
"historic-site",
"peak",
"rest-area",
"ghost-town",
"museum",
"attraction",
"park",
"nature-reserve",
"artwork",
"spring",
"garden",
"cliff",
"picnic-site",
"arch",
"trailhead"
],
"description": "Place type"
},
"slug": {
"type": "string",
"description": "Place slug, ending in the row's 8-hex id"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢places_on_byway(byway, kind, bandMi, limit)
Atlas places along one scenic byway: every place of a kind within a band of the drawn route, nearest to the road first, each marked whether it sits on the byway itself or is a detour off it. Only routes with drawn geometry can answer. This is the atlas inventory beside a road, not an itinerary. One limit, stated: ghost-town rows live in a separate Wikidata corpus the corridor read cannot see. Asking for one here is refused rather than answered empty; reach them with search_places by state.
Input Schema
{
"type": "object",
"properties": {
"byway": {
"type": "string",
"description": "Byway slug from search_byways"
},
"kind": {
"type": "string",
"enum": [
"waterfall",
"hot-spring",
"lighthouse",
"covered-bridge",
"beach",
"historic-site",
"peak",
"rest-area",
"ghost-town",
"museum",
"attraction",
"park",
"nature-reserve",
"artwork",
"spring",
"garden",
"cliff",
"picnic-site",
"arch",
"trailhead"
],
"description": "Place type to filter on"
},
"bandMi": {
"type": "number",
"minimum": 0.0621371192237334,
"maximum": 49.709695378986716,
"description": "Miles either side of the route (default 30)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"byway"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_destinations(q, state, limit)
Find US destination cities by name or state, with the day trip around each one: the scenic byways, national parks, public land units and campgrounds Byway's registries place within 30 miles. Only cities with a proven weave are listed — every result links to its own byway.world destination page.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 2,
"description": "City name text to match"
},
"state": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter US state code"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"description": "Rows to return (default 10)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡plan_drive(origin, destination, budget_min, depart_at, interests, ...)
Plan a scenic drive with the Byway engine: real verified stops, honest timing, official scenic byways. Origin and destination are place names — the tool resolves each to the closest matching real place. budget_min is the whole time window (driving plus stops, default 240): a long drive needs a budget comfortably above its direct drive time or there is no slack to spend on stops. Requires a connected Byway account (OAuth sign-in). Set save=true to save the trip to your account.
Input Schema
{
"type": "object",
"properties": {
"origin": {
"type": "string",
"description": "Starting point (city or place name)"
},
"destination": {
"type": "string",
"description": "Where the drive ends (city or place name)"
},
"budget_min": {
"type": "integer",
"minimum": 30,
"maximum": 960,
"description": "Total minutes for the whole trip, driving plus stops (30-960, default 240). Set well above the direct drive time to make room for stops."
},
"depart_at": {
"type": "string",
"description": "Departure time, ISO 8601 with offset (e.g. 2026-08-20T09:00:00-04:00). Defaults to now; must be within 14 days — hours and weather verdicts are real only inside the forecast horizon."
},
"interests": {
"type": "array",
"items": {
"type": "string"
},
"description": "Taste categories to weight stops"
},
"pace": {
"type": "string",
"description": "leisurely | balanced | efficient"
},
"save": {
"type": "boolean",
"description": "Save the trip to the account"
}
},
"required": [
"origin",
"destination"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢places_along_route(origin, destination, kind, bandMi, limit)
Atlas inventory along a routed drive: every place of a kind within a band of the corridor between two points. This returns the raw record, not a plan — to plan a drive with stops chosen for the traveler, use plan_drive. One limit, stated: ghost-town rows live in a separate Wikidata corpus the corridor read cannot see. Asking for one here is refused rather than answered empty; reach them with search_places by state.
Input Schema
{
"type": "object",
"properties": {
"origin": {
"type": "string",
"description": "Where the drive starts (city or place)"
},
"destination": {
"type": "string",
"description": "Where it ends (city or place)"
},
"kind": {
"type": "string",
"enum": [
"waterfall",
"hot-spring",
"lighthouse",
"covered-bridge",
"beach",
"historic-site",
"peak",
"rest-area",
"ghost-town",
"museum",
"attraction",
"park",
"nature-reserve",
"artwork",
"spring",
"garden",
"cliff",
"picnic-site",
"arch",
"trailhead"
],
"description": "Place type to filter on"
},
"bandMi": {
"type": "number",
"minimum": 0.0621371192237334,
"maximum": 49.709695378986716,
"description": "Miles either side of the route (default 30)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"origin",
"destination"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence