Koskamo

Супермаркет САМПО MCP

MCP server for the Sampo supermarket providing product catalog browsing, quantity-based pricing tiers, and order creation capabilities. It supports reading public product descriptions and categories without login, while orders require user authentication and payment via a bank page.

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.

Супермаркет САМПО MCP logo, by Супермаркет САМПОVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Супермаркет САМПО
MCP endpoint (Streamable HTTP)
https://sampo.shop/mcp
Vendor documentation

What you can do with it

  • Browse product catalog and categories
  • Check prices for different quantity tiers
  • Create orders for delivery in St. Petersburg or Russia

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
sampo-shop 1
MCP protocol
2025-03-26
Tools
9 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Каталог и варианты доставки читаются без входа. get_delivery_options даёт слоты Достависты для Санкт-Петербурга и срок со пунктами СДЭК для другого города. request_login_code отправляет код только по просьбе клиента. confirm_login принимает этот код или пароль и возвращает токен. create_checkout и get_order_status требуют токен со scope checkout. Телефон заказа берётся из аккаунта клиента. Оплата на странице банка, итог покажите человеку до перехода.

Tools

9 advertised

search_products
Advertised by the server during the last successful anonymous check.

Найти товары каталога. Без авторизации.

search_products input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "q": {
      "type": "string",
      "description": "Строка поиска"
    },
    "limit": {
      "type": "integer",
      "description": "Сколько позиций вернуть, не больше 20"
    },
    "category_id": {
      "type": "integer",
      "description": "Идентификатор категории"
    }
  },
  "additionalProperties": false
}
get_product
Advertised by the server during the last successful anonymous check.

Карточка товара и ступени количества. Без авторизации.

get_product input schema
{
  "type": "object",
  "required": [
    "goods_id"
  ],
  "properties": {
    "goods_id": {
      "type": "integer",
      "description": "Идентификатор товара"
    }
  },
  "additionalProperties": false
}
check_stock
Advertised by the server during the last successful anonymous check.

Сколько штук можно заказать сейчас. Без авторизации.

check_stock input schema
{
  "type": "object",
  "required": [
    "goods_id",
    "qty"
  ],
  "properties": {
    "qty": {
      "type": "integer",
      "description": "Сколько штук нужно"
    },
    "goods_id": {
      "type": "integer",
      "description": "Идентификатор товара"
    }
  },
  "additionalProperties": false
}
quote_cart
Advertised by the server during the last successful anonymous check.

Итог корзины по текущим ценам и остатку. Заказ не создаёт. Без авторизации. Тело — объект lines: массив строк {goods_id, min_qty, cards}.

quote_cart input schema
{
  "type": "object",
  "required": [
    "lines"
  ],
  "properties": {
    "city": {
      "type": "string",
      "description": "Город"
    },
    "mode": {
      "type": "string",
      "description": "pickup, city или distant. Пусто — только товары"
    },
    "house": {
      "type": "string",
      "description": "Дом"
    },
    "lines": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "goods_id",
          "min_qty"
        ],
        "properties": {
          "cards": {
            "type": "integer",
            "description": "Сколько таких упаковок. Пусто — одна"
          },
          "min_qty": {
            "type": "integer",
            "description": "Ступень с карточки: сколько штук в одной упаковке"
          },
          "goods_id": {
            "type": "integer",
            "description": "Идентификатор товара, как в адресе /catalog/{id}"
          }
        }
      },
      "description": "Строки: goods_id, min_qty ступени, cards — сколько таких упаковок"
    },
    "street": {
      "type": "string",
      "description": "Улица"
    },
    "service": {
      "type": "string",
      "description": "cdek или dostavista"
    },
    "pvz_code": {
      "type": "string",
      "description": "Код пункта выдачи"
    },
    "tariff_code": {
      "type": "integer",
      "description": "Тариф СДЭК"
    }
  },
  "additionalProperties": false
}
create_checkout
Advertised by the server during the last successful anonymous check.

Создать заказ и ссылку на страницу банка. Нужен вход пользователя и scope checkout. Телефон клиента берётся из его аккаунта. Цена и остаток считаются заново. Повтор с тем же idempotency_key возвращает тот же заказ.

