Skip to main content
Glama

ARC-1 — SAP ADT MCP Server

ARC-1 (произносится arc one [ɑːrk wʌn]) — готовый к промышленной эксплуатации MCP-сервер для систем SAP ABAP. Безопасен по умолчанию, развертывается в BTP или локально (on-premise), усилен обширным покрытием модульными, интеграционными и E2E-тестами.

ARC-1 подключает ИИ-ассистентов (Claude, GitHub Copilot, Copilot Studio и любой MCP-клиент) к системам SAP через ADT REST API. Поставляется как npm-пакет и Docker-образ.

Полная документация | Руководство по настройке | Справочник инструментов

Почему ARC-1?

Создан для организаций, которым необходима разработка в SAP с помощью ИИ и встроенными средствами контроля. Вдохновлен новаторскими работами abap-adt-api, mcp-abap-adt и vibing-steampunk — ARC-1 добавляет функции, необходимые для работы в продакшене:

Безопасность и административный контроль

  • Безопасность по умолчанию — только чтение, никакого произвольного SQL, предварительного просмотра таблиц или переносов «из коробки». Используйте --profile developer или явные флаги для включения возможностей.

  • Списки разрешенных/запрещенных операций — точный контроль того, какие типы операций (чтение, запись, поиск, запрос, активация, перенос) разрешены.

  • Ограничения пакетов — ограничение операций записи ИИ (создание, обновление, удаление) конкретными пакетами с использованием масок (--allowed-packages "Z*,$TMP"). Операции чтения не ограничиваются пакетами — используйте встроенную авторизацию SAP для контроля доступа на уровне чтения.

  • Контроль доступа к данным — включение предварительного просмотра данных таблиц (--block-data=false) или произвольного SQL (--block-free-sql=false).

  • Безопасность переносов — требование назначения переносов, ограничение конкретными переносами или перевод переносов в режим «только чтение». Операции обновления/удаления автоматически используют номер коррекции блокировки, если не указан явный перенос.

  • Профили безопасности — предустановленные роли: viewer, viewer-data, viewer-sql, developer, developer-data, developer-sql.

  • Запись ограничена $TMP при включении — только локальные/временные объекты; запись в переносимые пакеты требует явного указания --allowed-packages.

Аутентификация

  • API-ключ — простой Bearer-токен для внутренних развертываний.

  • OIDC / JWT — Entra ID, Keycloak или любой провайдер OpenID Connect.

  • OAuth 2.0 — вход через браузер для BTP ABAP Environment.

  • XSUAA — нативная аутентификация SAP BTP с автоматическим проксированием токенов для MCP-клиентов.

  • Principal Propagation — идентификация пользователя передается через Cloud Connector (каждое действие в SAP выполняется от имени реального пользователя, а не технической учетной записи).

Развертывание в BTP Cloud Foundry

Развертывайте ARC-1 как приложение Cloud Foundry в SAP BTP с полной интеграцией с платформой:

  • Destination Service — подключение к системам SAP через управляемые назначения (destinations).

  • Cloud Connector — доступ к локальным системам через прокси-сервер соединений.

  • Principal Propagation — идентификация пользователя передается сквозным образом через сертификаты X.509.

  • XSUAA OAuth proxy — MCP-клиенты проходят аутентификацию через стандартный OAuth, ARC-1 обрабатывает обмен токенами BTP.

  • Журналирование аудита — структурированные события в stderr, файл или службу аудита BTP.

Эффективность токенов

  • 11 инструментов на основе намерений (~5 тыс. токенов схемы) вместо 200+ отдельных инструментов — это позволяет поддерживать небольшое контекстное окно LLM.

  • Чтение/редактирование на уровне методов — чтение или обновление одного метода класса, а не всего исходного кода (до 20 раз меньше токенов).

  • Сжатие контекстаSAPContext возвращает контракты публичных API всех зависимостей за один вызов (сжатие в 7-30 раз).

Встроенное кэширование объектов

  • Автоматическое кэширование исходного кода — каждое чтение объекта SAP кэшируется в памяти (stdio) или SQLite (http-streamable). Повторные чтения возвращаются мгновенно без обращения к SAP.

  • Кэширование графа зависимостей — разрешение зависимостей SAPContext по хешу исходного кода; неизмененные объекты пропускают все вызовы ADT при последующих запусках.

  • Предварительный прогрев — запустите с ARC1_CACHE_WARMUP=true для предварительной индексации всех пользовательских объектов при старте, что позволит выполнять обратный поиск зависимостей (SAPContext(action="usages")).

  • Инвалидация при записи — когда SAPWrite изменяет объект, его запись в кэше автоматически удаляется; следующее чтение получает свежий исходный код.

