Skip to main content
Glama
README.md
# eSIM SOS MCP server

[English](#english) · [Русский](#русский)

## English

An [MCP](https://modelcontextprotocol.io) server for [eSIM SOS](https://esimsos.net), a travel eSIM shop. It lets Claude, ChatGPT, Cursor and other AI agents find a data plan for a trip, compare prices with other providers and create an order. **The human always pays**: the server returns a payment link, it never accepts card details and the AI never pays by itself.

Two ways to connect:

- **Remote (recommended):** `https://esimsos.net/api/mcp` (Streamable HTTP, no sign-in).
- **Local:** the `esimsos-mcp` package (stdio), installed straight from GitHub with `npx -y github:uziame/esimsos-mcp` (npm release coming soon). It is a thin proxy to the remote endpoint and needs no keys.

### Tools

| Tool | What it does |
|---|---|
| `search_destinations(query)` | Find a country by English or Russian name or ISO code |
| `list_plans(country, min_gb?, days?)` | Plans with final prices in RUB (one price for every payment method) |
| `compare_prices(country, gb)` | Prices of several providers from the open [esimdar.com dataset](https://esimdar.com/data/) (CC BY 4.0). esimdar.com is run by eSIM SOS; eSIM SOS is listed as an ordinary row |
| `create_order(plan_id, email, payment_method?)` | Creates an unpaid order, returns `order_id` and `payment_url` for the user |
| `order_status(order_id, email)` | Payment and delivery status (only when the email matches the order) |
| `install_instructions(order_id, email)` | After payment: order page with the QR code and steps for iPhone and Android |

Payment methods: `sbp` (Russian fast payments), `card` (Russian bank card), `card_foreign` (Visa/Mastercard issued abroad), `crypto_usdt`, `crypto_ton`.

### Example prompts

- "I'm flying to Turkey for two weeks. Find an eSIM with at least 10 GB."
- "Compare 5 GB eSIM prices for Georgia."
- "Order the 10 GB / 30 days plan for Turkey, my email is anna@example.com."
- "Has my order cmg... been paid? Email anna@example.com."
- "How do I install the eSIM on my iPhone?"

### Connect

**Claude.ai, Claude Desktop, Cowork (remote).** Settings → Connectors → Add → Add custom connector → URL `https://esimsos.net/api/mcp` → Add. No authentication is needed. Docs: [Get started with custom connectors](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp), [Connect to remote MCP servers](https://modelcontextprotocol.io/docs/develop/connect-remote-servers).

**Claude Desktop (local, npm).** Settings → Developer → Edit Config, then add to `claude_desktop_config.json` (macOS `~/Library/Application Support/Claude/`, Windows `%APPDATA%\Claude\`) and restart Claude. Requires [Node.js](https://nodejs.org) 18+. Docs: [Connect to local MCP servers](https://modelcontextprotocol.io/docs/develop/connect-local-servers).

```json
{
  "mcpServers": {
    "esimsos": {
      "command": "npx",
      "args": ["-y", "github:uziame/esimsos-mcp"]
    }
  }
}
```

**Cursor.** Add to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (one project). Docs: [Cursor MCP](https://cursor.com/docs/context/mcp).

```json
{
  "mcpServers": {
    "esimsos": { "url": "https://esimsos.net/api/mcp" }
  }
}
```

Or the local package: `{ "mcpServers": { "esimsos": { "command": "npx", "args": ["-y", "github:uziame/esimsos-mcp"] } } }`.

**ChatGPT.** Plugins → **+** → Add custom MCP server → enter a name and the URL `https://esimsos.net/api/mcp`, authentication: none → confirm the warning → Create as a plugin. Then start a new chat and pick the plugin with `@`. Availability depends on your plan and workspace policy. Docs: [Connect and test your plugin](https://developers.openai.com/apps-sdk/deploy/connect-chatgpt).

**Any other client:** use the remote URL with Streamable HTTP, or run `npx -y github:uziame/esimsos-mcp` over stdio. To debug: `npx @modelcontextprotocol/inspector`.

### Privacy and limits

- The email is used only for the order and the eSIM QR code. No reminders or marketing emails are sent to it.
- `order_status` and `install_instructions` answer only when both `order_id` and email match.
- Rate limits apply per email, per order and per IP.
- Orders created through MCP are counted with `utm_source=mcp`.
- `ESIMSOS_MCP_URL` overrides the endpoint for the npm package (for testing).

Support: Telegram [@esimsos_bot](https://t.me/esimsos_bot), support@esimsos.ru. License: MIT.

---

## Русский

[MCP](https://modelcontextprotocol.io)-сервер магазина [eSIM SOS](https://esimsos.net) (eSIM для путешествий). С ним Claude, ChatGPT, Cursor и другие ИИ-агенты подбирают тариф под поездку, сравнивают цены с другими магазинами и оформляют заказ. **Платит всегда человек**: сервер возвращает ссылку на оплату, данных карты не принимает, сама нейросеть не платит.

Два способа подключения:

- **Удалённо (рекомендуем):** `https://esimsos.net/api/mcp` (Streamable HTTP, без входа).
- **Локально:** пакет `esimsos-mcp` (stdio), ставится прямо с GitHub: `npx -y github:uziame/esimsos-mcp` (в npm выйдет позже). Тонкий посредник к удалённому адресу, ключи не нужны.

### Инструменты

| Инструмент | Что делает |
|---|---|
| `search_destinations(query)` | Находит страну по названию на русском или английском или по коду ISO |
| `list_plans(country, min_gb?, days?)` | Тарифы с итоговой ценой в рублях (одна цена для всех способов оплаты) |
| `compare_prices(country, gb)` | Цены нескольких магазинов из открытого набора [esimdar.com](https://esimdar.com/data/) (CC BY 4.0). esimdar.com делает eSIM SOS, eSIM SOS в нём — обычная строка |
| `create_order(plan_id, email, payment_method?)` | Создаёт неоплаченный заказ, возвращает `order_id` и `payment_url` для человека |
| `order_status(order_id, email)` | Статус оплаты и выдачи (только если почта совпадает с заказом) |
| `install_instructions(order_id, email)` | После оплаты: страница заказа с QR и шаги для iPhone и Android |

Способы оплаты: `sbp` (СБП), `card` (карта российского банка), `card_foreign` (зарубежная Visa/Mastercard), `crypto_usdt`, `crypto_ton`.

### Примеры запросов

- «Лечу в Турцию на две недели, подбери eSIM от 10 ГБ».
- «Сравни цены на eSIM 5 ГБ для Грузии».
- «Оформи тариф 10 ГБ на 30 дней для Турции, почта anna@example.com».
- «Оплачен ли мой заказ cmg...? Почта anna@example.com».
- «Как поставить eSIM на iPhone?»

### Подключение

**Claude.ai, Claude Desktop, Cowork (удалённо).** Настройки → Коннекторы → Добавить → Добавить свой коннектор → адрес `https://esimsos.net/api/mcp` → Добавить. Вход не нужен. Документация: [Get started with custom connectors](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp), [Connect to remote MCP servers](https://modelcontextprotocol.io/docs/develop/connect-remote-servers).

**Claude Desktop (локально, npm).** Настройки → Developer → Edit Config, добавьте в `claude_desktop_config.json` (macOS `~/Library/Application Support/Claude/`, Windows `%APPDATA%\Claude\`) и перезапустите Claude. Нужен [Node.js](https://nodejs.org) 18+. Документация: [Connect to local MCP servers](https://modelcontextprotocol.io/docs/develop/connect-local-servers).

```json
{
  "mcpServers": {
    "esimsos": {
      "command": "npx",
      "args": ["-y", "github:uziame/esimsos-mcp"]
    }
  }
}
```

**Cursor.** Добавьте в `~/.cursor/mcp.json` (для всех проектов) или `.cursor/mcp.json` (для одного). Документация: [Cursor MCP](https://cursor.com/docs/context/mcp).

```json
{
  "mcpServers": {
    "esimsos": { "url": "https://esimsos.net/api/mcp" }
  }
}
```

Или локальный пакет: `{ "mcpServers": { "esimsos": { "command": "npx", "args": ["-y", "github:uziame/esimsos-mcp"] } } }`.

**ChatGPT.** Plugins → **+** → Add custom MCP server → название и адрес `https://esimsos.net/api/mcp`, аутентификация не нужна → подтвердите предупреждение → Create as a plugin. Затем новый чат и выбор плагина через `@`. Доступность зависит от тарифа и правил рабочего пространства. Документация: [Connect and test your plugin](https://developers.openai.com/apps-sdk/deploy/connect-chatgpt).

**Другие клиенты:** удалённый адрес по Streamable HTTP или `npx -y github:uziame/esimsos-mcp` по stdio. Для отладки: `npx @modelcontextprotocol/inspector`.

### Данные и ограничения

- Почта нужна только для заказа и QR-кода eSIM. Напоминаний и рассылок на неё не приходит.
- `order_status` и `install_instructions` отвечают, только если совпали и `order_id`, и почта.
- Есть лимиты запросов по почте, по номеру заказа и по IP.
- Заказы через MCP учитываются с меткой `utm_source=mcp`.
- `ESIMSOS_MCP_URL` меняет адрес для npm-пакета (для проверки).

Поддержка: Telegram [@esimsos_bot](https://t.me/esimsos_bot), support@esimsos.ru. Лицензия MIT.