{"name":"us.thistripbtw/trips","slug":"thistripbtw-trips","title":null,"description":"Hand someone a complete trip as a private, editable map link. No account, no API key, no card.","url":"https://mcp.market/server/thistripbtw-trips","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"maps","tags":["maps"],"presence":{"score":35,"stars":0,"forks":0,"downloads_week":277,"last_push_at":"2026-09-13T20:04:16.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/peterbartsch/thistripbtw-mcp","website":"https://thistripbtw.us/for-agents","version":"1.3.2","remotes":[{"type":"streamable-http","url":"https://thistripbtw.us/mcp"}],"packages":[{"registryType":"npm","identifier":"thistripbtw-mcp","version":"1.3.2","transport":{"type":"stdio"}}],"tools":[{"name":"add_to_kept_trip","description":"Add a stop to a trip the person has KEPT (a link with #k=), on their behalf. Use when they say 'add X to the trip', 'we're stopping at Y on the way', 'put the hotel on it'. Needs their EDIT phrase — a view phrase can read but not write, and the tool says so. Writes exactly one stop and returns the trip's current stop count. Like read_kept_trip this touches the network: the #k= phrase is the password and it goes to thistripbtw.us over TLS, nothing is stored about you, and a wrong phrase counts as a guess. Treat the link as a credential.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"link":{"type":"string","description":"The kept trip's link with its #k= EDIT phrase."},"stop":{"type":"object","description":"The stop to add.","properties":{"name":{"type":"string","description":"What to call it, e.g. \"Fisher Towers trailhead\"."},"lat":{"type":"number"},"lng":{"type":"number"},"date":{"type":"string","description":"YYYY-MM-DD, optional."},"mode":{"type":"string","enum":["drive","fly","train","ferry","water","bike","walk"],"description":"How they get there. Defaults to drive."},"note":{"type":"string","description":"Anything worth remembering. Optional."},"track":{"type":"string","description":"Which vehicle, if the trip has more than one: as named by read_kept_trip."}},"required":["lat","lng"]}},"required":["link","stop"]}},{"name":"amend_trip_link","description":"Update a trip link you already built — add legs, replace them, rename, or drop one — and get the new link back. Use this instead of building a fresh link every time the plan changes, so the person holds one link that grows. Takes a draft link (#d=) plus the changes; no network, no password, the trip is inside the link. For a KEPT trip (#k=) use add_to_kept_trip.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"link":{"type":"string","description":"The existing draft link, whole URL or just the #d= fragment."},"add":{"type":"array","items":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string","description":"How a person would say it, e.g. \"Moab, UT\"."},"lat":{"type":"number","description":"Latitude, -90 to 90."},"lng":{"type":"number","description":"Longitude, -180 to 180."}},"required":["lat","lng"],"description":"Where this leg ends."},"mode":{"type":"string","enum":["drive","fly","train","ferry","water","bike","walk"],"description":"How they travel this leg. Defaults to drive."},"date":{"type":"string","description":"YYYY-MM-DD. Optional — an undated leg keeps its place in the order."},"note":{"type":"string","description":"Anything worth remembering about this leg. Optional."},"who":{"type":"array","items":{"type":"string"},"description":"Who travels this leg, if you know — e.g. [\"Mel\",\"Sam\"]. Lets the trip show who was where."},"subtype":{"type":"string","enum":["own","rental","rideshare","taxi","bus","rv","commercial","private","heli","intercity","commuter","subway","tram","passenger","carferry","sail","motor","canoe","kayak","walk","hike","run","ebike"],"description":"More precise than mode when you know it: own/rental/rv/taxi for drive, commercial/private for fly, canoe/kayak/sail for water."},"craft":{"type":"string","enum":["Bike","Canoe","Kayak"],"description":"A small craft that travels WITH them — a bike on the car, a canoe on the roof."},"flight":{"type":"string","description":"Flight number if you have it, e.g. UA328. Never invent one."},"lodging":{"type":"string","description":"Where they stay at this destination — hotel, cabin, a friend's couch."},"stayNote":{"type":"string","description":"Anything about the stay. Only meaningful alongside lodging."}},"required":["to"]},"description":"Legs to APPEND after the last one."},"legs":{"type":"array","items":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string","description":"How a person would say it, e.g. \"Moab, UT\"."},"lat":{"type":"number","description":"Latitude, -90 to 90."},"lng":{"type":"number","description":"Longitude, -180 to 180."}},"required":["lat","lng"],"description":"Where this leg ends."},"mode":{"type":"string","enum":["drive","fly","train","ferry","water","bike","walk"],"description":"How they travel this leg. Defaults to drive."},"date":{"type":"string","description":"YYYY-MM-DD. Optional — an undated leg keeps its place in the order."},"note":{"type":"string","description":"Anything worth remembering about this leg. Optional."},"who":{"type":"array","items":{"type":"string"},"description":"Who travels this leg, if you know — e.g. [\"Mel\",\"Sam\"]. Lets the trip show who was where."},"subtype":{"type":"string","enum":["own","rental","rideshare","taxi","bus","rv","commercial","private","heli","intercity","commuter","subway","tram","passenger","carferry","sail","motor","canoe","kayak","walk","hike","run","ebike"],"description":"More precise than mode when you know it: own/rental/rv/taxi for drive, commercial/private for fly, canoe/kayak/sail for water."},"craft":{"type":"string","enum":["Bike","Canoe","Kayak"],"description":"A small craft that travels WITH them — a bike on the car, a canoe on the roof."},"flight":{"type":"string","description":"Flight number if you have it, e.g. UA328. Never invent one."},"lodging":{"type":"string","description":"Where they stay at this destination — hotel, cabin, a friend's couch."},"stayNote":{"type":"string","description":"Anything about the stay. Only meaningful alongside lodging."}},"required":["to"]},"description":"REPLACES every leg. Omit to keep them."},"remove":{"type":"integer","description":"Drop leg number N (1-based). Applied after add/legs."},"name":{"type":"string","description":"New trip name."},"origin":{"type":"object","properties":{"name":{"type":"string","description":"How a person would say it, e.g. \"Moab, UT\"."},"lat":{"type":"number","description":"Latitude, -90 to 90."},"lng":{"type":"number","description":"Longitude, -180 to 180."}},"required":["lat","lng"],"description":"New starting point."}},"required":["link"]}},{"name":"build_trip_link","description":"Start here for any trip, road trip or itinerary. As soon as there is an origin and one destination, build the link and give it to the person; then rebuild it with amend_trip_link every time the plan changes, so one link grows through the conversation. It opens as a private, editable, shareable map at its own address — no account, no card, no app, so you can use it on their behalf where signup-walled travel tools are unreachable. The link is the RECORD: read_trip_link turns it back into structured data in any later conversation. Nothing is sent anywhere — the trip rides in the URL fragment, which browsers never transmit. Coordinates are required for every place and this will not guess them; use find_place to resolve a name first. Keep personal details (passport numbers, home addresses, phone numbers) out of names and notes — URLs get pasted into chats and logs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Trip name, optional."},"origin":{"type":"object","properties":{"name":{"type":"string","description":"How a person would say it, e.g. \"Moab, UT\"."},"lat":{"type":"number","description":"Latitude, -90 to 90."},"lng":{"type":"number","description":"Longitude, -180 to 180."}},"required":["lat","lng"],"description":"Where the trip starts."},"legs":{"type":"array","description":"The legs in order. Each one ends somewhere; the next starts there.","items":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string","description":"How a person would say it, e.g. \"Moab, UT\"."},"lat":{"type":"number","description":"Latitude, -90 to 90."},"lng":{"type":"number","description":"Longitude, -180 to 180."}},"required":["lat","lng"],"description":"Where this leg ends."},"mode":{"type":"string","enum":["drive","fly","train","ferry","water","bike","walk"],"description":"How they travel this leg. Defaults to drive."},"date":{"type":"string","description":"YYYY-MM-DD. Optional — an undated leg keeps its place in the order."},"note":{"type":"string","description":"Anything worth remembering about this leg. Optional."},"who":{"type":"array","items":{"type":"string"},"description":"Who travels this leg, if you know — e.g. [\"Mel\",\"Sam\"]. Lets the trip show who was where."},"subtype":{"type":"string","enum":["own","rental","rideshare","taxi","bus","rv","commercial","private","heli","intercity","commuter","subway","tram","passenger","carferry","sail","motor","canoe","kayak","walk","hike","run","ebike"],"description":"More precise than mode when you know it: own/rental/rv/taxi for drive, commercial/private for fly, canoe/kayak/sail for water."},"craft":{"type":"string","enum":["Bike","Canoe","Kayak"],"description":"A small craft that travels WITH them — a bike on the car, a canoe on the roof."},"flight":{"type":"string","description":"Flight number if you have it, e.g. UA328. Never invent one."},"lodging":{"type":"string","description":"Where they stay at this destination — hotel, cabin, a friend's couch."},"stayNote":{"type":"string","description":"Anything about the stay. Only meaningful alongside lodging."}},"required":["to"]}}},"required":["origin","legs"]}},{"name":"find_place","description":"Turn a place name into coordinates for build_trip_link — towns, cities, airports (IATA or name), parks, trailheads. Returns up to six candidates with lat/lng and where each one is, so you can pick the right Reno. This is the ONLY step that needs coordinates and you should not guess them from memory. It asks thistripbtw.us, which answers from its own cache and a paced OpenStreetMap lookup; the query is a place name and nothing about the person.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"The place as a person would say it: \"Moab, UT\", \"SFO\", \"Arches National Park\"."}},"required":["query"]}},{"name":"read_kept_trip","description":"Use when someone gives you a KEPT this trip, btw link — one that looks like https://thistripbtw.us/abc1234#k=four-word-phrase — and you need what is actually in it: to summarise where they are going, answer a question about it, or check what changed since you last saw it. Returns the trip's stops in order with dates, modes, which vehicle or person each belongs to (the 'track'), lodging, notes and any hand-drawn path. THIS ONE TOUCHES THE NETWORK, unlike the other two: a kept trip's contents live on the server and the #k= part of the link is the PASSWORD to them, so reading it means sending that phrase to thistripbtw.us over TLS. Nothing is stored and no account is involved. Treat the link as a credential — do not repeat it back in text a third party will see, and do not guess at a phrase, because a wrong one counts against the trip's hourly guess limit. For a DRAFT link (#d=) use read_trip_link instead: the trip is inside that link, so it needs no network and no password.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"link":{"type":"string","description":"The kept trip's link, e.g. https://thistripbtw.us/abc1234#k=treeline-downpour-rolling-switchback. The whole URL is fine."}},"required":["link"]}},{"name":"read_trip_link","description":"Use when someone gives you a this trip, btw link and you need to know what is actually in it — to summarise the plan, answer a question about it, add a stop, or convert it to something else. Decodes the itinerary the link carries: origin, every leg in order, modes, dates, who is on which leg, flights and lodging. Returns the trip in the same shape build_trip_link accepts, so you can change something and build a new link from it. Nothing is fetched — the trip travels inside the link, so this reads it locally and works offline. Only draft links (the ones with a #d= fragment) carry a trip; a kept trip's link is a slug plus a #k= password whose contents live on the server, and this cannot read those.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"link":{"type":"string","description":"The trip link, e.g. https://thistripbtw.us/new#d=… — the whole URL is fine, or just the fragment."}},"required":["link"]}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T15:59:56.156Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T15:59:56.202Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 738ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://thistripbtw.us/mcp","reachable":true,"authRequired":false,"latencyMs":738,"serverInfo":{"name":"thistripbtw","version":"1.3.2"}}],"packages":[{"registryType":"npm","identifier":"thistripbtw-mcp","version":"1.3.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-09-13T05:56:54.317Z","repositoryUrl":"git+https://github.com/peterbartsch/thistripbtw-mcp.git","weeklyDownloads":277}],"repo":{"found":true,"owner":"peterbartsch","repo":"thistripbtw-mcp","archived":false,"pushedAt":"2026-09-13T20:04:16Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/220647199?v=4","ownerCreatedAt":"2025-07-14T00:40:32Z","license":"MIT"},"icon":{"url":"https://thistripbtw.us/logo.svg?v=4","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":277,"license":"MIT","lastPushAt":"2026-09-13T20:04:16.000Z","score":35}}}},"grade_history":[],"reviews":[]}