关于 simscout
simscout 是用于浏览 esimoa 旅行 eSIM 目录的本地 MCP 桥接服务和命令行工具。它将调用转发到托管服务,支持筛选、查看详情、比较方案和列出目的地;不处理结账或付款。
主要功能
- 01按旅行条件搜索方案
- 02获取方案完整详情
- 03比较 2 至 5 个方案
- 04列出目的地及最低价格
- 05通过文本搜索方案
适用场景
- 01按国家和行程时长查找方案
- 02按流量、网络或价格筛选
- 03购买前比较候选方案
- 04浏览有售方案的目的地
MCP 相关
它通过本地 MCP 服务提供 esimoa 托管 MCP 服务的工具,将工具参数转发上游,并原样返回结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| days | integer | 否 | 行程天数。返回覆盖至少这么多天(且不会长出太多)的套餐。 |
| lang | enum | 否 | 国家/地区名称和套餐页面所用语言。请匹配用户的语言(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 |
| sort | enum | 否 | recommended | price | data | price_per_gb | validityrecommended | price | data | price_per_gb | validity |
| limit | integer | 否 | 套餐数量(默认值 5,最多 10)。 |
| five_g | boolean | 否 | true = 5G 网络。在前 50 个匹配项中检查,因此总数为近似值。 |
| country | string | 否 | 目的地国家 — ISO 代码(JP)或任意语言的名称(Japan、일본)。 |
| data_gb | number | 否 | 所需的最低流量(GB)。 |
| hotspot | boolean | 否 | true = 支持热点/网络共享。在前 50 个匹配结果中检查,因此总数为近似值。 |
| network | enum | 否 | local = 本地运营商网络(通常更快);roaming = 漫游网络。local | roaming |
| provider | string | 否 | 与结果中返回的提供商代码完全一致(例如,来自之前的搜索)。 |
| countries | array | 否 | 多国旅行 — 仅限在所有这些国家/地区均可使用的套餐(ISO 代码或名称)。请用此参数代替 country。 |
| data_type | enum | 否 | daily = 流量额度每天重置;total = 整个行程共用一个流量额度。daily | total |
| unlimited | boolean | 否 | 仅限无限流量套餐。 |
| max_data_gb | number | 否 | 最大流量(GB)。 |
| local_number | boolean | 否 | true = 仅限包含本地电话号码(可用于通话/SMS)的套餐。 |
| max_price_krw | integer | 否 | 最高价格(KRW,预算)。 |
| min_price_krw | integer | 否 | 最低价格(KRW)。 |
| multi_country | boolean | 否 | 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。