Zwitchy MCP
A public MCP server that allows agents to search travel eSIM plans, retrieve plan details, check availability, and get exact price quotes without credentials. Results link to buyable plan pages, with agent-initiated purchasing planned for partners.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://zwitchy.io/api/mcpWhat its tools do
4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (4)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search travel eSIM plans by country or region
- Check real-time availability of eSIM plans
- Get exact price quotes for eSIM data plans
- Retrieve detailed plan information for travelers
Source and maintenance
Protocol and capabilities
- Server
- zwitchy-mcp 0.1.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
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.
{
"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
}{
"title": "Search eSIM plans",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}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.
{
"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
}{
"title": "Get one eSIM plan",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}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.
{
"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
}{
"title": "Check plan availability",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}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.
{
"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
}{
"title": "Quote an order",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1026 ms
- 95th percentile latency
- 1026 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1026 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zwitchy-mcp https://zwitchy.io/api/mcpCodex
codex mcp add zwitchy-mcp --url https://zwitchy.io/api/mcpCursor
{
"mcpServers": {
"zwitchy-mcp": {
"url": "https://zwitchy.io/api/mcp"
}
}
}Cline
{
"mcpServers": {
"zwitchy-mcp": {
"type": "streamableHttp",
"url": "https://zwitchy.io/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zwitchy-mcp": {
"type": "http",
"url": "https://zwitchy.io/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zwitchy-mcp https://zwitchy.io/api/mcpClaude Desktop
https://zwitchy.io/api/mcpWindsurf
{
"mcpServers": {
"zwitchy-mcp": {
"serverUrl": "https://zwitchy.io/api/mcp"
}
}
}Let your agent find its tools
Find servers like Zwitchy MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.