TourScanner

io.github.TourScanner-org由 GitHub 帳號 TourScanner-org 發布v1.0.0更新於 Oct 30, 2026

Search, check availability and book tours and activities worldwide.

已驗證Streamable HTTP可網頁執行位置與生活商業與電商

概覽

AI 產生的概覽

TourScanner 遠端 MCP 伺服器,讓助理搜尋全球旅遊與活動、查詢即時可訂狀況,並透過 Stripe 結帳連結發起預訂。

可以做什麼
  • 搜尋約百萬筆來自 14 家供應商的旅遊、活動與景點,支援 facet 篩選與分頁
  • 查詢指定活動與日期的即時可訂時段與價格
  • 取得票種選項與預訂所需問題
  • 建立保留並回傳 Stripe 結帳連結,查詢預訂狀態
  • 依活動回報是否可由平台直接預訂,或需轉交合作夥伴
適用情境
適合讓助理協助旅客尋找某城市的遊玩行程、比較即時價格與時段,並準備附付款連結的預訂。也適合需要供應商即時可訂資料而非靜態目錄的行程規劃工具。
執行需求
需要 TourScanner API 金鑰,透過 X-API-Key 請求標頭送出;金鑰須以電子郵件申請、人工核發。伺服器為遠端端點,不需本機執行環境或安裝套件。需要能連線至 TourScanner 主機的網路。
安裝前請注意
金鑰屬機密,置於 X-API-Key 請求標頭。在正式主機上,預訂呼叫會建立真實保留與真實 Stripe 結帳,確認步驟會扣款,可能產生實際支出。保留 30 分鐘後失效。搜尋結果與供應商即時時段可能不一致,且並非所有供應商都由平台直接預訂。觸發速率限制會回傳 429 與 Retry-After。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "tourscanner": {
      "type": "http",
      "url": "https://tourscanner.ai/api/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

TourScanner AI guide

How to use the TourScanner API: search tours and activities, check live availability, and book them. It also covers the MCP server, if you want an AI agent to do the same thing.

It's a REST API (JSON over HTTPS, OpenAPI 3.1) for tours, activities and attractions worldwide. The catalog is about a million activities from 14 providers, behind one set of endpoints. This repo is the practical side of the docs: what to call, in what order, and the mistakes that cost people an afternoon.

Reference docs live at tourscanner.ai/docs, and the machine-readable spec is at tourscanner.ai/openapi.json.

Get a key

Keys are issued by hand. Email [email protected] with what you're building and which cities matter to you. Send it in the X-API-Key header on every request. Without one you get a 401.

sh
export TOURSCANNER_API_KEY=your_key

First request

sh
curl -s "https://tourscanner.ai/api/search/activities?city=rome&q=colosseum&limit=3" \  -H "X-API-Key: $TOURSCANNER_API_KEY"

You get back activities, plus total, page and some facets. Each activity has an id, a name, a rating, and a price of the form { "currency": "EUR", "price": 5400 }.

Prices are integers in minor units, so 5400 is 54.00. This applies to the min_price and max_price filters too.

The booking flow

Five calls, in this order:

  1. GET /api/search/activities to find something.
  2. POST /api/availability/slots for the real slots and prices on a date.
  3. POST /api/booking/options for the ticket variants and booking questions.
  4. POST /api/booking/hold reserves the slot and returns a Stripe checkoutUrl. The card is authorized, not charged.
  5. POST /api/booking/confirm after the customer pays. This confirms with the supplier and captures the payment.

Details and request bodies are in docs/booking.md. A runnable version of steps 1 to 4 is in examples/node/book.mjs.

Examples

Node, Python, Ruby, Go and curl. Each does the same three things: search, check availability, and run the booking flow up to the Stripe link. None needs a package beyond the language's standard library (Node 18 or newer).

searchavailabilitybook
Nodenode examples/node/search.mjs rome colosseumnode examples/node/availability.mjs 12345 2026-12-01OPTION_CODE=... node examples/node/book.mjs 12345 2026-12-01
Pythonpython3 examples/python/search.py rome colosseumpython3 examples/python/availability.py 12345 2026-12-01OPTION_CODE=... python3 examples/python/book.py 12345 2026-12-01
Rubyruby examples/ruby/search.rb rome colosseumruby examples/ruby/availability.rb 12345 2026-12-01OPTION_CODE=... ruby examples/ruby/book.rb 12345 2026-12-01
Gogo run . search rome colosseumgo run . availability 12345 2026-12-01OPTION_CODE=... go run . book 12345 2026-12-01

Run the Go ones from examples/go. The curl scripts are in examples/curl.

They read your key from TOURSCANNER_API_KEY. Set TOURSCANNER_BASE_URL to point them at a different host. Run book without OPTION_CODE first: it prints the options and stops, so you can pick a code. On the production host a full book run places a real hold and creates a real Stripe checkout.

Missing your language? The API is plain JSON over HTTPS, so any HTTP client works. The OpenAPI spec above will generate a client for most languages.

For AI agents

There's a remote MCP server at https://tourscanner.ai/api/mcp. It exposes 12 tools covering search, availability, checkout links, and booking status. Setup for Claude, Cursor, VS Code and others is in docs/mcp.md.

Things that trip people up

  • Cents, not euros. Every price field is in minor units.
  • productOptionCode comes from booking/options. The hold fails without it, and the codes differ per activity.
  • adults is required in passengers, and it has to be at least 1.
  • Phone numbers need the country code, like +442079460000. Anything else is rejected.
  • Stripe sessions expire after 30 minutes. After that the hold is released.
  • Check availability right before booking. Search results come from our catalog, and slots come live from the supplier. They can disagree.
  • Not every provider books in-house. For the others you hand the traveller off to the partner instead. Adding providers=2,3,7 to a search limits it to the ones we book directly. The MCP get_activity tool reports this per activity as bookableByUs.
  • Rate limits return 429 with a Retry-After header. Honor it.

Environments

The production host places real holds and real Stripe checkouts. If you want a sandbox on provider test rails, ask for one when you get your key.

License

MIT for the code in this repo. The catalog content you get from the API is covered by the terms.

來源:README.md,提交 534e327

工具

0
該伺服器需要 API 金鑰等憑證,因此 SourceWeft 無法在沒有憑證的情況下讀取其工具,也未收錄。

版本歷史

1
  1. v1.0.0最新Oct 30, 2026

評分

已滿足適用檢查項的 85%

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

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

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

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