mcpField
S
simscout

simscout

本地服务
github.com/CloudCorpRecords地图与出行01 周前更新

关于 simscout

simscout 是用于浏览 esimoa 旅行 eSIM 目录的本地 MCP 桥接服务和命令行工具。它将调用转发到托管服务,支持筛选、查看详情、比较方案和列出目的地;不处理结账或付款。

主要功能

  1. 01按旅行条件搜索方案
  2. 02获取方案完整详情
  3. 03比较 2 至 5 个方案
  4. 04列出目的地及最低价格
  5. 05通过文本搜索方案

适用场景

  1. 01按国家和行程时长查找方案
  2. 02按流量、网络或价格筛选
  3. 03购买前比较候选方案
  4. 04浏览有售方案的目的地

MCP 相关

它通过本地 MCP 服务提供 esimoa 托管 MCP 服务的工具,将工具参数转发上游,并原样返回结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-simscout": {
"command": "npx",
"args": [
"-y",
"@reneturcios/simscout"
]
}
}
}
启动命令npx -y @reneturcios/simscout

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/simscout0.1.0
ocighcr.io/cloudcorprecords/simscout:0.1.0

工具

6

收录的工具列表 · 更新于 1 周前

参数类型必填说明
daysinteger否行程天数。返回覆盖至少这么多天(且不会长出太多)的套餐。
langenum否国家/地区名称和套餐页面所用语言。请匹配用户的语言(ko、en、ja、zh-CN、zh-TW、es、fr、ar、vi、th、id、it、de)。ko | en | ja | zh-CN | zh-TW | es | fr | ar | vi | th | id | it | de
sortenum否recommended | price | data | price_per_gb | validityrecommended | price | data | price_per_gb | validity
limitinteger否套餐数量(默认值 5,最多 10)。
five_gboolean否true = 5G 网络。在前 50 个匹配项中检查,因此总数为近似值。
countrystring否目的地国家 — ISO 代码(JP)或任意语言的名称(Japan、일본)。
data_gbnumber否所需的最低流量(GB)。
hotspotboolean否true = 支持热点/网络共享。在前 50 个匹配结果中检查,因此总数为近似值。
networkenum否local = 本地运营商网络(通常更快);roaming = 漫游网络。local | roaming
providerstring否与结果中返回的提供商代码完全一致(例如,来自之前的搜索)。
countriesarray否多国旅行 — 仅限在所有这些国家/地区均可使用的套餐(ISO 代码或名称)。请用此参数代替 country。
data_typeenum否daily = 流量额度每天重置;total = 整个行程共用一个流量额度。daily | total
unlimitedboolean否仅限无限流量套餐。
max_data_gbnumber否最大流量(GB)。
local_numberboolean否true = 仅限包含本地电话号码(可用于通话/SMS)的套餐。
max_price_krwinteger否最高价格(KRW,预算)。
min_price_krwinteger否最低价格(KRW)。
multi_countryboolean否true = 仅限多国(区域)套餐;false = 仅限单国套餐。

详细介绍

simscout

simscout 是一个小型本地桥接工具,连接到 esimoa 托管的 MCP 服务。该服务收录旅行 eSIM 套餐:选择目的地,说明行程时长 和所需流量,目录便会返回符合条件的套餐、以 KRW 计价的 价格,以及每个套餐在 esimoa.com 上的页面链接,用户可在 该页面购买。

该桥接工具不维护自己的目录。它会在本地提供上游服务的 工具列表,内容与从实时端点捕获的内容完全一致,并将每次 工具调用转发给上游,原样返回结果。捕获的全部功能都只用于 读取——搜索、获取单个套餐、比较候选套餐列表和列出目的地—— 其中没有结账或支付工具。

工具

  • search_esims — 搜索指定目的地的目录。 所有筛选条件均为可选:country(ISO 代码或任意语言 的名称,例如 JP 或 Japan)、days(行程天数)、 data_gb / max_data_gb、unlimited、 countries(多国行程,最多 8 个国家)、data_type (daily 或 total)、local_number、network (local 或 roaming)、multi_country、 min_price_krw / max_price_krw、provider、 hotspot、five_g、sort(recommended、price、 data、price_per_gb 或 validity)、limit(1-10, 默认值为 5)和 lang。每个结果都包含一个 id 和套餐页面 url。
  • get_esim — 获取一个套餐的完整详情。必填: id(来自 search_esims)。可选:lang。
  • compare_esims — 并排比较两到五个套餐: 价格、流量、有效期、每 GB 价格、覆盖范围、网络、 热点和本地电话号码,以及在最低价格、流量最多、有效期最长 和每 GB 价格最低这几项中的优胜套餐。必填:ids。 可选:lang。
  • list_countries — 列出所有有套餐出售的目的地,以及每个 国家或地区的套餐数量和最低价格。可选:query(名称或 ISO 筛选条件)和 lang。
  • search — 使用 ChatGPT 深度研究所用的搜索/获取格式进行 全文搜索,例如“Japan 7 days unlimited”。必填:query。 返回供 fetch 使用的 ID。如果可以填写筛选条件,请优先使用 search_esims。
  • fetch — 根据 search 返回的 ID,将一个套餐作为文档 返回。必填:id。对于通过 search_esims 找到的套餐, 请改用 get_esim。

配置

  • ESIMOA_MCP_URL(可选)— 覆盖上游端点。默认值为 https://api.esimoa.com/mcp。(此覆盖机制是本次重建自行 标注的内容。)
  • ESIMOA_API_KEY(可选)— 设置后,每个上游请求都会携带 X-API-Key: <key> 标头(合作伙伴密钥会将合作伙伴的联盟代码 添加到购买链接中)。未设置时,不会发送密钥标头,上游会返回 普通链接。绝不会发送 Authorization 标头。(此转发机制 也是本次重建自行标注的内容;原始功能表面是在不带密钥的情况 下捕获的。)
转发机制

首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话: 发送 JSON-RPC initialize 请求(protocolVersion 为 2025-03-26,clientInfo 名称为 simscout),然后发送 notifications/initialized 通知,再发送携带调用方原样参数的 tools/call 请求。当上游在 initialize 响应中返回 Mcp-Session-Id 标头时,该值会随此会话的每个后续请求发送, 并在进程运行期间重复使用。响应可能是普通 JSON,也可能是 服务器发送事件;两种格式都会读取。

上游的成功结果会原样传递,包括上游设置的任何 isError 标记。 失败情况——JSON-RPC 错误、非 2xx 状态、无法读取的响应,或 无法完成的请求——会作为 isError 结果返回,文本以 simscout error: 开头(此错误呈现方式是本次重建自行标注的 内容)。

命令行界面

每个工具也可以作为子命令调用,并接受一个 JSON 参数字符串 (不需要参数的工具可省略):

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

退出代码:成功时为 0,结果为 isError 时为 1,用法错误时 为 2。

MCP 服务

npx -y @reneturcios/simscout mcp

MCP 客户端配置:

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

Docker

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

容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;其他任何参数都会照常传递给 CLI。

开发

npm install
npm run build
npm test
npm run dev

测试套件完全针对存根 JSON-RPC 上游运行,不会进行实时网络调用。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。