Руководство по коннектору8 мин чтения7 языков

OData в MCP: подключить OData V2/V4 и SAP Gateway к Claude

Превратите любой сервис OData V2 или V4, включая SAP Gateway, в инструменты MCP для Claude, ChatGPT и Copilot. Читает $metadata: названия, ключи, единицы.

HCАвтор: команда HelpCodeОбновлено 8 мин чтения Открытый код на GitHub

Без банковской карты · 7 дней пробного периода · Есть вариант self-host

  • 7 дней бесплатно
    Без банковской карты
  • GDPR и готовность к SOC 2
    Данные в ЕС, журналы аудита
  • Открытый код на GitHub
    Open source · AGPL-3.0
  • Работает с ChatGPT, Claude, Gemini
    Любой MCP-совместимый клиент

Кратко

Превратите любой сервис OData V2 или V4, включая SAP Gateway, в инструменты MCP для Claude, ChatGPT и Copilot. Читает $metadata: названия, ключи, единицы.

Коротко: В AnythingMCP есть тип коннектора OData. Укажите ему сервис OData V2 или V4 либо SAP Gateway, и Claude, ChatGPT и Copilot получат пять инструментов: находить сервисы, читать их наборы сущностей и поля с бизнес-названиями, запрашивать строки и получать одну сущность по ключу. Запросы проверяются по $metadata перед отправкой, серверная постраничная выдача обрабатывается автоматически, а ответы V2 и V4 возвращаются в виде простых строк. Кроме того, $metadata сервиса можно импортировать как именованные инструменты: по одному инструменту list и get на каждый набор сущностей.

Основное
ПротоколыOData V2 и V4, версия определяется по $metadata
SAPКаталог сервисов Gateway (V2 и V4), sap-client, sap-language, CSRF-токены для записи
Встроенные инструменты5, только чтение: список сервисов, описание сервиса, описание сущности, запрос, получение сущности
Импорт$metadata → инструменты <set>_list и <set>_get для каждого набора сущностей
АутентификацияЛюбой метод REST: Basic, OAuth 2.0, API-ключ, сертификаты, токен входа
ПровереноNorthwind V2 и V4 и TripPin V4 на services.odata.org
РазмещениеНа своём сервере (open source, AGPL-3.0) или AnythingMCP Cloud

Почему OData нужно больше, чем импорт REST

Сервис OData описывает сам себя. Его документ $metadata перечисляет все наборы сущностей, их ключи, тип каждого поля, а в случае SAP ещё и название, которое пользователь видит на экране, валюту или единицу измерения каждой суммы и то, какие поля являются измерениями, а какие показателями. Универсальный импорт REST отбрасывает большую часть этого, и модели приходится угадывать, что сумма NetAmount указана в валюте из TransactionCurrency или что аналитический сервис нужно фильтровать по параметру.

Коннектор OData читает $metadata и передаёт его модели. Claude видит, что у NetAmount название Net Amount и валюта в TransactionCurrency, а если он ошибётся в имени поля, коннектор ответит «Unknown field … Did you mean …», вместо того чтобы передавать ошибку серверу.

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

  • Тип коннектора OData. Выберите OData при создании коннектора. Для системы SAP отметьте SAP Gateway (S/4HANA, ECC, BW): базовым URL будет хост, например https://s4.example.com:44300, а сервисы берутся из каталога SAP. Для отдельного сервиса OData оставьте флажок снятым: базовым URL будет корень сервиса, например https://services.example.com/odata/v4/Sales.
  • REST-коннектор с настройками OData. REST-коннектор, в настройках которого есть блок odata, получает те же встроенные инструменты; его собственные инструменты остаются обычными вызовами REST. Так устроен адаптер SAP S/4HANA Cloud.

Оба варианта работают на движке REST, поэтому доступны все методы аутентификации REST, а также повторные попытки, защита исходящих запросов от SSRF и прокси.

Встроенные инструменты

Каждый коннектор OData получает пять инструментов с именами <prefix>_…. Префикс состоит из имени коннектора и _odata либо задаётся вами.

ИнструментЧто делает
<prefix>_list_servicesSAP: ищет в каталоге сервисов Gateway, V2 и V4, с кешированием на час. В остальных случаях возвращает сервисы, перечисленные в настройках, или единственный корень сервиса.
<prefix>_describe_serviceНаборы сущностей с названиями, ключами и числом полей, с пометками analytical (агрегирует сервер), parameters (параметризованное представление), requiredInFilter или readOnly. $metadata кешируется на 24 часа.
<prefix>_describe_entityКаждое поле с названием, типом, признаком ключа, полем валюты или единицы, текстовым полем, возможностью фильтрации и сортировки и ролью измерения или показателя; навигационные свойства; подсказки для аналитических и параметризованных наборов.
<prefix>_queryselect, filter, orderby, top (до 1000), skip, expand, parameters, а для V4 ещё apply и search. Сначала проверяются имена полей, соблюдаются обязательные фильтры, серверная постраничная выдача обрабатывается только на хосте самого коннектора, а ответ приводится к плоскому виду: простые строки, даты в ISO, десятичные числа строками, общее количество и nextSkip.
<prefix>_get_entityОдна сущность по ключу, в том числе по составному, например {"SalesOrder": "1", "SalesOrderItem": "10"}.

