My Next Adventure

cloud.mynextadventure由 mynextadventure.cloud 發布官方發布者v1.0.1更新於 Oct 24, 2026

Create trips, compare variants side by side, and add accommodation, transport and event options.

已驗證Streamable HTTP可網頁執行位置與生活效率與工作流

概覽

AI 產生的概覽

遠端 MCP 伺服器,讓助理在 MyNextAdventure 中建立與編輯旅行:方案變體、目的地、航班、住宿與活動。

可以做什麼
  • 查詢目前帳號資訊,列出旅行或旅行目標
  • 讀取完整旅行,包含方案變體、目的地、選項與活動
  • 建立與更新旅行、變體與目的地,並調整停靠順序
  • 新增住宿、交通與當地移動選項,並進行選擇或修改
  • 新增、編輯、切換或刪除活動,並產生公開唯讀分享連結
適用情境
適合在 MyNextAdventure 規劃旅行、希望助理透過對話草擬行程、比較多個方案變體、蒐集飯店與航班選項並整理活動的情境。
執行需求
遠端 Streamable HTTP 端點,無需本機安裝。需要 MyNextAdventure 帳號,並在應用程式設定中建立 API 金鑰,透過 Authorization Bearer 標頭或 X-API-Key 標頭送出。另有本機 stdio 模式,使用 MNA_API_KEY 變數。
安裝前請注意
API 金鑰擁有該帳號的全部權限,助理可建立、修改並永久刪除旅行、變體、目的地、選項與活動;刪除整個變體需明確確認。分享連結會以唯讀方式公開該旅行。部分工具會透過 Google Places 等第三方 API 解析地點,相關查詢會送到 MyNextAdventure 之外。金鑰外洩時請在應用程式中撤銷。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 My Next Adventure,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/cloud.mynextadventure%2Ftrip-planner/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "my-next-adventure": {
      "type": "http",
      "url": "https://mcp.mynextadventure.cloud/mcp"
    }
  }
}

README

MyNextAdventure MCP server

A remote Model Context Protocol server that lets an AI assistant plan trips in MyNextAdventure — create a trip, lay out the itinerary, propose flights and hotels, add things to do, and share the result.

It runs as a stateless Cloudflare Worker and is a thin, authenticated proxy in front of the MyNextAdventure public API: it holds no trip data of its own, and forwards every call to the API under the caller's own API key.

  • Production: https://mcp.mynextadventure.cloud/mcp (Streamable HTTP)
  • Upstream API: https://api.mynextadventure.cloud (v1 public API)

Authentication

Every request needs a MyNextAdventure API key. Create one in the app under Settings → API keys, then send it as either:

  • Authorization: Bearer <api-key> — what most MCP clients send, and what mcp-remote does, or
  • X-API-Key: <api-key> — for clients that only let you set custom headers.

The worker forwards it to the API as X-API-Key. Requests without a key get a 401. Whatever the key can do, the assistant can do: keys are per-user, so the assistant only ever sees that user's trips.

Where your key lives. The server is stateless: your key is read from the headers of each request, used to make that one call to the MyNextAdventure API, and never stored — there is no session storage and no Durable Object holding it between requests. It is never logged and is not shared between requests or users. Revoke a key any time in the app under Settings → API keys.

Tools

24 tools, covering the operations conversational planning actually needs. Each one is a curated view over a MyNextAdventure API operation — see Regenerating the tools.

ToolWhat it does
whoamiWhich account the API key belongs to (handy for checking the connection).
list_tripsList the user's trips; filter by status (planning, ready, finished, cancelled).
get_tripOne trip in full — variants, destinations, options, events. Needed before any edit.
create_tripCreate a new, empty trip.
update_tripRename, set a cover photo, or move the trip through its lifecycle.
create_trip_share_linkCreate/refresh a public read-only share link.
create_variantAdd an alternative plan (dates live here: exact or flexible).
duplicate_variantCopy a variant with everything in it.
update_variantRename a variant, change its dates or notes.
select_variantMark a variant as the chosen plan.
add_destinationAdd a stop to a variant, in itinerary order.
update_destinationChange a stop's place name, dates or notes.
reorder_destinationsReorder the stops in a variant.
add_accommodation_optionPropose a place to stay at a destination.
add_transport_optionPropose a way of getting to a destination.
add_getting_around_optionPropose local mobility (public transport, rental car, …).
update_destination_optionEdit an existing option of any of the three kinds.
select_destination_optionSelect — or, with no optionId, deselect — an option.
add_eventAdd an activity (museum, concert, restaurant, tour) to a variant.
update_eventEdit an activity.
toggle_eventFlip an activity between committed and "just an idea".
delete_trip_itemPermanently delete a variant, destination, option or event. Deleting a whole variant additionally requires confirm: true.
list_goalsList the user's travel goals / bucket list.
add_goalAdd a goal from a name or a URL.

The server also ships MCP instructions describing the data model (trip → variants → destinations → options, with events on the variant) and the usual order of operations, so a client does not have to guess the workflow.

Not exposed yet, though the API supports them: collaborator access management and invites, voting, collections, invite tokens, goal↔trip linking, API key management, and trip deletion.

