Руководство по коннектору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 как свой MCP-сервер на странице Plugins (+, Add custom MCP server).
  • 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 дней бесплатно, без банковской карты.

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

Коннекторы

Algolia в MCP: поиск, записи и аналитика поиска в любом AI-агенте

Дайте ИИ искать и проверять ваши индексы Algolia: показывать индексы, искать и выгружать записи, читать настройки, синонимы и Rules, смотреть популярные запросы и запросы без результатов, а с вашего подтверждения добавлять и обновлять записи.

Коннекторы

Google BigQuery в MCP: исследуйте данные и выполняйте запросы из любого AI-агента

Дайте ИИ исследовать Google BigQuery и выполнять запросы: выводить проекты, наборы данных и таблицы, читать схемы, бесплатно просматривать строки, оценивать стоимость запроса пробным запуском (dry run) перед выполнением, листать результаты и проверять историю заданий. Вход через ваш аккаунт Google.

Коннекторы

Bitbucket в MCP: ревью кода, пул-реквесты и пайплайны в любом AI-агенте

Дайте ИИ работать в Bitbucket Cloud: просматривать репозитории, ветки, коммиты и файлы, проверять пул-реквесты с диффами и комментариями, одобрять, комментировать и сливать их после вашего подтверждения, а также проверять запуски Bitbucket Pipelines, логи шагов и деплои.

Коннекторы

Browserbase в MCP: облачные браузерные сессии, Fetch и поиск в любом AI-агенте

Управляйте облачными браузерами Browserbase из своего ИИ: запускайте и завершайте сессии, получайте ссылки live view для отладки, читайте логи и записи сессий, проверяйте израсходованные браузерные минуты и загружайте страницы или ищите в интернете через Browserbase.

Коннекторы

CircleCI в MCP: пайплайны, упавшие тесты и перезапуски в любом AI-агенте

Дайте ИИ проверять CircleCI: пайплайны, воркфлоу и джобы, упавшие тесты и артефакты, метрики Insights и нестабильные тесты, контексты и имена переменных, а после вашего подтверждения запускать пайплайны, перезапускать и отменять воркфлоу.

Коннекторы

Databricks в MCP: SQL, Unity Catalog и задания в любом AI-агенте

Дайте ИИ работать с вашим workspace в Databricks: выполнять SQL на warehouse, изучать каталоги, схемы и таблицы Unity Catalog, проверять кластеры, warehouses, задания и запуски, читать ноутбуки, а после вашего подтверждения запускать и останавливать вычисления или задания. Подключение по personal access token.