Persistent, shareable travel workspaces for AI agents. Six MCP tools: hand someone a complete itinerary as a private map link, and read it back. No API key, no account, no network call — the trip rides in the link's fragment. Hosted endpoint, or npx.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add thistripbtw-mcp -- npx -y thistripbtw-mcp{
"mcpServers": {
"thistripbtw-mcp": {
"command": "npx",
"args": ["-y", "thistripbtw-mcp"]
}
}
}MCP Servers overview
# thistripbtw-mcp
[](https://glama.ai/mcp/servers/peterbartsch/thistripbtw-mcp)
Persistent, shareable travel workspaces for AI agents.
Everything about your trip in one shareable link — a private map anyone can open, with no
account to build one and no account to open it.
An MCP server that hands someone that link, grows it as the plan changes, and reads it back.
**Six tools, and the first one is the point: build the link as soon as there is an origin and one
destination, then amend it every time the plan moves.** One resolves a place name to coordinates,
one turns legs into a URL, one changes a URL you already built, one decodes a URL into the legs,
one reads a trip the person has bought, and one adds a stop to it. The person opens it and their
trip is already drawn on a real map — free, editable, theirs.
**→ [thistripbtw.us](https://thistripbtw.us)** — the human side, and the thing that pays for this.
The server is free and asks for nothing; the site's one-time paid tiers fund it rather than an ad
business or your data.
*Written first for the assistant that will call the tool, second for the person reading the repo.
If you are that person: the site's source is
[thistripbtw](https://github.com/peterbartsch/thistripbtw) (AGPL-3.0). This server is MIT and
standalone on purpose — embed it wherever you like.*
## Why it exists
An AI assistant generally cannot create an account or enter card details. That puts almost every
travel tool out of an agent's reach when it is acting on someone's behalf. This one asks for
nothing, so it stays reachable.
## Connect
**A URL, if your client takes one.** Nothing to install, nothing to keep updated:
```
https://thistripbtw.us/mcp
```
Streamable HTTP, no key, no sign-up to start. That is the whole configuration.
**A note on gateways.** Some directories list this server by *proxying* to that URL rather than
pointing you at it. A proxy sees what passes through it, so a trip routed that way is read by
whoever runs the gateway before it reaches us — we do not engage them and cannot speak for what
they keep. Use the URL directly, or run the file yourself, if that matters to you.
**Or run it locally from npm.** Node 18+, no dependencies, nothing to keep updated:
```bash
claude mcp add thistripbtw -- npx -y thistripbtw-mcp
```
**Or fetch the one file and run that**, if you would rather read the code than trust either a host
or a package registry. This is the whole install:
```bash
curl -O https://thistripbtw.us/mcp/thistripbtw-mcp.mjs
claude mcp add thistripbtw -- node ./thistripbtw-mcp.mjs
```
<details>
<summary>Claude Desktop config</summary>
```json
{
"mcpServers": {
"thistripbtw": {
"command": "npx",
"args": ["-y", "thistripbtw-mcp"]
}
}
}
```
Swap to `"command": "node"` with `"args": ["/absolute/path/to/thistripbtw-mcp.mjs"]` if you fetched
the file instead.
</details>
Check it before you trust it — the self-test touches no network and needs no config:
```bash
npx -y thistripbtw-mcp --selftest
```
Both paths carry the same six tools and produce byte-identical links. The hosted one is tested
against this file on every build — same tool list, same output — so the two cannot drift apart.
Step-by-step, with a worked example in JavaScript and Python:
**[thistripbtw.us/tutorials](https://thistripbtw.us/tutorials)**
## The tools
**Start with the link, not after the plan.** The description that shipped through 1.2.0 opened
*"Use when someone has planned… a trip"*, and a model read that as a finishing step: it researched
for four turns and built the link last, when the person asked. That is on us, not the model. 1.3.0
rewrote every description so the trigger is in the first eighty characters — all a deferred tool
gets to show — and added the two tools that make "first" natural: `find_place`, so coordinates
are looked up rather than remembered, and `amend_trip_link`, so one link grows through a
conversation instead of a new one being thrown away each turn.
**`find_place`** — a place name in, up to six candidates out, each with coordinates and where it
is, so you can pick the right Reno. Towns, cities, airports by name or IATA code, parks. This is
the only step that needs the network besides the kept-trip tools; it asks thistripbtw.us, which
answers from its own cache in front of a paced OpenStreetMap lookup. A place name is not personal
data, and nothing about the person is sent.
**`amend_trip_link`** — a draft link plus changes, a new link back. `add` appends legs, `legs`
replaces them all, `remove` drops leg N, `name` and `origin` do what they say. No network, no
password: the trip is inside the link. Tell the person the new link replaces the old one.
**`add_to_kept_trip`** — one stop, added to a trip the person has KEPT, on their behalf: *"add the
hotel to the trip"*, *"we're stopping at Fisher Towers on the way."* Needs their EDIT phrase; a
view phrase can read and is told it cannot write. Same network rule as `read_kept_trip` below, and
the same warning: the link is a credential.
**`read_trip_link`** — a link in, the itinerary out. Origin, every leg in order, modes,
dates, who is on which leg, flights and lodging. It returns the trip in the shape
`build_trip_link` *accepts*, so reading a trip, changing one thing and building a new link is
three lines and no translation. Nothing is fetched — the trip is inside the link, so this works
offline like everything else here. Only draft links (`#d=`) carry a trip; a kept trip's
`/{slug}/#k=` fragment is a password and its contents live on the server, which the tool says
rather than failing obscurely.
**`read_kept_trip`** — a KEPT trip's link in, its itinerary out. Use it when somebody hands you
`https://thistripbtw.us/abc1234#k=four-word-phrase` and you need what is in it. Returns the stops
in order with dates, modes, lodging, notes, any hand-drawn path, and the **track** each belongs
to — which vehicle or person, because a trip where two cars separate and rejoin cannot be written
as one sequence without becoming false.
**This is the one tool that uses the network, and it cannot be otherwise.** A bought trip's
contents live on the server; the `#k=` fragment is the password to them, not the payload. So
reading one sends that phrase to thistripbtw.us over TLS. It stores nothing and needs no key, and
it returns the stops rather than the raw server response — the per-trip basemap token and the
member roster stay behind, because neither is itinerary. Two things to hold: **treat a kept link
as a credential** (do not echo it into text a third party sees), and **never guess a phrase** —
a wrong one counts against that trip's hourly limit, so the tool makes exactly one attempt and
tells you it was refused. Anything sealed for somebody else comes back with empty text.
**`build_trip_link`** — an origin plus legs in order, returns a URL. Only `origin` and one leg with a
`to` are required. Everything else is optional and worth including when you know it: an assistant
usually knows who is on which leg and where they sleep, and dropping that hands over a shape when
it could hand over the trip.
```jsonc
{
"name": "Chicago to Denver", // optional, 60 chars
"origin": { "name": "Chicago, IL", "lat": 41.8781, "lng": -87.6298 },
"legs": [
{
"to": { "name": "Omaha, NE", "lat": 41.2565, "lng": -95.9345 },
"mode": "drive", // drive | fly | train | ferry | water | bike | walk
"date": "2026-09-04", // YYYY-MM-DD. An undated leg keeps its place in the order
"note": "swap drivers here", // 400 chars
"who": ["Mel", "Sam"], // up to 8 — lets the trip show who was where
"subtype": "rental", // own·rental·rideshare·taxi·bus·rv (drive), commercial·private
// (fly), intercity·commuter (train), sail·canoe·kayak (water)
"craft": "Bike", // Bike | Canoe | Kayak — a small craft travelling WITH them
"flight": "UA328", // only if you actually know it. Never invent one
"lodging": "Hotel Maverick", // where they sleep after this leg
"stayNote": "late check-in" // only meaningful alongside lodging
}
]
}
```
**Note the shape.** `lodging` and `stayNote` are **flat on the leg**. The field table on
[/for-agents](https://thistripbtw.us/for-agents) documents the `#d=` payload you would build by
hand, which nests them under `stay` — the tool assembles that for you. Passing a nested `stay` to
the tool loses the lodging silently.
**Coordinates are required. This will not guess.** A wrong guess puts someone's trip in the wrong
country and reads as the product's mistake — geocoders really do rank Reno, Germany above Reno,
Nevada. Resolve place names to coordinates first, then call.
Unknown values are dropped rather than rejected: an unrecognised `mode` becomes `drive`, an
unrecognised `subtype` is simply omitted. A trip that arrives beats a tool call that errors over
one word. Limits: 40 legs, names 120 chars, notes 400.
## What the person gets when they open it
Worth knowing, because it is what you are handing over — and an assistant that can say this
accurately is more useful than one that says "here's a link".
The link opens on a real map with the trip already drawn. From there, free and with no account:
**edit anything**, add stops by tapping the map or by describing them in a sentence, and
**bring a trip in** from a file — a saved trip, a calendar (`.ics`), or a map file (`.gpx`,
`.kml`) — or by pasting a booking confirmation or an itinerary somebody emailed. **Print it**,
which is the only artifact that costs nothing.
If they keep it (from $2.50, one payment), the trip gets its own address and two share links,
and gains: **a document view** that reads as an itinerary rather than an interface and priWhat people ask about thistripbtw-mcp
What is peterbartsch/thistripbtw-mcp?
+
peterbartsch/thistripbtw-mcp is mcp servers for the Claude AI ecosystem. Persistent, shareable travel workspaces for AI agents. Six MCP tools: hand someone a complete itinerary as a private map link, and read it back. No API key, no account, no network call — the trip rides in the link's fragment. Hosted endpoint, or npx. It has 0 GitHub stars and its last recorded update is dated 2026-09-28.
How do I install thistripbtw-mcp?
+
You can install thistripbtw-mcp by cloning the repository (https://github.com/peterbartsch/thistripbtw-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is peterbartsch/thistripbtw-mcp safe to use?
+
Our security agent has analyzed peterbartsch/thistripbtw-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains peterbartsch/thistripbtw-mcp?
+
peterbartsch/thistripbtw-mcp is maintained by peterbartsch. The last recorded GitHub activity is dated 2026-09-28, with 0 open issues.
Are there alternatives to thistripbtw-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy thistripbtw-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/peterbartsch-thistripbtw-mcp)<a href="https://claudewave.com/repo/peterbartsch-thistripbtw-mcp"><img src="https://claudewave.com/api/badge/peterbartsch-thistripbtw-mcp" alt="Featured on ClaudeWave: peterbartsch/thistripbtw-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.