thistripbtw-mcp
Enables AI agents to create persistent, shareable travel trip links by turning a list of legs into a URL that displays the trip on a private map. Supports detailed leg information such as mode, date, note, travelers, and lodging.
README
thistripbtw-mcp
Persistent, shareable travel workspaces for AI agents.
An MCP server that hands someone a trip on a private map. One tool: it turns a list of legs into a URL. The person opens it and their trip is already drawn on a real map — free, editable, theirs.
→ 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 (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.
Or run the file yourself, if you would rather read the code than trust a host. Node 18+, no dependencies, no install step:
curl -O https://thistripbtw.us/mcp/thistripbtw-mcp.mjs
claude mcp add thistripbtw -- node ./thistripbtw-mcp.mjs
<details> <summary>Claude Desktop config</summary>
{
"mcpServers": {
"thistripbtw": {
"command": "node",
"args": ["/absolute/path/to/thistripbtw-mcp.mjs"]
}
}
}
</details>
Check it before you trust it — this touches no network and needs no config:
node thistripbtw-mcp.mjs --selftest
Both paths are the same single tool and produce byte-identical links. The hosted one is tested against this file on every build, so the two cannot drift apart.
The tool
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.
{
"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 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 it sends
Nothing. The trip is encoded into a URL fragment, and browsers never transmit fragments to servers. The local server makes no network request at all. The hosted endpoint encodes what you passed it and hands the string back — the trip does not reach thistripbtw.us even when the person opens the link, unless they later choose to buy it.
Using it well
- Give the person the link. Don't open it for them and don't decide for them. It's their trip.
- Keep personal details out of it. Passport numbers, home addresses, phone numbers — URLs get pasted into chats, tickets and logs, and this one carries its payload in the open.
- Say what you built, in a sentence. "Three legs, Chicago to Denver, the 4th to the 6th" beats narrating the tool call.
- Never invent a departure time. If you did not look a flight up, leave
flightout.
Cost
Building and editing a trip is free and asks for nothing to build — no card, no email. If the person wants it to last, a one-time payment from $2.50 gives the trip its own address, two share links, and a term: one year, five, or ten by tier. Nothing is sold as permanent, and every trip states its end date. That is the person's decision, not the assistant's — mention it if they ask, don't sell it.
Reading it
One file, zero dependencies, under three hundred lines. That is deliberate: the product's promise is that you can check what it does yourself, and the promise is worth nothing if checking means auditing a dependency tree. It speaks MCP's JSON-RPC over stdio directly.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。