Встроенные инструменты только читают данные и помечены для MCP-клиентов как инструменты только для чтения.

Настройка

Шаг 1: Запустите AnythingMCP

Для публичного сервиса OData подойдёт AnythingMCP Cloud без дополнительной настройки. Для SAP Gateway или любого сервиса в вашей собственной сети разверните AnythingMCP на своём сервере там, откуда этот сервис доступен:

mkdir anythingmcp && cd anythingmcp
curl -fsSLo docker-compose.yml \
  https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d   # → http://localhost:3000

Добавьте внутренние имена хостов в SSRF_ALLOWED_HOSTS; по умолчанию AnythingMCP отклоняет частные адреса.

Шаг 2: Создайте коннектор OData

Создайте новый коннектор, выберите OData и введите базовый URL. Чтобы попробовать без регистрации где бы то ни было, возьмите публичный сервис Northwind: https://services.odata.org/V4/Northwind/Northwind.svc, флажок SAP Gateway снят, без аутентификации. Для SAP отметьте SAP Gateway и укажите трёхзначный мандант и язык.

Шаг 3: Настройте аутентификацию и ограничьте сервисы

Выберите аутентификацию, которую ожидает ваш сервис: Basic с техническим пользователем, OAuth 2.0 (client credentials или authorization code), API-ключ, клиентский сертификат или токен входа. В настройках OData коннектора перечислите в поле Allowed services пути сервисов, которые может вызывать модель (* работает как подстановочный знак); остальные сервисы отклоняются.

Шаг 4: Проверьте подключение и импортируйте инструменты

Test connection читает каталог SAP или $metadata сервиса. Если вам нужны именованные инструменты для наборов сущностей, которые модель использует чаще всего, откройте Import Tools → OData $metadata, укажите путь сервиса (SAP) или оставьте поле пустым (отдельный сервис) и выберите наборы сущностей. Подробнее ниже.

Шаг 5: Подключите Claude, ChatGPT или Copilot

  • Claude: Customize → Connectors → Add custom connector, вставьте URL вашего MCP-сервера. Пошагово: как добавить пользовательский коннектор в Claude.
  • ChatGPT: добавьте тот же публичный HTTPS-URL как коннектор (приложение) в настройках ChatGPT.
  • Claude Code, Cursor, VS Code / Copilot: добавьте URL с заголовком X-API-Key.

Импорт инструментов из $metadata

Import Tools → OData $metadata превращает наборы сущностей в именованные инструменты: <set>_list с filter, select, orderby, top, skip и expand и <set>_get с параметрами ключа. Документ загружается с учётными данными коннектора; можно также вставить документ $metadata вручную и ограничить импорт отдельными наборами сущностей. Повторный импорт сервиса обновляет его инструменты и выводит из использования только те инструменты этого сервиса, которые исчезли, но никогда не трогает встроенные инструменты или инструменты другого сервиса.

В коннекторе OData импортированные и написанные вручную HTTP-инструменты получают мандант и язык SAP, формат JSON для V2 и ответы в плоском виде. Операции записи в SAP (POST, PUT, PATCH, DELETE) сначала получают CSRF-токен вместе с cookie сессии. Запись выполняется только через инструменты, которые вы импортируете или пишете сами.

SAP Gateway: S/4HANA, ECC и BW

  1. Технический пользователь типа System с продуктивным паролем в том манданте, который вы хотите читать.
  2. Роль с S_SERVICE для сервисов, которые может вызывать модель, и бизнес-полномочиями только на просмотр. Для просмотра каталога также нужны сервис каталога V2 /IWFND/CATALOGSERVICE и каталог V4. SAP проверяет эти полномочия при каждом вызове; именно они и являются настоящей границей.
  3. Активные сервисы в /IWFND/MAINT_SERVICE (V2) и /IWFND/V4_ADMIN (V4).
  4. Сеть: порт Gateway обычно внутренний. Разверните AnythingMCP на своём сервере внутри сети или подключайтесь к нему через VPN.

Политика SAP в отношении API предполагает, что сторонние интеграции используют опубликованные API (сервисы API_* в SAP Business Accelerator Hub) или сервисы, созданные вами; ограничьте Allowed services соответствующим образом.

Для S/4HANA on-premise и Private Cloud есть готовый адаптер SAP S/4HANA (OData). Он настраивает всё это с префиксом s4 (s4_list_services, s4_describe_service, s4_describe_entity, s4_query, s4_get_entity) и добавляет готовые инструменты для позиций проводок, документов фактуры, заказов клиентов, бизнес-партнёров, запасов материалов и продуктов, а также s4_guide, руководство по фильтрам, аналитическим сервисам и KPI. Он устанавливается с аутентификацией Basic, а затем коннектор можно переключить на OAuth 2.0. Адаптер SAP S/4HANA Cloud содержит те же встроенные инструменты под именами s4_cloud_* поверх своих API на базе communication arrangement.

