workskong/mcp-abap-adt
A deliberately light MCP adapter over ABAP ADT for object search, source, DDIC metadata, a data preview and runtime diagnostics, read-only in practice and documented in Korean.
Describes itself as a lightweight adapter rather than a development platform, and the tool list matches: search classes, programs and interfaces; read source for classes, programs, function modules and includes; read table structures, CDS views, data elements and domains; preview the actual data behind a DDIC entity; and reach ABAP traces and runtime dumps. Nothing about writing, activation or transports.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@workskongmaintainer
Before choosing this
Conditions
PracticalFunctional boundary
Read-only in practice, and the documentation is Korean; the tool names are English but the guidance around them is not.
PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your codeAn MCP server calls ADT or another SAP API of a running system for an agent.
- § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
- § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
- § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.
An agent that plans and executes ADT calls is the case section 2.2.2 names. Check that the endpoints are published for the intended use, and that the design runs within a pathway SAP identifies for it.
SAP API Policy 4.2026a →What it declares
Every artifact
- Type
- MCP server
- Origin
- Independently maintained
- Runtime
- Node.js
As an MCP server
- Runs as
- central serverlocal process
- Transport
- stdioHTTPSSE
- Authentication
- user and password
- Tools
- 24
For agent access to ABAP code
- Read
- sourcesearchwhere-usedDDICCDStable data
- Change
- writecreateactivatetransportsgit
- Check
- syntaxATCABAP Unit
- Run
- run codedumps
Connections
Letting a coding agent read and act on your project or system
Download
Architecture
Download
README
quoted from workskong/mcp-abap-adt under MIT, readmcp-abap-adt
SAP ABAP ADT용 MCP 서버 - ADT(ABAP Development Tools) 서비스를 통해 SAP ABAP 메타데이터, 소스 코드, 진단 정보를 통합적으로 제공하는 경량 Model Context Protocol(MCP) 어댑터입니다.
✨ 기능
- 🔍 ABAP 객체 검색 - 클래스, 프로그램, 인터페이스 등 다양한 객체를 검색합니다.
- 📖 소스 코드 조회 - ABAP 클래스, 프로그램, 함수 모듈, include를 확인합니다.
- 🗂️ DDIC 메타데이터 - 테이블 구조, CDS 뷰, 데이터 요소, 도메인을 조회합니다.
- 📊 데이터 미리보기 - DDIC 엔터티의 실제 데이터를 미리 봅니다.
- 🔧 런타임 진단 - ABAP trace와 runtime dump 분석에 접근합니다.
- 🧪 ATC 품질 검사 - ATC(ABAP Test Cockpit) 실행 결과 목록과 상세 findings를 조회합니다.
- 🚀 이중 모드 지원 - stdio(MCP 표준)와 HTTP/SSE를 모두 지원합니다.
- 🐳 Docker 지원 - 배포용 컨테이너 이미지를 제공합니다.
- 🔐 유연한 인증 - Basic Auth, 헤더 기반 인증, 환경 변수 인증을 지원합니다.
🏃 빠른 시작
사전 요구 사항
- Node.js ≥ 18 (운영 환경에는 Node.js 22 LTS 권장)
- npm (Node.js에 포함)
- TypeScript (devDependencies로 설치됨)
- ADT 서비스가 활성화된 SAP 시스템
🚀 설치 및 설정
# 저장소 복제
git clone https://github.com/workskong/mcp-abap-adt.git
cd mcp-abap-adt
# 의존성 설치
npm ci
# TypeScript 빌드
npm run build
# 환경 템플릿 복사(선택 사항)
cp .env.example .env
서버 실행
📡 MCP 모드(stdio) - 기본값
npm start
이 모드는 MCP 표준 방식으로 stdio를 통해 서버를 실행하며, MCP 클라이언트와 inspector에 적합합니다.
🌐 HTTP/SSE 모드(원격)
# 필요한 환경 변수 설정
$env:PORT = '6969'
# SSE 지원이 포함된 HTTP 서버 시작
npm run start-remote
원격 모드는 웹 기반 클라이언트를 위해 HTTP 엔드포인트와 Server-Sent Events를 제공합니다.
🔍 개발 모드
npm run dev
디버깅과 개발을 위해 MCP inspector와 함께 실행됩니다.
🌐 원격 HTTP 엔드포인트
HTTP/SSE 모드(--remote)로 실행하면 다음 엔드포인트를 사용할 수 있습니다.
| Method | Endpoint | Description | Content-Type |
|---|---|---|---|
| 🟢 GET | / | 서버 상태 및 헬스 정보 | application/json |
| 📋 GET | /tools | 사용 가능한 모든 도구와 스키마 목록 | application/json |
| 🔧 POST | /call | 이름으로 도구 실행 | application/json |
| 📡 GET | /events | 실시간 업데이트용 Server-Sent Events 스트림 | text/event-stream |
| 🧪 POST | /emit | 테스트용 SSE 이벤트 전송(개발 전용) | application/json |
| 🔌 POST | / | 대체 MCP JSON-RPC 엔드포인트 | application/json |
🔐 인증 옵션
서버는 여러 인증 방식을 지원합니다.
- Basic Authentication - 표준 HTTP Basic Auth 헤더 사용
- 사용자 정의 헤더 - 일반 인증에
X-Username/X-Password사용 - SAP 헤더 - SAP 전용 인증에
X-SAP_USERNAME/X-SAP_PASSWORD사용 - 환경 변수 - stdio 모드에서 환경 변수로 자격 증명 설정
🔌 MCP 클라이언트 설정 예시
아래 예시는 MCP 클라이언트(VS Code, Eclipse)를 위한 설정 예시입니다. 실제 자격 증명은 그대로 사용하고, 예시에서는 플레이스홀더를 사용합니다.
VS Code
원격(HTTP/SSE)
{
"inputs": [
{ "id": "SAP_USERNAME", "type": "promptString", "description": "SAP Username", "password": false },
{ "id": "SAP_PASSWORD", "type": "promptString", "description": "SAP Password", "password": true },
{ "id": "SAP_CLIENT", "type": "promptString", "description": "SAP Client", "password": false },
{ "id": "SAP_LANGUAGE", "type": "promptString", "description": "SAP Language", "password": false },
{ "id": "SAP_URL", "type": "promptString", "description": "SAP URL", "password": false }
],
"servers": {
"mcp-abap-adt": {
"type": "sse",
"url": "http://localhost:6969",
"headers": {
"X-SAP_USERNAME": "${input:SAP_USERNAME}",
"X-SAP_PASSWORD": "${input:SAP_PASSWORD}",
"X-SAP_CLIENT": "${input:SAP_CLIENT}",
"X-SAP_LANGUAGE": "${input:SAP_LANGUAGE}",
"X-SAP_URL": "${input:SAP_URL}"
}
}
}
}
로컬(stdio)
{
"servers": {
"mcp-abap-adt": {
"type": "stdio",
"command": "node",
"cwd": "C:/Users/{...}/Documents/mcp-abap-adt",
"args": [
"C:/Users/{...}/Documents/mcp-abap-adt/dist/index.js"
],
"env": {
"SAP_USERNAME": "DEV00",
"SAP_PASSWORD": "XXXX",
"SAP_CLIENT": "001",
"SAP_LANGUAGE": "EN",
"SAP_URL": "http://your-sap-server:50000"
}
}
}
}
이 예시들은 HTTP 기반 SSE 원격 연결 또는 서버를 자식 프로세스로 실행해 stdio로 통신하는 로컬 연결을 보여줍니다. 빌드 후 dist/index.js가 존재해야 합니다.
Eclipse
원격(HTTP/SSE)
{
"servers": {
"mcp-abap-adt": {
"url": "http://localhost:6969",
"requestInit": {
"headers": {
"X-SAP_USERNAME": "DEV00",
"X-SAP_PASSWORD": "XXXX",
"X-SAP_CLIENT": "001",
"X-SAP_LANGUAGE": "EN",
"X-SAP_URL": "http://your-sap-server:50000"
}
}
}
}
}
로컬(stdio)
{
"servers": {
"mcp-abap-adt": {
"type": "stdio",
"command": "node",
"cwd": "C:/Users/{...}/Documents/mcp-abap-adt",
"args": [
"C:/Users/{...}/Documents/mcp-abap-adt/dist/index.js"
],
"env": {
"SAP_USERNAME": "DEV00",
"SAP_PASSWORD": "XXXX",
"SAP_CLIENT": "001",
"SAP_LANGUAGE": "EN",
"SAP_URL": "http://your-sap-server:50000"
}
}
}
}
Eclipse는 원격 HTTP 래퍼에 연결하거나, 서버를 직접 실행해 stdio로 통신할 수 있습니다.
참고:
- 원격 모드에서는 클라이언트가 연결하기 전에
--remote와PORT(예: 6969)를 지정해 서버를 먼저 실행해야 합니다. - stdio 모드에서는 TypeScript 빌드 결과물인
dist/index.js가 생성되어 있어야 하며, Node.js 18+가 PATH에 있어야 합니다.
🐳 Docker 배포
🏗️ 이미지 빌드
docker build -t mcp-abap-adt:latest .
🚀 컨테이너 실행
기본 HTTP/SSE 모드:
docker run --rm \
-e PORT=6969 \
-e TLS_REJECT_UNAUTHORIZED=0 \
-p 6969:6969 \
mcp-abap-adt:latest
SAP 연결 포함:
docker run --rm \
-e PORT=6969 \
-e SAP_URL="http://your-sap-server:50000" \
-e TLS_REJECT_UNAUTHORIZED=0 \
-p 6969:6969 \
mcp-abap-adt:latest
환경 파일 사용:
docker run --rm \
--env-file .env \
-p 6969:6969 \
mcp-abap-adt:latest
🔍 컨테이너 헬스 체크
이 Docker 이미지는 서버 상태를 감시하는 자동 헬스 체크를 포함합니다. 서버가 연결을 받을 준비가 되면 컨테이너는 healthy 상태가 됩니다.
⚙️ 환경 변수
| Variable | Required | Default | Description |
|---|---|---|---|
PORT | Yes (remote mode) | 6969 | HTTP 서버 포트 |
NODE_ENV | No | production | 실행 환경(production, development) |
TLS_REJECT_UNAUTHORIZED | No | 0 | TLS 인증서 검증(0=비활성화, 1=활성화) |
SAP_URL | Yes | - | ADT 서비스가 활성화된 SAP ABAP 서버 URL |
SAP_USERNAME | No | - | SAP 사용자명(함수 파라미터가 없을 때 대체값) |
SAP_PASSWORD | No | - | SAP 비밀번호(함수 파라미터가 없을 때 대체값) |
SAP_CLIENT | No | - | SAP 클라이언트 번호(함수 파라미터가 없을 때 대체값) |
SAP_LANGUAGE | No | EN | 기본 SAP 언어(함수 파라미터가 없을 때 대체값) |
🔧 환경 변수 설정
Windows PowerShell:
$env:PORT = "6969"
$env:SAP_URL = "https://your-sap-server.company.com:8000"
$env:SAP_USERNAME = "your_username"
$env:SAP_PASSWORD = "your_password"
$env:SAP_CLIENT = "100"
$env:SAP_LANGUAGE = "EN"
$env:TLS_REJECT_UNAUTHORIZED = "0"
Linux/macOS:
export PORT=6969
export SAP_URL="https://your-sap-server.company.com:8000"
export SAP_USERNAME="your_username"
export SAP_PASSWORD="your_password"
export SAP_CLIENT="100"
export SAP_LANGUAGE="EN"
export TLS_REJECT_UNAUTHORIZED=0
.env 파일 사용:
cp .env.example .env
# .env 파일에 SAP 연결 정보를 입력
🔐 인증 우선순위
서버는 다음 우선순위로 여러 인증 방법을 지원합니다.
- 함수 파라미터 - 가장 높은 우선순위(각 도구 호출에 직접 전달)
- 환경 변수 - 함수 파라미터가 비어 있을 때 대체
- 헤더 - 원격 HTTP 모드에서 요청별 인증에 사용
SAP 인증 파라미터(_sapUsername, _sapPassword, _sapClient, _sapLanguage)가 함수 호출에 전달되지 않으면, 서버는 자동으로 환경 변수 값을 사용합니다. 이를 통해 자격 증명을 한 번만 환경에 설정해도 다양한 배포 방식에 대응할 수 있습니다.
🛠️ 제공 도구
이 서버는 SAP ABAP 시스템에 대한 포괄적인 접근을 위해 24개의 도구를 제공합니다. 각 도구의 상세 입력 스키마는 /tools 엔드포인트에서 확인할 수 있습니다.
🔍 검색 및 탐색
| Tool | Description | Key Parameters |
|---|---|---|
SearchObject | 시스템 전반에서 ABAP 객체 검색 | query, maxResults |
API_Releases | ADT 객체의 API 릴리스 정보 조회 | query |
📖 소스 코드 접근
| Tool | Description | Key Parameters |
|---|---|---|
Get_Class | ABAP 클래스 소스 코드 조회 | class_name |
Get_Program | ABAP 프로그램 소스 코드 조회 | program_name |
Get_Function | 함수 모듈 소스 조회 | function_name, function_group |
Get_FunctionGroup | 함수 그룹 소스 조회 | function_group |
Get_Include | ABAP include 소스 조회 | include_name |
Get_Interface | ABAP 인터페이스 소스 조회 | interface_name |
Get_Transaction | ABAP 트랜잭션 정보 조회 | transaction_name |
🗂️ DDIC 메타데이터
| Tool | Description | Key Parameters |
|---|---|---|
GetDDIC_Table | 데이터베이스 테이블 정의 조회 | object_name |
GetDDIC_CDS | CDS 뷰 정의 조회 | object_name |
GetDDIC_Structure | DDIC 구조 정의 조회 | object_name |
GetDDIC_DataElements | 데이터 요소 정의 조회 | object_name |
GetDDIC_Domains | 도메인 정의 조회 | object_name |
GetDDIC_TypeInfo | DDIC 타입 정보 조회 | object_name |
📊 데이터 및 진단
| Tool | Description | Key Parameters |
|---|---|---|
DataPreview | DDIC 엔터티의 실제 데이터 미리보기 | ddicEntityName, rowNumber |
Get_Package | 패키지 정보 및 내용 조회 | package_name |
Get_MessageClass | 메시지 클래스 정보 조회 | MessageClass |
🔧 런타임 분석
| Tool | Description | Key Parameters |
|---|---|---|
GetRuntimeDumps | ABAP runtime dump 목록 조회 | start_date, end_date, maxResults |
GetRuntimeDumpDetails | runtime dump 상세 정보 조회 | id |
Get_ABAPTraces | ABAP 성능 trace 데이터 조회 | user, maxResults |
Get_ABAPTracesDetails | ABAP trace 상세 정보 조회 | id, type |
🧪 ATC (ABAP Test Cockpit)
| Tool | Description | Key Parameters |
|---|---|---|
Get_ATC_ResultList | ATC 실행 결과 목록 조회. scope로 로컬/중앙 허브 선택, period로 기간 필터 | scope, period, createdBy, contactPerson, maxResults |
Get_ATC_ResultDetail | 특정 ATC 결과의 상세 findings 조회 (우선순위·체크항목·위치 포함) | id, activeResult, includeExemptedFindings |
💡 ATC 사용 예시:
Get_ATC_ResultList로 결과 ID를 먼저 확인한 뒤, 해당 ID로Get_ATC_ResultDetail을 호출해 구체적인 findings를 조회합니다.
💡 팁:
GET /tools를 사용하면 각 도구의 JSON 스키마가 포함된 전체 목록을 확인할 수 있습니다.
📖 API 예시
🔧 도구 실행 예시
PowerShell(Windows):
# ABAP 객체 검색
Invoke-RestMethod -Uri http://localhost:6969/call -Method POST `
-Headers @{
"X-SAP_USERNAME"="DEV00"
"X-SAP_PASSWORD"="your-password"
"X-SAP_URL"="http://your-sap-server:50000"
"Content-Type"="application/json"
} `
-Body (@{
tool="SearchObject"
arguments=@{ query="SBOOK"; maxResults=10 }
} | ConvertTo-Json -Compress)
# ABAP 클래스 소스 조회
Invoke-RestMethod -Uri http://localhost:6969/call -Method POST `
-Headers @{
"X-SAP_USERNAME"="DEV00"
"X-SAP_PASSWORD"="your-password"
"X-SAP_URL"="http://your-sap-server:50000"
} `
-Body (@{
tool="Get_Class"
arguments=@{ class_name="CL_ABAP_CHAR_UTILITIES" }
} | ConvertTo-Json)
curl(Linux/macOS):
# 테이블 구조 조회
curl -X POST http://localhost:6969/call \
-H "X-SAP_USERNAME: DEV00" \
-H "X-SAP_PASSWORD: your-password" \
-H "X-SAP_URL: http://your-sap-server:50000" \
-H "Content-Type: application/json" \
-d '{
"tool": "GetDDIC_Table",
"arguments": {
"object_name": "SBOOK"
}
}'
# 테이블 데이터 미리보기
curl -X POST http://localhost:6969/call \
-H "X-SAP_USERNAME: DEV00" \
-H "X-SAP_PASSWORD: your-password" \
-H "X-SAP_URL: http://your-sap-server:50000" \
-H "Content-Type: application/json" \
-d '{
"tool": "DataPreview",
"arguments": {
"ddicEntityName": "SBOOK",
"rowNumber": 50
}
}'
# ATC 결과 목록 조회 (최근 14일)
curl -X POST http://localhost:6969/call \
-H "X-SAP_USERNAME: DEV00" \
-H "X-SAP_PASSWORD: your-password" \
-H "X-SAP_URL: http://your-sap-server:50000" \
-H "Content-Type: application/json" \
-d '{
"name": "Get_ATC_ResultList",
"arguments": {
"scope": "local",
"period": "older",
"maxResults": 10
}
}'
# ATC 결과 상세 조회 (위 결과에서 얻은 displayId 사용)
curl -X POST http://localhost:6969/call \
-H "X-SAP_USERNAME: DEV00" \
-H "X-SAP_PASSWORD: your-password" \
-H "X-SAP_URL: http://your-sap-server:50000" \
-H "Content-Type: application/json" \
-d '{
"name": "Get_ATC_ResultDetail",
"arguments": {
"id": "BE5D9646474E1FE1A2B8B41723C198A6",
"includeExemptedFindings": false
}
}'
JavaScript/Node.js:
const axios = require('axios');
const client = axios.create({
baseURL: 'http://localhost:6969',
headers: {
'X-SAP_USERNAME': 'DEV00',
'X-SAP_PASSWORD': 'your-password',
'X-SAP_URL': 'http://your-sap-server:50000',
'Content-Type': 'application/json'
}
});
async function getProgram(programName) {
const response = await client.post('/call', {
tool: 'Get_Program',
arguments: {
program_name: programName
}
});
return response.data;
}
// 사용 예시
getProgram('YSAPBC_DATA_GENERATOR')
.then(result => console.log(result))
.catch(error => console.error(error));
👩💻 개발 및 테스트
🔧 개발 설정
# 의존성 설치
npm ci
# TypeScript 빌드
npm run build
# 테스트 실행
npm test
# 개발용 MCP inspector로 시작
npm run dev
# 개발 중 watch 모드 실행
npm run build -- --watch
🧪 테스트 도구
# 전체 테스트 실행
npm test
# watch 모드로 테스트 실행
npm run test -- --watch
# 커버리지 포함 테스트 실행
npm run test -- --coverage
🔨 새 도구 추가하기
새로운 ABAP 기능을 추가하려면 다음 단계를 따르세요.
-
핸들러 생성 -
src/handlers/에 새 핸들러 파일을 추가합니다.// src/handlers/handle_MyNewTool.ts export async function handleMyNewTool(args: any, config: SapConfig) { // 구현 내용 return { result: "success" }; } -
핸들러 내보내기 -
src/lib/handlerExports.ts에 추가합니다.export * as handle_MyNewTool from '../handlers/handle_MyNewTool'; -
도구 정의 -
src/lib/toolDefinitions.ts에 정의를 추가합니다.{ name: 'MyNewTool', description: '이 도구가 수행하는 작업 설명', inputSchema: { type: 'object', properties: { param1: { type: 'string', description: '파라미터 설명' } }, required: ['param1'] }, handler: handlers.handle_MyNewTool.handleMyNewTool } -
빌드 및 테스트
npm run build npm test
🏗️ 프로젝트 구조
mcp-abap-adt/
├── src/
│ ├── handlers/ # 도구 구현 핸들러
│ └── lib/
│ ├── config.ts # 설정 관리
│ ├── toolDefinitions.ts # 도구 스키마 및 라우팅
│ ├── handlerExports.ts # 핸들러 export
│ ├── remoteServer.ts # HTTP/SSE 서버
│ ├── utils.ts # 유틸리티 함수
│ └── mcpErrorHandler.ts # 에러 처리
├── tests/ # 통합 테스트
├── dist/ # 컴파일된 TypeScript 출력물
├── index.ts # 메인 서버 진입점
├── Dockerfile # 컨테이너 설정
└── package.json # 의존성과 스크립트
❗ 문제 해결
🔧 자주 발생하는 문제와 해결 방법
🚫 PORT 필요 오류
Error: PORT environment variable is required for remote mode
해결 방법:
# Windows PowerShell
$env:PORT = "6969"
# Linux/macOS
export PORT=6969
🌐 SAP URL 누락
Error: SAP_URL is required
해결 방법: 환경 변수 또는 요청 헤더를 통해 SAP URL을 제공하세요.
# 환경 변수
export SAP_URL="http://your-sap-server:50000"
# 또는 요청 시 X-SAP_URL 헤더 사용
curl -H "X-SAP_URL: http://your-sap-server:50000" ...
🔐 인증 실패
Error: 401 Unauthorized
해결 방법:
- Basic Auth 사용:
Authorization: Basic <base64(username:password)> - 사용자 정의 헤더 사용:
X-SAP_USERNAME,X-SAP_PASSWORD - SAP 사용자 권한이 ADT 접근을 허용하는지 확인
🏥 컨테이너 헬스 체크 문제
Container unhealthy
해결 방법:
PORT환경 변수가 설정되어 있는지 확인- 컨테이너 로그 확인:
docker logs <container-id> - SAP 시스템 연결 상태 확인
📦 빌드/런타임 오류
Module not found or TypeScript compilation errors
해결 방법:
# 정리 후 재빌드
rm -rf dist/ node_modules/
npm ci
npm run build
# Node.js 버전 확인(≥18 필요)
node --version
🔗 연결 타임아웃
Error: connect ETIMEDOUT
해결 방법:
- SAP 시스템에 접근 가능한지 확인
- 네트워크 연결과 방화벽 설정 확인
- SAP 시스템에서 ADT 서비스가 활성화되어 있는지 확인
- 자체 서명 인증서를 사용하는 경우
TLS_REJECT_UNAUTHORIZED=0으로 설정
📋 디버그 체크리스트
- ✅ Node.js ≥ 18 설치됨
- ✅ TypeScript가 컴파일됨(
dist/폴더 존재) - ✅ 환경 변수가 올바르게 설정됨
- ✅ SAP 시스템 접근 가능 및 ADT 활성화됨
- ✅ 인증 정보가 유효함
- ✅ 네트워크 연결 정상(프록시/방화벽 차단 없음)
🆘 도움 받기
아래 방법으로도 해결되지 않으면 다음을 확인하세요.
- 로그 확인 -
NODE_ENV=development로 디버그 로깅 활성화 - 설정 재검토 - 모든 환경 변수와 헤더 값 검증
- SAP 연결 테스트 - ADT 서비스가 직접 응답하는지 확인
- 이슈 등록 - 로그와 설정 정보를 포함해 GitHub 이슈를 생성
📜 라이선스
MIT License - 자세한 내용은 LICENSE 파일을 확인하세요.
🤝 기여하기
기여를 환영합니다. Pull Request를 자유롭게 제출해 주세요. 큰 변경의 경우, 먼저 이슈를 열어 변경 내용을 논의해 주세요.
개발 워크플로
- 저장소를 포크
- 기능 브랜치 생성 (
git checkout -b feature/amazing-feature) - 변경 사항 작성 및 테스트 추가
- 테스트 실행 (
npm test) - 커밋 생성 (
git commit -m 'Add amazing feature') - 브랜치 푸시 (
git push origin feature/amazing-feature) - Pull Request 열기
🔗 링크
- Repository: https://github.com/workskong/mcp-abap-adt
- Issues: https://github.com/workskong/mcp-abap-adt/issues
- NPM Package: @orchestraight.co/mcp-abap-adt
- Model Context Protocol: https://modelcontextprotocol.io/
📊 버전 기록
- v1.3.3 - 최신 릴리스
- Node.js 22 기반 Docker 지원 강화
- 에러 처리 및 진단 개선
- 포괄적인 도구 카탈로그 추가
SAP ABAP 커뮤니티를 위해 ❤️로 만들었습니다
Others providing
Compare all 43 on the Agent access to ABAP code page →- @abap2ui5/mcp-server@abap2ui5/mcp-serverAn MCP server that puts the abap2UI5 development loop on the machine an agent runs on: check the view the ABAP builds, photograph it, deploy the class into a sandbox, boot the app headless and read the errors.community org, abapMCP server for the abap2UI5 check, deploy and run loop
- arc-1-bopf-enharc-1-bopf-enhAn extension of four tools for arc-1, with an ABAP service behind it, that lets an agent read and maintain classic BOPF enhancements of SAP standard business objects.independent, abaparc-1 extension for reading and maintaining BOPF enhancements
- HammerHammerA native macOS code editor for ABAP and CDS, with an Object Navigator, Transport Organizer, Data Browser and Gateway Client in the same app as the editor.independent, abapNative macOS code editor for ABAP and CDS
- arc-1-lsparc-1-lspAn edition of ARC-1 that hands every ADT interaction to SAP's own embedded adt-ls language server instead of a hand-rolled HTTP client.independent, abapEdition of ARC-1 that runs ADT calls through adt-ls
- arc-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abapMCP server over the ADT REST API for ABAP objects
- arc1-abap-bridgearc1-abap-bridgeA VS Code extension between arc-1 and ABAP Development Tools for VS Code, so GitHub Copilot can open an ABAP object by name, diff the inactive version and ask the system whether an edit would be accepted.independent, abapVS Code bridge between arc-1 and ADT for VS Code
- arc1-adt-abap-mcp-extarc1-adt-abap-mcp-extOne JAR in Eclipse's dropins that turns on SAP's own ADT MCP server and adds read-only repository tools beside it — so an AI client reads your system without leaving Eclipse.independent, abapEclipse add-on enabling the ADT MCP server with read-only tools
- ABAP Accelerator MCP ServerABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro, deployable locally, in Docker or centrally on ECS Fargate with OAuth principal propagation; its repository is no longer maintained.partner, abapAWS's ABAP MCP server for Amazon Q Developer and Kiro
- Modernization Agents for SAP on AWSModernization Agents for SAP on AWSAWS's suite of agents for SAP modernisation work: custom ABAP converted for S/4HANA, PI/PO interfaces moved to Integration Suite, BW objects moved to SAP Datasphere, deployed into a customer's own AWS account and reached only after registration.partner, abapAWS agents for ABAP, PI/PO and BW modernisation work
- @mcp-abap-adt/core@mcp-abap-adt/coreA descendant of the Andreschak and fr0ster servers rebuilt on its own architecture, published as an npm scope and a Claude Code plugin, with Korean and Japanese documentation beside the English.independent, abapABAP ADT MCP server published as an npm scope and plugin
- chandrashekhar-mahajan/abap-mcp-serverchandrashekhar-mahajan/abap-mcp-serverFifteen ADT tools behind five pluggable authentication strategies — Kerberos/SPNEGO, OAuth 2.0, X.509, browser SSO and basic — for systems where basic auth is not an option.independent, abapABAP MCP server with ADT tools and five authentication strategies
- dassian-adtdassian-adtA fork of mcp-abap-abap-adt-api hardened for use: 25 tools, input validation, error intelligence, MCP elicitation, session recovery and a test suite.independent, abapFork of mcp-abap-abap-adt-api with 25 tools and session recovery
- erpl-adterpl-adtOne C++ binary that speaks the ADT REST API as a CLI and as an MCP server — no Eclipse, no NetWeaver RFC SDK, no JVM — and reaches BW/4HANA modelling as well as ABAP.independent, abapC++ binary speaking the ADT REST API as a CLI and MCP server
- bw-modeling-mcpbw-modeling-mcpReads, creates and modifies BW/4HANA modelling objects through the same internal APIs Eclipse BWMT and the BW/4HANA Cockpit use — and can run centrally on BTP with each caller reaching BW as themselves.independent, btpMCP server for BW/4HANA modelling objects
- EPOD ADT MCP ServerEPOD ADT MCP ServerAn MCP server for ABAP that runs inside ABAP Development Tools for Eclipse on the ADT session of each connected project, with a standalone mode that runs with no IDE open.independent, abapMCP server for ABAP on the ADT session, in Eclipse or standalone
- ZARC1_EXTENSION_FORMSZARC1_EXTENSION_FORMSAn extension of four tools for arc-1, with an ABAP backend behind it, that reaches the classic form objects ADT has no API for: SAPscript layout sets, Smart Styles and the TADIR record of a Smart Form.independent, abaparc-1 extension for SAPscript and Smart Forms objects
- fgalastri/MCP_ABAPfgalastri/MCP_ABAPValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.independent, abapValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.
- fr0ster/mcp-abap-adtfr0ster/mcp-abap-adtFull CRUD across on-premise and ABAP Cloud systems, with five authentication methods and three transports: a library under Apache-2.0 and a standalone server under AGPL-3.0-only.independent, abapABAP MCP server with full CRUD on on-premise and ABAP Cloud
- abapsmithabapsmithAn MCP server that lets an LLM develop in ABAP on a live system over ADT, with writes off by default and every mutation recorded in a local journal that can undo it.independent, abapABAP MCP server over ADT with a local journal that can undo writes
- sap-ai-dev-toolkitsap-ai-dev-toolkitAn MCP proxy that pins an agent's ABAP tools to one SAP system: setup reads the BAS destinations or the local SAP GUI landscape and writes one stdio server per system, leaving the credentials in the destination or in the editor's own login prompts.independent, abapMCP proxy pinning an agent's ABAP tools to one SAP system
- aibap.mcpaibap.mcpA Go server that closes the loop: after create, write and activate it can run the class it just wrote through ADT's classrun and hand the console output back.independent, abapGo MCP server that writes, activates and runs ABAP classes via ADT
- BellaBellaAn Eclipse plugin that puts Claude into ABAP Development Tools: explain, generate, rework and implement from the editor's context menu, completion as ghost text, and a chat whose tools reach the system through the developer's existing ADT logon.independent, abapEclipse plugin bringing Claude into ABAP Development Tools
- Maherd18/sap-mcp-serverMaherd18/sap-mcp-serverAn MCP server for ABAP development over the ADT resources: eight tools, each checked against a JSON policy file before the call reaches the system, with activation and transport release held for a person to approve.independent, abapPolicy-checked MCP server for ABAP development over ADT
- sapdumpmcpsapdumpmcpAn MCP server for SAP dumps: it connects to an ABAP system over the ADT resources and lets an MCP client ask a dump for its description and call stack.independent, abapMCP server reading ABAP short dumps over ADT
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystem
- mcp-abap-abap-adt-apimcp-abap-abap-adt-apiThe write half of the same pair: a thin wrapper over Marcello Urbani's abap-adt-api, exposing lock, edit, activate, transport and syntax check for a full development loop.independent, abapWrite-oriented MCP server over abap-adt-api
- mcp-abap-adtmcp-abap-adtThe read-oriented half of a pair of ABAP MCP servers: high-level tools such as GetProgram, GetClass and GetTable that fetch from a system, aimed at understanding it rather than changing it.independent, abapRead-oriented MCP server fetching ABAP programs, classes, tables
- SAP MCP Connection ManagerSAP MCP Connection ManagerA Windows desktop manager that holds SAP connections and hands them to Claude Desktop or Codex through a local MCP server, each connection carrying a policy that decides what the assistant may change and what data it may read.independent, abapWindows desktop manager handing SAP connections to assistants over MCP
- ABAPilotABAPilotAn MIT-licensed MCP connector for ECC and on-premise S/4HANA that reads ABAP source and dictionary context, whose SAP-side half is a licensed product you install in the system.independent, abapMCP connector for ECC and on-premise S/4HANA with a licensed SAP side
- vibing-steampunkvibing-steampunkAn ADT-to-MCP bridge in Go that reaches past what ADT exposes — cluster tables decoded, spool and job logs read as tables, the IMG searched, selection texts written back.independent, abapADT-to-MCP bridge in Go reaching past what ADT exposes
- ADT MCP ServerADT MCP ServerSAP's own ADT MCP server, and not a package: a preference inside ABAP Development Tools for VS Code that starts a local HTTP MCP server on a port you choose.sap official, abapLocal HTTP MCP server started from ABAP Development Tools for VS Code
- ABAP Development Tools for VS CodeABAP Development Tools for VS CodeSAP's ABAP tools in VS Code: editing, debugging, ABAP Unit, ATC and transports for classes, CDS and RAP objects, over RFC to an on-premise or Private Cloud system and HTTP to a cloud one, with Joule's ADT MCP server and code completion behind an AI-unit licence.sap official, abapSAP's ABAP tools in VS Code for editing, debugging, ATC and transports
- SAP Joule for Developers, ABAP AI capabilitiesSAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code: chat, code completion, explain, test and CDS generation, RAP logic prediction, and since June 2026 an agentic mode over the ADT MCP Server, metered in AI units through the ABAP AI Hub Service on BTP.sap official, abapSAP's AI for ABAP development in ADT for Eclipse and VS Code
- ABAPDocMCPABAPDocMCPTurns a transport request into a WRICEF technical specification: reads the transport's objects and source over ADT and writes a structured Markdown document with an object-relationship diagram.independent, abapMCP server turning a transport request into a WRICEF specification
- claude-sap-kitclaude-sap-kitA Claude Code plugin of three skills that extends arc-1 with five Custom_* tools for an on-premise ABAP system: running a report and reading its ALV as JSON, previewing a NAST message as PDF, and reading, writing and replacing SmartForms as XML.independent, abapClaude Code plugin adding Custom_* tools to arc-1
- Skybuffer AI MCP serverSkybuffer AI MCP serverAn ABAP add-on that serves SAP business data, transactions and development context as MCP tools from an ICF node inside SAP ECC and S/4HANA, each call running as the signed-in user under PFCG authorization checks.independent, abapABAP add-on serving business data and transactions as MCP tools
- abap-adt-cliabap-adt-cliPulls an ABAP package to local files over the ADT REST API in parallel, and pushes edited objects back under a transport — bulk sync rather than one object at a time in SE80 or Eclipse.independent, abapCLI that pulls and pushes ABAP packages as local files over ADT
- KlystronKlystronAn MCP server written in ABAP that runs inside the application server behind an ICF service and exposes typed tools for ABAP development, quality, transports, customizing, roles, Basis operations and integration, with a client-side plugin of SAP skills.independent, abapMCP server in ABAP inside the application server, with agent skills
- pyrfc-mcppyrfc-mcpAn MCP server for calling an SAP system's RFC-enabled function modules from an agent, built so that discovering a function does not authorise calling it: a read or a write is denied unless the function name matches an allowlist the server is configured with.independent, abapMCP server calling RFC-enabled function modules behind an allowlist
- ABAP-AI-CODE-TOOLSABAP-AI-CODE-TOOLSAn optional abapGit package that adds create, modify and delete tools to ABAP AI Code, for ABAP programs and classes, with each diff block approved before it is saved.independent, abapabapGit package adding create, modify and delete tools to ABAP AI Code
- ABAP AI CodeABAP AI CodeAn agentic coding assistant written in ABAP that runs as a SAP GUI report and reads, explains and reviews repository objects inside the system, running an LLM's tool calls as ABAP.independent, abapAgentic coding assistant in ABAP that runs as an SAP GUI report
- VERTEXVERTEXAn extension for ABAP Development Tools for Eclipse and VS Code that shows Simple Data Explorer, AVE and ACE in the editor over the developer's ADT connection.independent, abapADT extension for Eclipse and VS Code showing three SAP GUI tools
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
History in the atlas
- Triaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
- First seen.
For your agent
- Ref
artifact:workskong-mcp-abap-adt- JSON
- /artifacts/workskong-mcp-abap-adt.json
- MCP
- Connecting an agent