Worldcitisim eSIM について
Worldcitisim eSIMは、WorldCitiSimの旅行用eSIMプランを検索・注文するMCPサーバーです。Stripeの決済リンクとオンチェーンBitcoinの支払い情報に対応し、決済後にアクティベーション情報を返します。
主な機能
- 01国、地域、日数、データ量でプランを検索
- 02プランと各バリエーションを取得
- 03StripeまたはBitcoin決済の注文を作成
- 04注文状況とアクティベーション情報を確認
- 05カタログ応答をキャッシュ
活用シーン
- 01渡航先と旅行日数に合うプランを比較
- 02注文してStripe決済リンクを共有
- 03注文用のBitcoin支払い情報を提示
- 04決済後にアクティベーション情報を取得
MCP 対応
プラン検索、注文作成、注文状況確認のツールをMCPクライアントに提供します。WorldCitiSim eSIM APIをラップしています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | 返すプランの最大数(デフォルト 5、最大 20)。 |
| min_gb | number | いいえ | 最低データ容量(GB)。「無制限」を表す場合は -1 を使用します。 |
| region | string | いいえ | 地域 slug:'europe' | 'mena' | 'caribbean' | 'balkans' | 'latam' | 'asia' | 'global'。 |
| country | string | いいえ | 2 文字の ISO 3166-1 alpha-2 国コード(例:'JP'、'ES'、'US')、またはプラン slug('spain'、'japan'、'europe'、'global')。プラン slug と表示名に対して、大文字と小文字を区別せずに照合します。 |
| max_days | number | いいえ | プラン期間の上限(日数)。 |
| min_days | number | いいえ | プラン期間の下限(日数)。 |
詳細
@worldcitisim/mcp-esim
Claude やその他の MCP 対応エージェントが WorldCitiSim の eSIM プランを検索・購入できる MCP サーバーです。https://shop.worldcitisim.com/wp-json/esim/v1/* をラップします。
インストール
Claude Desktop / Claude Code
claude mcp add --scope user wcs-esim npx -y @worldcitisim/mcp-esim
または、~/Library/Application Support/Claude/claude_desktop_config.json に貼り付けます。
{
"mcpServers": {
"worldcitisim-esim": {
"command": "npx",
"args": ["-y", "@worldcitisim/mcp-esim"]
}
}
}
Cursor / Windsurf / その他の MCP クライアント
同じ形式です。command: "npx", args: ["-y", "@worldcitisim/mcp-esim"] を指定します。
ChatGPT Developer Mode
Settings → Developer Mode → Add MCP server → 同じ npx コマンドを指定します。
提供するツール
| ツール | 用途 |
|---|---|
esim_search_plans | 国/地域/日数/GB でカタログを絞り込みます。一致するプランと、それぞれの最初の 5 件のバリエーションを返します。 |
esim_get_plan | スラッグを指定して 1 件のプランを取得し、すべてのバリエーションを返します。 |
esim_create_order | 保留中の注文を作成します。payment_method: "stripe"(デフォルト)は、ユーザーがタップできる Stripe Checkout URL を返します。payment_method: "btc" は、ユーザーに直接提示するオンチェーンの btc ブロック(アドレス+金額+QR)を返します。どちらの場合も、注文をポーリングするための order_token を返します。 |
esim_check_order | 注文のステータスをポーリングします。支払いが完了すると、アクティベーション情報(ICCID、QR URL)を返します。 |
対話例
User: I'm going to Japan for 10 days, what eSIM should I get?
Claude calls: esim_search_plans({ country: "japan", min_days: 7, max_days: 15 })
→ returns matching plans with variations priced and in stock.
Claude picks the best match, presents 2–3 options to the user.
User: the 10GB one
Claude: "Pay by card or Bitcoin?"
User: card
Claude calls: esim_create_order({ email: "[email protected]", variation_id: 44941 })
→ returns { order_id, order_token, payment_link_url }.
Claude: "Tap this link to pay: <Stripe URL>. You'll get the eSIM QR in your email within ~30 seconds."
User pays. Claude optionally polls esim_check_order until status=completed.
ビットコインで支払う場合、Claude は esim_create_order({ ..., payment_method: "btc" }) を呼び出し、
btc ブロック — { address, sats_amount, btc_amount, qr_data_uri, expires_at } — を受け取ります。これをユーザーに表示し、任意のオンチェーンウォレットから支払ってもらいます。リダイレクトはありません。ネットワーク手数料の高騰時に少額注文で BTC が利用できない場合、呼び出しは btc_unavailable エラーを返し、Claude は代わりにカード決済を案内します。いずれの場合も、esim_check_order は status=completed になるまでポーリングします。
環境変数
WCS_ESIM_API_BASE— API ベース URL を上書きします。デフォルト:https://shop.worldcitisim.com/wp-json/esim/v1。
実行環境
- Node 20.11+(ネイティブの fetch と ESM を使用するため)。
- シークレットは不要です。Stripe の認証情報がこのプロセスに渡ることはありません。支払いは Stripe のホスト型チェックアウトページで行われ、MCP はエージェントに URL を渡すだけです。
- カタログはクライアント側で 5 分間キャッシュされ、ETag にも対応しています。1 分以内に複数回検索しても、ネットワークへのリクエストは発生しません。
開発
npm install
npm run dev # stdio MCP server on this terminal
npm run build # compile to dist/
ローカルの開発ビルドを使うように Claude Code セッションを設定します。
claude mcp add wcs-esim-dev node "$(pwd)/dist/index.js"
関連情報
- WorldCitiSim — 193 か国に対応した eSIM 旅行サービスです。
- WorldCitiSim eSIM API — このサーバーがラップする OpenAPI 3.1 仕様です。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。