См. docs/caching.md для получения полной документации.

Тестирование

  • 1367+ модульных тестов (53 файла модульных тестов, мокирование HTTP).

  • ~160 интеграционных тестов против реальных систем SAP с явными причинами пропуска, если отсутствуют учетные данные или фикстуры.

  • ~70 E2E-тестов, которые выполняют реальные вызовы инструментов MCP к работающему серверу ARC-1 и реальной системе SAP.

  • Жизненный цикл CRUD и дымовые тесты BTP включены (test:integration:crud, test:integration:btp:smoke).

  • CI-матрица на Node 22 и 24; интеграционные + E2E-тесты запускаются при push в main и внутренних PR.

  • Телеметрия надежности + покрытие публикуются как информационные сигналы CI (не блокирующие).

Инструменты, адаптированные для реального использования

11 инструментов разработаны на основе обратной связи от реального взаимодействия с LLM:

Инструмент

Что он делает

SAPRead

Чтение исходного кода ABAP, данных таблиц, CDS-представлений, расширений метаданных (DDLX), привязок сервисов (SRVB), классов сообщений, объектов BOR, развернутых приложений UI5/Fiori (BSP, BSP_DEPLOY). Структурированный формат для классов возвращает метаданные + декомпозированные инклюды в виде JSON

SAPSearch

Поиск объектов + полнотекстовый поиск исходного кода по всей системе

SAPWrite

Создание/обновление/удаление исходного кода ABAP и метаданных DDIC с автоматической блокировкой/разблокировкой (PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, DOMA, DTEL). Пакетное создание для рабочих процессов с несколькими объектами (например, стек RAP или домен+элемент данных за один вызов)

SAPActivate

Активация объектов ABAP — одиночная или пакетная (необходимо для стеков RAP). Публикация/отмена публикации привязок OData-сервисов (SRVB)

SAPNavigate

Переход к определению, поиск ссылок, автодополнение кода

SAPQuery

Выполнение ABAP SQL с предложениями при отсутствии таблицы

SAPTransport

Управление переносами CTS (список, создание, выпуск)

SAPContext

Сжатый контекст зависимостей — один вызов заменяет N вызовов SAPRead

SAPLint

Локальный линтинг ABAP (пресеты с учетом системы, автоисправление, проверка перед записью)

SAPDiagnose

Проверка синтаксиса, модульные тесты ABAP, качество кода ATC, дампы, профилировщик

SAPManage

Зондирование функций — определение того, что поддерживает система, перед выполнением действий

Определения инструментов автоматически адаптируются к целевой системе (BTP или on-premise), удаляя недоступные типы и корректируя описания, чтобы LLM никогда не пыталась выполнить неподдерживаемые операции.

Определение функций

ARC-1 опрашивает систему SAP при запуске и адаптирует свое поведение:

  • Обнаруживает HANA, abapGit, RAP/CDS, AMDP, UI5 и доступность переносов.

  • Автоматически определяет системы BTP или on-premise.

  • Сопоставляет версию SAP_BASIS с правильной версией языка ABAP.

  • Каждую функцию можно принудительно включить/выключить или оставить в режиме автоопределения.

Быстрый старт

npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USER

Информацию о Docker, развертывании в BTP, настройке клиентов (Claude Desktop, Claude Code, VS Code, Copilot Studio) и всех методах аутентификации см. в Руководстве по настройке.

Документация

Полная документация доступна по адресу marianfoo.github.io/arc-1.

Руководство

Описание

Руководство по настройке

Варианты развертывания, методы аутентификации, настройка клиента

Справочник инструментов

Полный справочник по всем 11 инструментам

Архитектура

Архитектура системы со схемами

Руководство по Docker

Справочник по развертыванию Docker

Корпоративная аутентификация

Все методы аутентификации

Развертывание в BTP

Развертывание Cloud Foundry в SAP BTP

Паттерны использования ИИ

Паттерны рабочих процессов агентов и лучшие практики

Разработка

npm ci && npm run build && npm test

См. CLAUDE.md для ознакомления со структурой кодовой базы, командами тестирования и правилами внесения вклада.

Авторы

Проект

Автор

Вклад

vibing-steampunk

oisee

Оригинальный Go MCP-сервер — отправная точка ARC-1

abap-adt-api

Marcello Urbani

TypeScript ADT-библиотека, эталонный справочник API

mcp-abap-adt

Mario Andreschak

Первый MCP-сервер для ABAP ADT

abaplint

Lars Hvam

Парсер/линтер ABAP (используется через @abaplint/core)

Лицензия

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marianfoo/arc-1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server