simscout について
simscout は、esimoa の旅行用 eSIM カタログを閲覧するローカル MCP ブリッジ兼コマンドラインツールです。ホスト型サーバーへ呼び出しを転送し、条件検索、詳細取得、比較、渡航先一覧に対応します。購入や決済は扱いません。
主な機能
- 01旅行条件によるプラン検索
- 02プラン詳細の取得
- 032~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 は、旅行用 eSIM プランを掲載する esimoa のホスト型 MCP サーバーへの、小規模なローカルブリッジです。目的地と旅行日数、 必要なデータ量を指定すると、カタログから条件に合うプラン、 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— 1 つのプランの詳細を取得します。必須:id(search_esimsの結果から指定)。任意:lang。compare_esims— 2〜5 件のプランを並べて比較します: 価格、データ量、有効期間、1 GB あたりの価格、カバレッジ、ネットワーク、 ホットスポット、現地の電話番号に加え、最安値、最大データ量、 最長の有効期間、1 GB あたりの最安値を誇るプランも表示します。必須:ids。任意:lang。list_countries— プランが販売されているすべての目的地を、 国ごとのプラン数と最低価格とともに表示します。任意:query(名称または ISO コードによる絞り込み)とlang。search— ChatGPT のディープリサーチで使われる検索/取得形式で フリーテキスト検索を行います。例:「Japan 7 days unlimited」。必須:query。fetchで使う ID を返します。 フィルターを指定できる場合は、search_esimsを優先してください。fetch—searchが返した ID を使って、1 つのプランをドキュメントとして 取得します。必須: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 name
simscout)を送信し、続いて notifications/initialized
通知を送り、その後、呼び出し元の引数を変更せずに含めた
tools/call リクエストを送信します。上流が initialize への応答で
Mcp-Session-Id ヘッダーを返した場合、その値はセッションの以降のすべてのリクエストに
付与され、プロセスが終了するまでセッションが再利用されます。応答は
プレーンな JSON またはサーバー送信イベントとして届く場合があり、
どちらも読み取ります。
上流からの正常な結果は、上流が設定した isError フラグも含めて、
そのまま返されます。JSON-RPC エラー、2xx 以外のステータス、
読み取り不能な応答、完了できないリクエストなどの失敗は、
テキストが simscout error: で始まる isError 結果として返されます
(このエラー表示は、この再構築版独自の、再構築箇所であることを示す実装です)。
CLI
各ツールは、JSON 引数の文字列を 1 つ取るサブコマンドとしても実行できます (引数を取らないツールでは省略してください)。
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。