ARC-1
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-warmer —
ARC1_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
22및24;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 언어 버전으로 매핑
각 기능은 강제로 켜기/끄기하거나 자동 감지 상태로 둘 수 있음
Related MCP server: SAP ERP MCP Server by CData
빠른 시작
npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USERDocker, BTP 배포, 클라이언트 구성(Claude Desktop, Claude Code, VS Code, Copilot Studio) 및 모든 인증 방법에 대한 자세한 내용은 **설정 가이드**를 참조하세요.
문서
전체 문서는 **marianfoo.github.io/arc-1**에서 확인할 수 있습니다.
가이드 | 설명 |
배포 옵션, 인증 방법, 클라이언트 구성 | |
11개 도구에 대한 전체 참조 | |
다이어그램이 포함된 시스템 아키텍처 | |
Docker 배포 참조 | |
모든 인증 방법 | |
SAP BTP에서의 Cloud Foundry 배포 | |
에이전트 워크플로 패턴 및 모범 사례 |
개발
npm ci && npm run build && npm test코드베이스 구조, 테스트 명령 및 기여 가이드라인은 CLAUDE.md를 참조하세요.
크레딧
프로젝트 | 작성자 | 기여 |
oisee | 원본 Go MCP 서버 — ARC-1의 시작점 | |
Marcello Urbani | TypeScript ADT 라이브러리, 결정적인 API 참조 | |
Mario Andreschak | ABAP ADT를 위한 첫 번째 MCP 서버 | |
Lars Hvam | ABAP 파서/린터(@abaplint/core를 통해 사용) |
라이선스
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP Server for Nutanix Prism Central14MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP ERP data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out our MCP Server for SAP ERP (https://www.cdata.com/drivers/sap/download/mcp).6MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP Business One data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).14MIT
- AlicenseAqualityAmaintenanceABAP Development Tools MCP server with comprehensive tooling and documentation for SAP systems1001,08577MIT
Related MCP Connectors
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
MCP server for fcc-ecfs
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/arc-mcp/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server