MCP Server

zwitchy-store

io.github.Mouthfully/zwitchy-store
Commerce & Retail Travel & Hospitality Public & reachable MCP 2026-07-28

What this MCP does

Searches travel eSIM plans, retrieves plan details, checks availability, and calculates purchase quotes.

check_availability
Check plan availability
Check whether a plan can be fulfilled right now for a given quantity, using the same gate the checkout runs. Returns available true/false; reason 'delisted' means the SKU left the catalog, 'unavailable' means it temporarily cannot be fulfilled.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['package_code'], 'properties': {'quantity': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Units to buy (default 1, max 10).'}, 'package_code': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "The plan's package_code from search_plans."}}, 'additionalProperties': False}
get_plan
Get one eSIM plan
Fetch full public details for a single purchasable plan by its package_code: coverage, data allowance, validity, retail price in USD cents. Errors with plan_not_found for unknown or unsellable codes.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['package_code'], 'properties': {'package_code': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "The plan's package_code from search_plans."}}, 'additionalProperties': False}
get_quote
Quote an order
Price an order (package_code, quantity, optional promo code) exactly as checkout would: returns subtotal, discount, and the final total in USD cents, plus the promo status. Purely informational — no order is created.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['package_code'], 'properties': {'quantity': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Units to buy (default 1, max 10).'}, 'promo_code': {'type': 'string', 'maxLength': 64, 'description': 'Optional promo code to apply.'}, 'package_code': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "The plan's package_code from search_plans."}}, 'additionalProperties': False}
search_plans
Search eSIM plans
Search the purchasable travel eSIM plan catalog. Filter by destination country, region, minimum data, minimum duration, and maximum price. Returns public plan details (prices in USD cents) sorted cheapest first, with offset pagination via next_offset.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50 (default 20).'}, 'offset': {'type': 'integer', 'maximum': 5000, 'minimum': 0, 'description': 'Pagination offset from a previous next_offset.'}, 'region': {'type': 'string', 'maxLength': 64, 'description': "Region name filter, e.g. 'Europe' or 'Asia'."}, 'destination': {'type': 'string', 'maxLength': 64, 'description': "Country to cover: ISO-2 code (e.g. 'JP') or English name (e.g. 'Japan')."}, 'min_data_bytes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Minimum total data allowance in bytes (unlimited plans always match).'}, 'max_price_cents': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Maximum retail price in USD cents.'}, 'min_duration_days': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Minimum validity in days.'}}, 'additionalProperties': False}
Added
get_quote
Sept. 17, 2026, 12:45 p.m.
Added
check_availability
Sept. 17, 2026, 12:45 p.m.
Added
get_plan
Sept. 17, 2026, 12:45 p.m.
Added
search_plans
Sept. 17, 2026, 12:45 p.m.