Интеграция с MCP серверами партнера
Данная спецификация описывает протокол взаимодействия между GigaChat и MCP (Model Context Protocol) серверами партнеров.
Все MCP-серверы должны:
- поддерживать UUID v4 для
rqUid; - обрабатывать cтандартные коды ошибок;
- соответствовать протоколу MCP.
Перед прочтением рекомендуем ознакомиться с основами протоколов MCP и JSON-RPC 2.0.
Инициализация покупки
Для инициализации покупки:
- Клиент запускает процесс покупки через интерфейс GigaChat (мобильное приложение/веб-сайт).
- GigaChat получает начальные данные: выбранные товары, предпочтения клиента.
Получение информации о мерчант е
Процесс получения информации о мерчанте:
- GigaChat отправляет запрос
get_merchant_infoна MCP-сервер с целью получить детальную информацию о мерчанте:
- название компании и описание;
- доступные методы доставки;
- поддерживаемые способы оплаты;
- интеграции с экосистемой Сбера.
{
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rqTm": "2025-11-19T10:15:30Z",
"clientInfo": {
"clientInfoToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"sberId": "sber_user_123456789",
"accessToken": "merchant_access_token_abc123"
}
}
Аргументы для get_merchant_info
Уникальный идентификатор запроса для сквозного логирования
Временная метка запроса
clientInfo objectrequired
Информация о клиенте для персонализации
JWT-токен с информацией о клиенте
Уникальный идентификатор клиента в экосистеме Сбера
Токен доступа к аккаунту мерчанта
- MCP-сервер возвращает структурированные данные о мерчанте.
{
"jsonrpc": 2,
"result": {
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rsTm": "2025-11-19T14:30:00Z",
"merchantInfo": {
"merchantName": "ООО 'Электронный Мир'",
"website": "https://electronworld.ru",
"description": "Крупнейший онлайн-ритейлер электроники в России",
"mainCategories": [
"electronics",
"smartphones",
"laptops"
],
"allCategories": [
"smartphones",
"tablets",
"laptops"
],
"supportedBrands": [
"samsung",
"apple",
"xiaomi"
],
"deliveryRegions": [
"Москва",
"Московская область"
],
"deliveryMethods": [
{
"type": "courier",
"name": "Курьерская доставка",
"minDays": 1,
"maxDays": 3,
"costTable": [
{
"orderAmountMin": 0,
"orderAmountMax": 5000,
"deliveryCost": 299
}
],
"costNotes": "Бесплатная доставка при заказе от 5000 руб"
}
],
"paymentOptions": {
"online": {
"supported": true,
"methods": [
"card",
"sberpay",
"bnpl"
]
},
"courier": {
"supported": true,
"methods": [
"card",
"cash",
"sberpay"
]
},
"pickup": {
"supported": true,
"methods": [
"card",
"cash",
"sberpay"
]
}
},
"sberIntegrations": {
"sberIdSupported": true,
"sberpaySupported": true,
"sberPrimeSupported": true,
"sberLoyaltySupported": true
},
"contactInfo": {
"phone": "+7-495-123-45-67",
"email": "support@electronworld.ru"
},
"additionalInfo": {
"loyaltyProgram": true,
"giftCards": true,
"establishedDate": "2015-03-15",
"giftWrapping": true,
"installation": true,
"tradeIn": true
}
},
"matchReasons": [
"специализация_на_электронике",
"поддержка_sberpay"
]
},
"id": "req_120"
}
Ответ с информацией о мерчанте
Возможные значения: [2]
result object
Идентификатор запроса
Временная метка ответа
merchantInfo objectrequired
Детальная информация о мерчанте
Официальное название компании
Ссылка на вебсайт мерчанта
Описание компании и специализации
Основные категории мерчанта
Все категории товаров мерчанта
Основные представленные бренды
Регионы доставки
deliveryMethods object[]required
Воз можные значения: [courier, pickup, postal, express]
Тип доставки
Название метода доставки
Минимальное время доставки в днях
Максимальное время доставки в днях
costTable object[]
Таблица стоимости доставки
Минимальная сумма заказа
Максимальная сумма заказа
Стоимость доставки
Примечания о стоимости доставки
paymentOptions objectrequired
Методы оплаты
online objectrequired
Онлайн оплата
Поддерживается ли онлайн оплата
Доступные методы онлайн оплаты
courier objectrequired
Оплата курьеру
Поддерживается ли оплата курьеру
Доступные методы оплаты курьеру
pickup objectrequired
Оплата в пункте выдачи
Поддерживается ли оплата в ПВЗ
Доступные методы оплаты в ПВЗ
sberIntegrations object
Интеграции с Сбером
Поддержка SberID
Поддержка SberPay
Поддержка SberPrime
Поддержка программы лояльности Сбера
contactInfo object
Контактная информация
Телефон
additionalInfo object
Дополнительная информация
Дополнительная информация
Причины соответствия
- GigaChat фильтрует мерчантов и подбирает наиболее релевантных в зависимости от запроса и предпочтений клиента.
Подбор SKU товаров
Подбор SKU (артикулы) товаров:
- GigaChat отправляет запрос
get_skusс информацией о товарах, чтобы получить конкретные SKU (артикулы) товаров с:
- актуальными ценами;
- наличием на складе;
- информацией о доставке;
- атрибутами товаров.
{
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rqTm": "2025-11-19T10:15:30Z",
"clientInfo": {
"clientInfoToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"sberId": "sber_user_123456789",
"accessToken": "merchant_access_token_abc123"
},
"products": [
{
"productId": "prod_12345",
"name": "Смартфон Samsung Galaxy S24 Ultra",
"category": "smartphones",
"limit": 5,
"quantity": {
"value": 1.5,
"unit": "kg",
"type": "weight"
},
"attributes": {
"brand": "samsung",
"color": "черный",
"storage": "256gb",
"releaseDate": "2024-01-17"
}
}
],
"context": {
"sessionId": "sess_abc123"
}
}
Аргументы для get_skus
clientInfo objectrequired
Информация о клиенте для персонализации
JWT-токен с информацией о клиенте
Уникальный идентификатор клиента в экосистеме Сбера
Токен доступа к аккаунту мерчанта
products object[]required
Possible values: >= 1, <= 50
Уникальный идентификатор товара
Название товара
Категория товара
Возможные значения: >= 1 и <= 20
Максимальное количество SKU для данного товара
quantity object
Информация о количестве/весе
Численное значение
Возможные значения: [piece, kg, g, lb, oz, l, ml, pack, box]
Единица измерения
Возможные значения: [weight, volume, count, package]
Тип количества
attributes objectrequired
Атрибуты товара
Атрибуты товара
context object
- MCP-сервер сопоставляет товары с внутренней системой мерчанта.
{
"jsonrpc": 2,
"result": {
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rsTm": "2025-11-19T10:16:05Z",
"productSkus": {
"prod_12345": [
{
"skuId": "sber_sku_67890",
"productId": "prod_12345",
"stockQuantity": 15
}
]
},
"personalizationFactors": {
"priceSensitivity": "medium",
"preferredBrands": [
"samsung",
"apple"
]
}
},
"id": "req_123"
}
Ответ с подобранными SKU
Возможные значения: [2]
result object
Идентификатор запроса
Временная метка ответа
productSkus objectrequired
Сопоставление товаров и SKU
property name* object[]
Уникальный идентификатор SKU
Идентификатор товара
Внутренний ID SKU мерчанта
Код SKU мерчанта
price objectrequired
Цена товара
Сумма
Возможные значения: [RUB]
Валюта
quantity object
Информация о количестве
Численное значение
Возможные значения: [piece, kg, g, lb, oz, l, ml, pack, box]
Единица измерения
Возможные значения: [weight, volume, count, package]
Тип количества
Количество единиц в упаковке
Доступность товара
Остаток на складе
deliveryInfo object
Информация о доставке
Расчетное время доставки в днях
Экспресс доставка
Дата доступности товара
attributes object
Атрибуты SKU
Атрибуты SKU
personalizationFactors object
Факторы персонализации
Факторы персонализации
Расчет стоимости доставки
Для расчета стоимости товара:
- GigaChat отправляет запрос
calculate_delivery, чтобы получить точную стоимость и сроки доставки. Запрос содержит параметры доставки:
- метод доставки (курьер, самовывоз, почта);
- регион доставки;
- общая сумма заказа;
- габариты и вес товаров.
{
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rqTm": "2025-11-19T10:15:30Z",
"clientInfo": {
"clientInfoToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"sberId": "sber_user_123456789",
"accessToken": "merchant_access_token_abc123"
},
"deliveryInfo": {
"deliveryMethod": "courier",
"region": "Москва",
"totalOrderAmount": 12000.5,
"totalWeight": 2.5,
"totalVolume": 0.02,
"deliveryDate": "2025-11-20",
"preferredDeliveryTime": "14:00-18:00"
},
"context": {
"sessionId": "sess_abc123"
}
}
Аргументы для calculate_delivery
clientInfo objectrequired
Информация о клиенте для персонализации
JWT-токен с информацией о клиенте
Уникальный идентификатор клиента в экосистеме Сбера
Токен доступа к аккаунту мерчанта
deliveryInfo objectrequired
Возможные значения: [courier, pickup, postal, express]
context object
- MCP-сервер рассчитывает стоимость на основе внутренних тарифов мерчанта:
{
"jsonrpc": 2,
"result": {
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rsTm": "2025-11-19T09:45:30Z",
"deliveryCost": 0,
"deliveryTime": {
"minDays": 1,
"maxDays": 2,
"estimatedDate": "2024-01-21",
"estimatedDeliveryStart": "2024-01-21T10:00:00Z",
"estimatedDeliveryEnd": "2024-01-21T14:00:00Z"
},
"costBreakdown": {
"baseCost": 299,
"distanceSurcharge": 0,
"weightSurcharge": 0,
"urgencySurcharge": 0,
"freeThresholdApplied": true
},
"availableTimeSlots": [
{
"date": "2024-01-21",
"slots": [
"10:00-14:00",
"14:00-18:00"
]
}
],
"restrictions": [
"нет_доставки_в_выходные"
],
"dynamicPricingInfo": {
"isPeakHours": false,
"demandMultiplier": 1,
"priceValidUntil": "2025-11-19T23:59:59Z"
}
},
"id": "req_130"
}
Ответ с расчетом доставки
Возможные значения: [2]
result object
Идентификатор запроса
Временная метка ответа
Стоимость доставки
deliveryTime objectrequired
Время доставки
Минимальное время доставки
Максимальное время доставки
Расчетная дата доставки
Расчетное время начала доставки
Расчетное время окончания доставки
costBreakdown object
Детализация стоимости
Базовая стоимость
Надбавка за расстояние
Надбавка за вес
Надбавка за срочность
Применен ли порог бесплатной доставки
availableTimeSlots object[]
Доступные временные слоты
Дата доставки
Временные интервалы
Ограничения по доставке
dynamicPricingInfo object
Информация о динамическом ценообразовании
Часы пик
Множитель спроса
Срок действия цены
Создание и подписание CartMandate
Для создания мандата корзины:
- GigaChat отправляет запрос
create_cart_mandateс полным содержимым корзины. - MCP-сервер создает CartMandate — юридически значимый документ, который фиксирует:
- состав заказа;
- цены товаров;
- условия доставки;
- срок действия корзины.
{
"rqUid": "123e4567-e89b-12d3-a456-426614174000",
"rqTm": "2025-11-19T10:15:30Z",
"clientInfo": {
"clientInfoToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"sberId": "sber_user_123456789",
"accessToken": "merchant_access_token_abc123"
},
"cartContents": {
"id": "cart_12345",
"userCartConfirmationRequired": true,
"merchantName": "ООО 'Электронный Мир'",
"cartExpiry": "2025-11-19T11:15:30Z",
"paymentRequest": {
"methodData": [
{
"supportedMethods": "sberpay",
"data": {}
}
],
"details": {
"id": "payment_12345",
"displayItems": [
{
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"pending": false,
"refundPeriod": 30
}
],
"shippingOptions": [
{
"id": "courier_moscow",
"label": "Курьерская доставка по Москве",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"selected": true
}
],
"modifiers": [
{
"supportedMethods": "sberpay",
"total": {
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"pending": false,
"refundPeriod": 30
},
"additionalDisplayItems": [
{
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"pending": false,
"refundPeriod": 30
}
],
"data": {}
}
],
"total": {
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"pending": false,
"refundPeriod": 30
}
},
"options": {
"requestPayerName": true,
"requestPayerEmail": true,
"requestPayerPhone": false,
"requestShipping": true,
"shippingType": "delivery"
},
"shippingAddress": {
"city": "Москва",
"country": "RU",
"dependentLocality": "string",
"organization": "string",
"phoneNumber": "+7-495-123-45-67",
"postalCode": "123456",
"recipient": "Иван Иванов",
"region": "Москва",
"sortingCode": "string",
"addressLine": [
"ул. Тверская, д. 1"
]
}
}
}
}
Аргументы для create_cart_mandate
clientInfo objectrequired
Информация о клиенте для персонализации
JWT-токен с информацией о клиенте
Уникальный идентификатор клиента в экосистеме Сбера
Токен доступа к аккаунту мерчанта
cartContents objectrequired
Содержимое корзины для CartMandate
Уникальный идентификатор корзины
Требуется ли подтверждение корзины пользователем
Срок действия корзины
paymentRequest objectrequired
Платежный запрос в соответствии с AP2
methodData object[]required
Идентификатор поддерживаемого метода оплаты
data object
Специфичные для метода данные
Специфичные для метода данные
details objectrequired
Детали оплаты в соответствии с AP2
Уникальный идентификатор платежного запроса
displayItems object[]required
Элементы для отображения пользователю
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
shippingOptions object[]
Уникальный идентификатор опции доставки
Описание опции доставки
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает опцию по умолчанию
modifiers object[]
Применяемый метод оплаты
total object
Элемент оплаты в соответствии с AP2
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
additionalDisplayItems object[]
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
data object
total objectrequired
Элемент оплаты в соответствии с AP2
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
options object
Опции оплаты в соответствии с AP2
Запрашивать имя плательщика
Запрашивать email плательщика
Запрашивать телефон плательщика
Запрашивать адрес доставки
Возможные значения: [shipping, delivery, pickup]
Тип доставки
shippingAddress object
Контактный адрес в соответствии с AP2
- Сервер подписывает мандат цифровой подписью мерчанта:
{
"jsonrpc": 2,
"result": {
"rqUid": "c07273ac-91d8-45d3-b9b7-d0807017c49f",
"rsTm": "2019-08-24T14:15:22Z",
"merchantSignedMandate": {
"contents": {
"id": "cart_12345",
"userCartConfirmationRequired": true,
"merchantName": "ООО 'Электронный Мир'",
"cartExpiry": "2025-11-19T11:15:30Z",
"paymentRequest": {
"methodData": [
{
"supportedMethods": "sberpay",
"data": {}
}
],
"details": {
"id": "payment_12345",
"displayItems": [
{
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"pending": false,
"refundPeriod": 30
}
],
"shippingOptions": [
{
"id": "courier_moscow",
"label": "Курьерская доставка по Москве",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"selected": true
}
],
"modifiers": [
{
"supportedMethods": "sberpay",
"total": {
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {},
"pending": false,
"refundPeriod": 30
},
"additionalDisplayItems": [
{}
],
"data": {}
}
],
"total": {
"label": "Смартфон Samsung Galaxy S24 Ultra",
"amount": {
"currency": "RUB",
"value": 89999.99
},
"pending": false,
"refundPeriod": 30
}
},
"options": {
"requestPayerName": true,
"requestPayerEmail": true,
"requestPayerPhone": false,
"requestShipping": true,
"shippingType": "delivery"
},
"shippingAddress": {
"city": "Москва",
"country": "RU",
"dependentLocality": "string",
"organization": "string",
"phoneNumber": "+7-495-123-45-67",
"postalCode": "123456",
"recipient": "Иван Иванов",
"region": "Москва",
"sortingCode": "string",
"addressLine": [
"ул. Тверская, д. 1"
]
}
}
},
"merchantAuthorization": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMjQwOTA..."
},
"mandateId": "mandate_12345"
},
"id": "req_400"
}
Ответ с подписанным мерчантом CartMandate
Возможные значения: [2]
result object
merchantSignedMandate objectrequired
CartMandate с подписью мерчанта
contents objectrequired
Содержимое корзины для CartMandate
Уникальный идентификатор корзины
Требуется ли подтверждение корзины пользователем
Срок действия корзины
paymentRequest objectrequired
Платежный запрос в соответствии с AP2
methodData object[]required
Идентификатор поддерживаемого метода оплаты
data object
Специфичные для метода данные
Специфичные для метода данные
details objectrequired
Детали оплаты в соответствии с AP2
Уникальный идентификатор платежного запроса
displayItems object[]required
Элементы для отображения пользователю
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
shippingOptions object[]
Уникальный идентификатор опции доставки
Описание опции доставки
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает опцию по умолчанию
modifiers object[]
Применя емый метод оплаты
total object
Элемент оплаты в соответствии с AP2
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
additionalDisplayItems object[]
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
data object
total objectrequired
Элемент оплаты в соответствии с AP2
Человекочитаемое описание элемента
amount objectrequired
Денежная сумма в соответствии с AP2
Трехбуквенный код валюты по ISO 4217
Денежное значение
Указывает, что сумма не является окончательной
Период возврата в днях
options object
Опции оплаты в соответствии с AP2
Запрашивать имя плательщика
Запрашивать email плательщика
Запрашивать телефон плательщика
Запрашивать адрес доставки
Возможные значения: [shipping, delivery, pickup]
Тип доставки
shippingAddress object
Контактный адрес в соответствии с AP2
JWT подпись мерчанта (base64url encoded)
Уникальный идентификатор мандата
Процесс распределения подписанного мандата:
- Клиент подтверждает заказ и подписывает мандат в приложении Сбера.
- GigaChat отправляет запрос
share_fully_signed_mandateс полностью подписанным мандатом. - MCP-сервер сохраняет мандат в системе мерчанта для разрешения диспутов: