MCP 서버

ONE HEART eSIM

com.oneheartesim.mcp/esim

이 MCP로 할 수 있는 일

Searches and recommends international eSIM plans, provides pricing and inventory, and creates orders with LinePay or ECPay payment links.

create_esim_order
建立一筆真實的一心eSIM訂單,並取得真實的付款連結(LinePay或ECPay綠界,二擇一)。 這是會實際寫入正式訂單、串真實金流的動作,不是模擬或試算。 呼叫前必須先完成: 1. 已用search_esim_plans/recommend_esim_plan/get_esim_plan_detail取得正確的productId、 spec,不要自己編造或憑記憶帶入。 2. 已把商品名稱、規格、數量、單價與總金額,跟使用者逐一覆誦確認過,並取得使用者明確 同意下單(不能因為使用者說「好」「幫我訂」等籠統回應就自行猜數量或規格)。 3. 已取得使用者的email與稱呼/姓名(兩者都必填:email用於辨識訂單歸屬與寄送購買憑證/ eSIM QR碼;姓名是訂單聯絡資料的必要欄位,不能留空或代填)。手機可選填。 4. 已詢問使用者想用LinePay還是ECPay綠界付款(留空預設LinePay,但有得選的情況下應該 主動問,不要自己幫使用者決定)。 回傳的paymentUrl要完整、原樣提供給使用者(不要摘要或改寫),並提醒使用者付款完成前 訂單不會出貨。若ok=false,訂單可能已建立但取得付款連結失敗,要把error/note內容如實 告知使用者,不要自行重試建立第二筆訂單。
입력 스키마
{'type': 'object', 'required': ['productId', 'spec', 'quantity', 'email', 'userName'], 'properties': {'spec': {'type': 'string', 'description': '方案規格,必須跟查詢工具回傳的spec完全一致'}, 'email': {'type': 'string', 'description': '使用者的email,必填,訂單憑證與eSIM會寄到這裡'}, 'phone': {'type': ['string', 'null'], 'default': None, 'description': '使用者的手機號碼,選填'}, 'quantity': {'type': 'integer', 'description': '購買數量,需與使用者確認過的數字一致'}, 'userName': {'type': 'string', 'description': '使用者的稱呼/姓名,必填,訂單聯絡資料需要,不可留空'}, 'productId': {'type': 'string', 'description': '方案的productId(GUID字串),必須從查詢工具的結果取得,不可編造'}, 'paymentMethod': {'enum': ['LinePay', 'ECPay'], 'type': 'string', 'default': 'LinePay', 'description': '付款方式:LinePay,或綠界 (信用卡付款/ATM轉帳/超商條碼)。留空預設LinePay'}}}
get_esim_plan_detail
取得單一方案的完整詳情,包含商品說明(安裝/啟用步驟等)、各規格庫存、購買連結。 適用情境:使用者對某個已知方案想進一步了解安裝方式、使用細節、或確認庫存時。 需要先從search_esim_plans或recommend_esim_plan的結果取得productId,不要自己編造。
입력 스키마
{'type': 'object', 'required': ['productId'], 'properties': {'productId': {'type': 'string', 'description': '方案的productId(GUID字串),從search_esim_plans或recommend_esim_plan的結果取得'}}}
list_esim_countries
列出一心eSIM目前販售方案覆蓋的所有國家/地區(英文與中文名稱對照,含各國方案數量)。 適用情境:使用者問「你們支援哪些國家」「有賣OO地區的eSIM嗎」;或你準備呼叫 search_esim_plans/recommend_esim_plan,但不確定某國家在系統裡該用什麼名稱表示時, 先呼叫這個工具確認,比用猜的準確。
입력 스키마
{'type': 'object', 'properties': {}}
recommend_esim_plan
依旅遊天數與上網用量習慣,推薦最合適的1-3個eSIM方案,並附上購買連結, 是「幫使用者選方案」最好用的工具。 適用情境:使用者詢問出國上網卡、各國eSIM方案、即時發卡服務,並描述了 「要去OO玩幾天」「想找適合的上網方案/漫遊卡」「幫我推薦/挑選eSIM」時優先使用這個, 而不是自己呼叫search_esim_plans後用猜的。
입력 스키마
{'type': 'object', 'required': ['country', 'days'], 'properties': {'days': {'type': 'integer', 'description': '預計使用天數'}, 'country': {'type': 'string', 'description': '目的地國家,英文或中文皆可,例如 Japan、日本。不確定系統裡的正確名稱時,先呼叫list_esim_countries確認'}, 'usageLevel': {'enum': ['light', 'medium', 'heavy'], 'type': 'string', 'default': 'medium', 'description': '用量習慣,留空預設為medium(中度)'}}}
search_esim_plans
依國家、方案類型、關鍵字搜尋一心eSIM的商品清單,一次回傳多筆結果讓使用者自己比較。 適用情境:使用者想瀏覽/比較某國家的多個方案,或已經明確講出要哪種類型 (例如指定「總量型」或「每日定量型」)。 如果使用者是描述旅遊情境(去哪個國家玩幾天、上網習慣如何)要你直接建議選哪個, 改用recommend_esim_plan讓它幫忙評分挑選,不要自己從這個工具的結果裡用猜的。
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': '最多回傳幾筆,預設20,避免結果過多'}, 'country': {'type': ['string', 'null'], 'default': None, 'description': '國家名稱,英文或中文皆可,模糊比對,例如 Japan、日本、韓國。不確定系統裡的正確名稱時,先呼叫list_esim_countries確認'}, 'keyword': {'type': ['string', 'null'], 'default': None, 'description': '自由關鍵字,比對商品名稱/描述/規格文字'}, 'planType': {'enum': ['總量型', '每日定量型', None], 'type': ['string', 'null'], 'default': None, 'description': '方案類型,留空代表不限類型'}}}
추가됨
get_esim_plan_detail
2026년 9월 17일 12:36 PM
추가됨
search_esim_plans
2026년 9월 17일 12:36 PM
추가됨
list_esim_countries
2026년 9월 17일 12:36 PM
추가됨
recommend_esim_plan
2026년 9월 17일 12:36 PM
추가됨
create_esim_order
2026년 9월 17일 12:36 PM