Tool annotations

Every tool publishes a human-readable title (also as annotations.title; set in scripts/tool-manifest.ts, required by the Claude connectors directory) and all four MCP ToolAnnotations hints on tools/list, so clients can tell at a glance what is safe to run unattended:

HintTrue for
readOnlyHintThe 4 lookups: whoami, list_trips, get_trip, list_goals. The other 20 write.
destructiveHintdelete_trip_item only. Everything else adds records or edits fields in place.
idempotentHintThe update_* / select_* tools, reorder_destinations, create_trip_share_link (the API returns the existing token) and delete_trip_item. False for every add_*/create_* — a second call adds a second record — and for toggle_event, which flips a flag.
openWorldHintThe 8 tools whose request can reach a third-party API: the three read tools (Kinde profiles, Google Places, currency conversion) plus add_accommodation_option, add_transport_option, add_event, update_destination_option and update_event, which resolve a googlePlaceId through Google Places when one is supplied. The rest only touch MyNextAdventure storage.

The spec's defaults are the pessimistic ones (destructiveHint and openWorldHint both default to true), so the manifest requires all four to be stated per tool rather than inherited. test/annotations.test.ts holds the expected classification tool by tool and cross-checks readOnlyHint against the HTTP verb each tool actually issues.

Connecting

Claude Desktop

Settings → Developer → Edit Config, then add:

json
{  "mcpServers": {    "mynextadventure": {      "command": "npx",      "args": [        "mcp-remote",        "https://mcp.mynextadventure.cloud/mcp",        "--header",        "Authorization: Bearer ${MNA_API_KEY}"      ],      "env": { "MNA_API_KEY": "your-api-key" }    }  }}

Restart Claude Desktop; the tools appear under the connector.

claude.ai / Claude Code

Add a custom connector pointing at https://mcp.mynextadventure.cloud/mcp and set the Authorization: Bearer <api-key> header. From Claude Code:

bash
claude mcp add --transport http mynextadventure https://mcp.mynextadventure.cloud/mcp \  --header "Authorization: Bearer <api-key>"

ChatGPT

Settings → Connectors → Add custom connector, MCP server URL https://mcp.mynextadventure.cloud/mcp, authentication "custom header" with X-API-Key: <api-key> (or Authorization: Bearer <api-key>).

Any other MCP client

Streamable HTTP at /mcp. GET / returns a small JSON health document with the endpoint and tool count.

Local stdio

The same tools over stdio, for clients that launch a subprocess, with the key in MNA_API_KEY. Glama's build check runs this behind mcp-proxy.

bash
npm ciMNA_API_KEY=<api-key> npm run start:stdio

Development

bash
npm installnpm run dev              # wrangler dev on http://localhost:8787npm test                 # vitest: request building, schemas, generator freshnessnpm run type-check       # tsc --noEmitnpm run generate:tools   # regenerate src/generated/tools.ts from the OpenAPI specnpx tsx scripts/smoke.ts # drive the MCP protocol against localhost:8787

scripts/smoke.ts performs a real handshake (initialize → tools/list → one tools/call), reading the API key from $MNA_API_KEY or ~/.config/mna/credentials. It refuses to call mutating tools unless --force is passed. To exercise write tools without touching real data, point the worker at a local mock:

bash
npx wrangler dev --var MNA_API_BASE_URL:http://localhost:8899

Regenerating the tools

Tool schemas are generated, not hand-written:

spec/openapi-v1.json          (the API's OpenAPI snapshot)        +scripts/tool-manifest.ts      (which operations become tools; names, descriptions, annotations)        ↓  scripts/generator.tssrc/generated/tools.ts        (committed; zod input schemas, annotations + request builders)

To add or change a tool, edit scripts/tool-manifest.ts and run npm run generate:tools. Never edit src/generated/tools.ts by hand — a test fails if it drifts from the spec.

A manifest entry names one API operation, or groups several body-less operations behind a discriminator argument (delete_trip_item's target, select_destination_option's action) to keep the tool count down. Path params can be renamed (id → tripId), query params can be narrowed to enums, and descriptions can be overridden — everything else, including the request-body schemas, comes from the spec.

Each entry must also carry annotations (all four MCP hints; see Tool annotations). TypeScript enforces this, so a new tool cannot be added without classifying it, and test/annotations.test.ts checks the result against an expected table.

Deployment

npm run deploy (wrangler) — production only, so it is gated on a maintainer; CI never deploys this worker.

Development

npm cinpm run type-checknpm test        # includes a drift test: src/generated/tools.ts must match the generator outputnpm run dev     # wrangler dev

Tools are generated from the vendored OpenAPI snapshot in spec/openapi-v1.json (canonical live spec: https://api.mynextadventure.cloud/api/v1/openapi.json) via scripts/generate-tools.ts. Regenerate after refreshing the snapshot.

This repo is the deployable source for mcp.mynextadventure.cloud. Development also happens in the My Next Adventure monorepo and is synced here on release. Issues and PRs welcome.

License

MIT

來源:README.md,提交 343f2ef

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

2
  1. v1.0.1最新Oct 5, 2026
  2. v1.0.0Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分