# io.github.Mouthfully/zwitchy-store

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

- name: io.github.Mouthfully/zwitchy-store
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.Mouthfully%2Fzwitchy-store
- tools: https://api.protogrid.dev/v1/servers/io.github.Mouthfully%2Fzwitchy-store/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "zwitchy-store": {
      "type": "http",
      "url": "https://zwitchy.io/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 98
- freshness: 85
- provenance: 35
- drivers: +reachable +uptime-94% ~updated-88d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_plans (destructiveHint); check_availability (destructiveHint); get_plan (destructiveHint); …
- pass `tools.token_cost`: about 855 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 855 tokens to load them all
- tool set hash: 36f912d0feceb0a5d9586e14c370cb7e
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.Mouthfully/zwitchy-store.svg)](https://protogrid.dev/servers/io.github.Mouthfully/zwitchy-store)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://zwitchy.io/api/mcp (streamable-http, auth none, reachable true, uptime30d 0.9380531)

## Packages

_none_

## Tools (4)

- `check_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.
- `get_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.
- `get_quote`: 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.
- `search_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.
