Simscout

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 7, 2026

Compare travel eSIM plans by country, trip length and data, with live catalog prices.

概覽

AI 產生的概覽

連接 esimoa 旅遊 eSIM 目錄的本機橋接服務,讓助理依目的地、行程天數與流量搜尋、比較並檢視 eSIM 方案。

可以做什麼
  • 依國家、行程天數、流量、無限或每日流量、本地號碼、網路類型、熱點、5G、價格與供應商搜尋 eSIM 方案,並支援排序與結果數量限制
  • 依 id 取得單一方案的完整詳情,包括方案頁面連結
  • 將 2 至 5 個方案並排比較,並指出在價格、流量、有效期限與每 GB 價格上較優的方案
  • 列出可購買 eSIM 的國家/地區,含方案數量與最低價格(韓元)
  • 以 ChatGPT 深度研究所用的 search/fetch 格式進行自由文字搜尋,並將單一方案以文件形式取得
適用情境
適合在規劃出遊時,讓助理針對目的地、行程天數與流量需求篩選或比較旅遊 eSIM 方案,並查看目前目錄價格。它只讀取目錄,購買需在供應商網站上完成。
執行需求
以本機程序執行,可透過 npx(需 Node.js)或提供的 Docker 映像啟動;需要能連線至上游 esimoa MCP 端點的網路。可選設定 ESIMOA_MCP_URL 覆寫端點,設定 ESIMOA_API_KEY 以送出 X-API-Key 標頭(合作夥伴金鑰會在購買連結中加入推廣碼)。不需帳號。
安裝前請注意
所有工具呼叫都會轉送到第三方端點,查詢內容會離開本機。工具本身僅讀取,但方案連結指向外部網站,購買會在那裡發生;使用合作夥伴 API 金鑰會讓購買連結帶有推廣碼。上游錯誤會以錯誤結果回傳,而非拋出例外。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Simscout,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

simscout

simscout is a small local bridge to esimoa's hosted MCP server, which catalogues travel eSIM plans: pick a destination, say how long the trip is and how much data you need, and the catalog answers with matching plans, their prices in KRW, and a link to each plan's page on esimoa.com where a purchase would happen.

The bridge keeps no catalog of its own. It serves the upstream server's tool list locally, exactly as captured from the live endpoint, and forwards each tool call upstream, returning the result untouched. The whole captured surface only reads — searching, fetching one plan, comparing a shortlist and listing destinations — and there is no checkout or payment tool in it.

Tools

  • search_esims — search the catalog for a destination. All filters are optional: country (ISO code or name in any language, e.g. JP or Japan), days (trip length), data_gb / max_data_gb, unlimited, countries (multi-country trips, up to 8), data_type (daily or total), local_number, network (local or roaming), multi_country, min_price_krw / max_price_krw, provider, hotspot, five_g, sort (recommended, price, data, price_per_gb or validity), limit (1-10, default 5) and lang. Each result carries an id and a plan page url.
  • get_esim — the full details of one plan. Required: id (from search_esims). Optional: lang.
  • compare_esims — two to five plans side by side: price, data, validity, price per GB, coverage, network, hotspot and local phone number, plus which plan wins each of lowest price, most data, longest validity and lowest price per GB. Required: ids. Optional: lang.
  • list_countries — every destination where plans are sold, with the plan count and the lowest price per country. Optional: query (name or ISO filter) and lang.
  • search — free-text search in the search/fetch format used by ChatGPT deep research, e.g. "Japan 7 days unlimited". Required: query. Returns ids for fetch. When you can fill filters, prefer search_esims.
  • fetch — one plan as a document, by an id returned from search. Required: id. For plans found with search_esims, use get_esim instead.

Configuration

  • ESIMOA_MCP_URL (optional) — override the upstream endpoint. Defaults to https://api.esimoa.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)
  • ESIMOA_API_KEY (optional) — when set, every upstream request carries an X-API-Key: <key> header (a partner key adds the partner's affiliate code to buy links). When it is not set, no key header is sent and the upstream returns plain links. No Authorization header is ever sent. (This forwarding is also a labelled reconstruction; the original surface was captured keyless.)

Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name simscout), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with simscout error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):

bash
npx @reneturcios/simscout search_esims '{"country":"JP","days":7,"sort":"price"}'npx @reneturcios/simscout get_esim '{"id":"plan-9"}'npx @reneturcios/simscout compare_esims '{"ids":["plan-9","plan-11"]}'npx @reneturcios/simscout list_countries '{"query":"Japan"}'npx @reneturcios/simscout --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

bash
npx -y @reneturcios/simscout mcp

MCP client config:

json
{  "mcpServers": {    "simscout": {      "command": "npx",      "args": ["-y", "@reneturcios/simscout", "mcp"]    }  }}

Docker

bash
docker run -i ghcr.io/cloudcorprecords/simscoutdocker run --rm ghcr.io/cloudcorprecords/simscout --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

bash
npm installnpm run buildnpm testnpm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

來源:README.md,提交 92a09b2

工具

6

search_esims

Search & compare travel eSIMs

Search the travel eSIM catalog of esimoa (이심모아) and compare plans for a destination. Filter by trip length, data, unlimited or daily data, local phone number, local or roaming network, multi-country coverage, price, provider, hotspot and 5G. Sort by "recommended" (esimoa’s default order), "price" (lowest first), "data" (most data first), "price_per_gb" or "validity" (longest first). Each result includes its `id` (for get_esim and compare_esims) and a `url` to the plan page on esimoa.com. Prices are in KRW.

輸入參數dayslangsortlimitfive_gcountrydata_gbhotspotnetworkprovidercountriesdata_type另有 6 個

get_esim

Get eSIM plan details

Get the details of one esimoa (이심모아) eSIM plan by id (from search_esims), including its plan page `url`.

輸入參數id必填lang

compare_esims

Compare eSIM plans side by side

Compare 2 to 5 esimoa (이심모아) eSIM plans side by side by id (ids come from search_esims): price, data, validity, price per GB, coverage, network, hotspot and local phone number. Returns which plan has the lowest price, most data, longest validity and lowest price per GB, and each plan page `url` on esimoa.com. Prices are in KRW.

輸入參數ids必填lang

list_countries

List eSIM destinations

List countries where esimoa (이심모아) sells eSIMs, with the number of plans and the lowest price (KRW). Optionally filter by name.

輸入參數langquery

fetch

Fetch an esimoa eSIM

Fetch one esimoa (이심모아) eSIM plan as a document by id returned from search (ChatGPT deep research format). For plans found with search_esims, use get_esim.

輸入參數id必填

版本歷史

1
  1. v0.1.0最新Nov 4, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分