zwitchy-store

Travel eSIM catalog: search plans, check availability, and get exact quotes with checkout links.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~872Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.68% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "zwitchy-store": {
      "url": "https://zwitchy.io/api/mcp"
    }
  }
}

Remote endpoints

https://zwitchy.io/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_plans(destination, region, min_data_bytes, min_duration_days, max_price_cents, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "description": "Country to cover: ISO-2 code (e.g. 'JP') or English name (e.g. 'Japan').",
      "type": "string",
      "maxLength": 64
    },
    "region": {
      "description": "Region name filter, e.g. 'Europe' or 'Asia'.",
      "type": "string",
      "maxLength": 64
    },
    "min_data_bytes": {
      "description": "Minimum total data allowance in bytes (unlimited plans always match).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "min_duration_days": {
      "description": "Minimum validity in days.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "max_price_cents": {
      "description": "Maximum retail price in USD cents.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Page size, 1-50 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "description": "Pagination offset from a previous next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 5000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_plan(package_code)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "package_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "The plan's package_code from search_plans."
    }
  },
  "required": [
    "package_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢check_availability(package_code, quantity)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "package_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "The plan's package_code from search_plans."
    },
    "quantity": {
      "description": "Units to buy (default 1, max 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    }
  },
  "required": [
    "package_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_quote(package_code, quantity, promo_code)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "package_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "The plan's package_code from search_plans."
    },
    "quantity": {
      "description": "Units to buy (default 1, max 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "promo_code": {
      "description": "Optional promo code to apply.",
      "type": "string",
      "maxLength": 64
    }
  },
  "required": [
    "package_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools