Skip to main content
Glama

ARC-1 — SAP ADT MCP 서버

ARC-1 (발음: arc one [ɑːrk wʌn]) — SAP ABAP 시스템을 위한 엔터프라이즈급 MCP 서버입니다. 기본적으로 보안이 적용되어 있으며, BTP 또는 온프레미스에 배포 가능하고, 대규모 단위/통합/E2E 테스트 커버리지로 강화되었습니다.

ARC-1은 ADT REST API를 통해 AI 어시스턴트(Claude, GitHub Copilot, Copilot Studio 및 모든 MCP 클라이언트)를 SAP 시스템에 연결합니다. npm 패키지Docker 이미지로 제공됩니다.

전체 문서 | 설정 가이드 | 도구 참조

왜 ARC-1인가?

가드레일이 포함된 AI 지원 SAP 개발이 필요한 조직을 위해 구축되었습니다. abap-adt-api, mcp-abap-adt, vibing-steampunk의 선구적인 작업에서 영감을 받았으며, ARC-1은 프로덕션 환경에서 실행하는 데 필요한 기능을 추가했습니다:

보안 및 관리 제어

  • 기본적으로 안전함 — 읽기 전용, 자유 SQL 금지, 테이블 미리보기 금지, 기본적으로 전송(transport) 금지. --profile developer 또는 명시적 플래그를 사용하여 기능 활성화

  • 작업 허용/차단 목록 — 어떤 작업 유형(읽기, 쓰기, 검색, 쿼리, 활성화, 전송)이 허용되는지 정확하게 제어

  • 패키지 제한 — AI 쓰기 작업(생성, 업데이트, 삭제)을 와일드카드가 포함된 특정 패키지로 제한(--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 환경을 위한 브라우저 기반 로그인

  • XSUAA — MCP 클라이언트를 위한 자동 토큰 프록시가 포함된 SAP BTP 기본 인증

  • Principal Propagation — Cloud Connector를 통해 전달되는 사용자별 ID(모든 SAP 작업은 기술 계정이 아닌 실제 사용자로 실행됨)

BTP Cloud Foundry 배포

전체 플랫폼 통합을 통해 SAP BTP에서 Cloud Foundry 앱으로 ARC-1을 배포하세요:

  • Destination 서비스 — 관리형 대상을 통해 SAP 시스템에 연결

  • Cloud Connector — 연결 프록시를 통해 온프레미스 시스템에 도달

  • Principal Propagation — X.509 인증서를 통해 종단 간 사용자 ID 전달

  • XSUAA OAuth 프록시 — MCP 클라이언트는 표준 OAuth를 통해 인증하고, ARC-1은 BTP 토큰 교환을 처리

  • 감사 로깅 — stderr, 파일 또는 BTP 감사 로그 서비스에 대한 구조화된 이벤트

토큰 효율성

  • 11개의 의도 기반 도구(~5K 스키마 토큰) — 200개 이상의 개별 도구 대신 LLM의 컨텍스트 창을 작게 유지

  • 메서드 수준 읽기/편집 — 전체 소스가 아닌 단일 클래스 메서드를 읽거나 업데이트(토큰 최대 20배 절감)

  • 컨텍스트 압축SAPContext는 한 번의 호출로 모든 종속성의 공개 API 계약을 반환(7-30배 압축)

내장 객체 캐싱

  • 자동 소스 캐싱 — 읽은 모든 SAP 객체는 메모리(stdio) 또는 SQLite(http-streamable)에 캐시됨. 반복 읽기는 SAP를 호출하지 않고 즉시 반환됨.

  • 종속성 그래프 캐싱 — 소스 해시로 키가 지정된 SAPContext 종속성 해결; 변경되지 않은 객체는 후속 실행 시 모든 ADT 호출을 건너뜀.

  • Pre-warmerARC1_CACHE_WARMUP=true로 시작하여 시작 시 모든 사용자 지정 객체를 사전 인덱싱하여 역방향 종속성 조회(SAPContext(action="usages")) 활성화.

  • 쓰기 무효화SAPWrite가 객체를 수정하면 캐시 항목이 자동으로 삭제됨; 다음 읽기 시 최신 소스를 가져옴.

전체 문서는 **docs/caching.md**를 참조하세요.

테스트

  • 1,367개 이상의 단위 테스트(53개의 단위 테스트 파일, 모의 HTTP)

  • 약 160개의 통합 테스트 — 라이브 SAP 시스템 대상, 자격 증명이나 픽스처가 누락된 경우 명시적인 건너뛰기 사유 포함

  • 약 70개의 E2E 테스트 — 실행 중인 ARC-1 서버 및 라이브 SAP 시스템에 대해 실제 MCP 도구 호출 실행

  • CRUD 수명 주기 및 BTP 스모크 레인 포함(test:integration:crud, test:integration:btp:smoke)

  • CI 매트릭스 — Node 2224; main으로의 push 및 내부 PR에서 통합 + E2E 실행

  • 신뢰성 원격 측정 + 커버리지 — 정보 제공용 CI 신호로 게시됨(비차단)

실제 사용을 위해 개선된 도구

11개의 도구는 실제 LLM 상호 작용 피드백을 기반으로 설계되었습니다:

도구

기능

SAPRead

ABAP 소스, 테이블 데이터, CDS 뷰, 메타데이터 확장(DDLX), 서비스 바인딩(SRVB), 메시지 클래스, BOR 객체, 배포된 UI5/Fiori 앱(BSP, BSP_DEPLOY) 읽기. 클래스에 대한 구조화된 형식은 메타데이터 + 분해된 include를 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 vs 온프레미스)에 자동으로 적응하여 사용할 수 없는 유형을 제거하고 설명을 조정하므로 LLM이 지원되지 않는 작업을 시도하지 않습니다.

기능 감지

ARC-1은 시작 시 SAP 시스템을 조사하고 동작을 조정합니다:

  • HANA, abapGit, RAP/CDS, AMDP, UI5 및 전송 가용성 감지

  • BTP vs 온프레미스 시스템 자동 감지

  • 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 배포

SAP BTP에서의 Cloud Foundry 배포

AI 사용 패턴

에이전트 워크플로 패턴 및 모범 사례

개발

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

ABAP ADT를 위한 첫 번째 MCP 서버

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