Если вы предпочитаете читать таблицы S/4HANA напрямую, см. SAP S/4HANA через HANA SQL.

Настройки

НастройкаЗначение
SAP GatewayПоиск по каталогу и параметры SAP. Включается автоматически, если задан мандант SAP.
Мандант SAPТрёхзначный мандант, отправляется как sap-client в каждом запросе.
ЯзыкОтправляется как sap-language, например EN.
Allowed servicesПути сервисов, которые может вызывать модель, * как подстановочный знак.
Версияv2 или v4, чтобы переопределить версию, определённую по $metadata.
Max rowsОграничение числа строк на запрос, не более 1000.
Префикс инструментовПрефикс имён встроенных инструментов.

Любая настройка может содержать {{VARIABLES}} из переменных окружения коннектора.

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

  • «Какие сервисы в каталоге работают с документами фактуры?»
  • «Опиши сущность заказа клиента: какие поля содержат суммы и в какой валюте?»
  • «Чистая выручка по сбытовым организациям за сентябрь, по документам фактуры»
  • «Покажи заказ клиента 1 со всеми позициями»
  • Для Northwind: «Какие десять товаров имеют самую высокую цену за единицу и какой поставщик их поставляет?»

FAQ

Какие версии OData поддерживаются? V2 и V4. Версия определяется по $metadata; её можно переопределить в настройках.

Нужно ли сначала конвертировать $metadata в OpenAPI? Нет. Коннектор OData читает $metadata напрямую, а Import Tools → OData $metadata создаёт на его основе инструменты.

Может ли Claude изменять данные через OData? Не через пять встроенных инструментов: они только читают. Для записи нужны инструменты, которые вы импортируете или пишете сами, и роль MCP-сервера может их исключить; при записи в SAP CSRF-токен получается автоматически.

Работает ли это с SAP S/4HANA on-premise и ECC? Да, через SAP Gateway, с AnythingMCP на своём сервере, из которого Gateway доступен. Адаптер SAP S/4HANA (OData) даёт самый быстрый старт для S/4HANA.

Как обрабатываются большие результаты? Запрос возвращает не более 1000 строк. Коннектор следует серверной постраничной выдаче на том же хосте и возвращает nextSkip, чтобы модель могла запросить следующую страницу.

Работает ли это также с ChatGPT и Copilot? Да. Тот же MCP-сервер работает в Claude, ChatGPT, GitHub Copilot, Cursor и Claude Code.

См. также

Это руководство помогло?

MCP для вашего стека за 60 секунд.

Запустите AnythingMCP в управляемом облаке или разместите на своей инфраструктуре. 7 дней бесплатно, без банковской карты.

Похожие руководства

Коннекторы

Baserow в MCP — управляйте Baserow из любого AI-агента

Чтение таблиц, полей и строк из Baserow Cloud или собственного экземпляра. 4 универсальных инструмента только для чтения с аутентификацией по токену базы данных.

OJ
Коннекторы

Odoo 14-18 (JSON-RPC) в MCP — управляйте Odoo 14-18 (JSON-RPC) из любого AI-агента

Odoo ERP 14–18 через классический эндпоинт JSON-RPC: поиск, чтение, создание и изменение любой модели, а также контрагенты, заказы на продажу, счета и товары. Для Odoo Online, Odoo.sh и self-hosted Odoo до версии 19 (работает и с 19). API-ключ + ID пользователя.

Коннекторы

Splunk в MCP — управляйте Splunk из любого AI-агента

Поиск по логам и метрикам Splunk из Claude, ChatGPT или Copilot через официальный MCP Server от Splunk: запуск SPL и сохранённых поисков, список индексов, хостов и источников, чтение объектов знаний и составление SPL с помощью Splunk AI Assistant.

Коннекторы

Firma.dev в MCP — управляйте Firma.dev из любого AI-агента

Электронная подпись Firma.dev для любого ИИ-агента: шаблоны, запросы на подпись из шаблона, отправка и напоминания, статус получателей, журнал аудита и подписанные PDF. 13 инструментов, аутентификация по API-ключу, бесплатные тестовые ключи.

Коннекторы

MCP-сервер Google Ads: подключи Google Ads к Claude, ChatGPT и агентам

Спрашивай Claude или ChatGPT о Google Ads: кампании, поисковые запросы, показатель качества, бюджеты, конверсии. Только чтение, без токена разработчика.

Коннекторы

Google Search Console в MCP — управляйте Google Search Console из любого AI-агента

Google Search Console для ИИ-агентов: эффективность в поиске (запросы, страницы, страны, устройства, клики, показы, CTR, позиция), проверка URL, файлы Sitemap и ресурсы, а также встроенный SEO-playbook. 11 инструментов, OAuth2.