create_checkout input schema
{
  "type": "object",
  "required": [
    "idempotency_key",
    "lines",
    "mode",
    "name",
    "personal_data"
  ],
  "properties": {
    "city": {
      "type": "string",
      "description": "Город"
    },
    "flat": {
      "type": "string",
      "description": "Квартира"
    },
    "mode": {
      "type": "string",
      "description": "pickup, city или distant"
    },
    "name": {
      "type": "string",
      "description": "Имя получателя"
    },
    "slot": {
      "type": "string",
      "description": "Слот Достависты"
    },
    "email": {
      "type": "string",
      "description": "Почта"
    },
    "house": {
      "type": "string",
      "description": "Дом"
    },
    "lines": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "goods_id",
          "min_qty"
        ],
        "properties": {
          "cards": {
            "type": "integer",
            "description": "Сколько таких упаковок. Пусто — одна"
          },
          "min_qty": {
            "type": "integer",
            "description": "Ступень с карточки: сколько штук в одной упаковке"
          },
          "goods_id": {
            "type": "integer",
            "description": "Идентификатор товара, как в адресе /catalog/{id}"
          }
        }
      },
      "description": "Строки: goods_id, min_qty ступени, cards — сколько таких упаковок"
    },
    "phone": {
      "type": "string",
      "description": "Не передавайте. Телефон берётся из аккаунта вошедшего клиента и обязателен"
    },
    "region": {
      "type": "string",
      "description": "Регион"
    },
    "street": {
      "type": "string",
      "description": "Улица"
    },
    "comment": {
      "type": "string",
      "description": "Комментарий"
    },
    "service": {
      "type": "string",
      "description": "cdek или dostavista"
    },
    "pvz_code": {
      "type": "string",
      "description": "Код пункта выдачи"
    },
    "postal_code": {
      "type": "string",
      "description": "Индекс"
    },
    "tariff_code": {
      "type": "integer",
      "description": "Тариф СДЭК"
    },
    "personal_data": {
      "type": "string",
      "description": "Согласие на обработку данных: 1"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Ключ повтора, до 80 символов"
    }
  },
  "additionalProperties": false
}
get_order_status
Advertised by the server during the last successful anonymous check.

Статус своего заказа. Нужен вход пользователя и scope checkout.

get_order_status input schema
{
  "type": "object",
  "required": [
    "order"
  ],
  "properties": {
    "order": {
      "type": "string",
      "description": "Номер QD-… или uuid заказа"
    }
  },
  "additionalProperties": false
}
get_delivery_options
Advertised by the server during the last successful anonymous check.

Сроки и способы доставки. Для Санкт-Петербурга — слоты Достависты, ближайший первый. Для другого города — срок СДЭК и пункты выдачи. Без авторизации.

get_delivery_options input schema
{
  "type": "object",
  "required": [
    "city"
  ],
  "properties": {
    "q": {
      "type": "string",
      "description": "Фильтр пункта: улица, метро или код"
    },
    "city": {
      "type": "string",
      "description": "Город"
    },
    "limit": {
      "type": "integer",
      "description": "Сколько пунктов вернуть, не больше 30"
    },
    "cdek_code": {
      "type": "integer",
      "description": "Код города СДЭК, если известен"
    }
  },
  "additionalProperties": false
}
request_login_code
Advertised by the server during the last successful anonymous check.

Отправить код входа клиенту, который сам попросил войти. Канал: sms, telegram или max. Клиент должен быть в базе. Если мессенджер не привязан, в ответе будет ссылка на бота. Код в ответ не входит.

request_login_code input schema
{
  "type": "object",
  "required": [
    "phone",
    "channel"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "description": "Телефон клиента"
    },
    "channel": {
      "type": "string",
      "description": "sms, telegram или max"
    }
  },
  "additionalProperties": false
}
confirm_login
Advertised by the server during the last successful anonymous check.

Завершить вход. Передайте код, который клиент получил и сообщил, либо его пароль. В ответе токен scope checkout.

confirm_login input schema
{
  "type": "object",
  "required": [
    "phone"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "Код из СМС, Telegram или MAX"
    },
    "phone": {
      "type": "string",
      "description": "Телефон клиента"
    },
    "password": {
      "type": "string",
      "description": "Пароль, если клиент хочет войти им"
    }
  },
  "additionalProperties": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
1896 ms
95th percentile latency
1896 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1896 ms · metadata changed · 9 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mcp-sampo https://sampo.shop/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mcp-sampo --url https://sampo.shop/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mcp-sampo in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mcp-sampo": {
      "url": "https://sampo.shop/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mcp-sampo": {
      "type": "streamableHttp",
      "url": "https://sampo.shop/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mcp-sampo and inspect its tools.
VS Code configuration
{
  "servers": {
    "mcp-sampo": {
      "type": "http",
      "url": "https://sampo.shop/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mcp-sampo https://sampo.shop/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "mcp-sampo": {
      "url": "https://sampo.shop/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mcp-sampo": {
      "serverUrl": "https://sampo.shop/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Супермаркет САМПО MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Супермаркет САМПО MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing