Skip to main content
Glama
engoetz

sap-adt-mcp

by engoetz

sap-adt-mcp

tests license python

SAP ADT(ABAP Development Tools) REST API를 위한 MCP 서버 및 Python 클라이언트입니다. AI 어시스턴트에게 Eclipse ADT가 사용하는 것과 동일한 작업 — 저장소 검색, 소스 코드 읽기/쓰기, 활성화, 구문 확인, 트랜스포트 요청 작업 —을 동일한 /sap/bc/adt/* 엔드포인트와 통신하며 제공합니다.

전체 기술 문서는 영어로도 제공됩니다: docs/PROJECT_DOCUMENTATION.md.


제공 기능

  • 검색 및 탐색 — 와일드카드(Z*, ZCL_*)로 객체 검색, 패키지 내용(네임스페이스 /ACME/PKG 포함) 및 메타데이터

  • 소스 읽기 및 쓰기 — 단일 호출로 잠금, 트랜스포트 지정 및 활성화 포함. 선택적으로 로컬 파일 저장/읽기

  • 활성화 및 구문 확인 — 줄 및 열 단위 오류 메시지 포함

  • 트랜스포트 — 목록 조회, 생성, 릴리스 및 객체에 필요한지 확인

  • 객체 생성 — 프로그램, 클래스, 인터페이스 및 패키지(로컬 또는 트랜스포트 가능)

  • DDIC를 Markdown으로 내보내기 — 테이블, 데이터 요소, 도메인 및 뷰를 AI가 읽을 수 있는 컨텍스트로 변환

  • 이전 릴리스에서 작동 — 미디어 타입은 엔드포인트별로 협상되며 sap_system_info가 해당 시스템이 지원하는 기능을 알려줍니다

자격 증명은 운영 체제 자격 증명 관리자에 저장됩니다. 프로젝트 파일에는 비밀번호가 기록되지 않습니다.


Related MCP server: mcp-abap-abap-adt-api

요구 사항

요구 사항

최소

확인

Python

3.10+

python --version

SAP 시스템

NetWeaver 7.31 SP04+ 및 ICF 노드 /sap/bc/adt 활성화

sap-adt test <ID>

MCP 클라이언트

Cursor, Claude Code, Claude Desktop, VS Code 또는 MCP를 지원하는 기타 클라이언트

네트워크

SAP 호스트 및 포트에 대한 액세스

SAP 측 사전 요구 사항(ICF 서비스, 역할 및 권한 부여 객체)은 명령 참조의 섹션 6에 자세히 설명되어 있습니다.


설치

GitHub에서 직접 설치(권장)

pip install git+https://github.com/engoetz/sap-adt-mcp

이렇게 하면 PATH에 두 개의 명령이 등록됩니다:

명령

용도

sap-adt

터미널에서 연결 관리(비밀번호는 숨겨진 프롬프트로 입력)

sap-adt-mcp

MCP 서버(stdio) 실행

아무것도 영구적으로 설치하지 않고 uv로 실행하려면:

uvx --from git+https://github.com/engoetz/sap-adt-mcp sap-adt-mcp

소스 코드에서 설치(개발용)

git clone https://github.com/engoetz/sap-adt-mcp
cd sap-adt-mcp
python -m venv .venv && .venv/Scripts/activate   # Linux/macOS: source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests -q

MCP 클라이언트에서 설정

설치 후 sap-adt-mcp 명령은 이미 PATH에 있습니다 — 절대 경로가 필요 없습니다:

{
  "mcpServers": {
    "sap-adt": {
      "command": "sap-adt-mcp",
      "args": []
    }
  }
}

이 블록을 넣을 위치:

클라이언트

파일

Cursor (전역)

~/.cursor/mcp.json — Windows: C:\Users\<usuário>\.cursor\mcp.json

Cursor (프로젝트별)

프로젝트 루트의 .cursor/mcp.json — 템플릿은 .cursor/mcp.json.example에 있습니다

Claude Code

claude mcp add sap-adt -- sap-adt-mcp

Claude Desktop

claude_desktop_config.json

패키지를 설치하지 않고 소스 코드에서 직접 실행하려면 "command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"]로 바꾸세요.

확인

Cursor에서는 서버가 Settings > MCP에서 user-sap-adt로 나타납니다. 어떤 클라이언트에서든 테스트하려면 sap_list_environments()를 요청하세요 — 저장된 연결 목록을 반환해야 합니다.

문제

해결 방법

서버가 나타나지 않음

구성 파일 경로를 확인하고 클라이언트를 다시 여세요

서버가 빨간색으로 표시됨

터미널에서 sap-adt-mcp를 실행하여 오류를 확인하세요. 보통 PATH의 Python이 잘못된 경우입니다

ModuleNotFoundError: sap_adt

패키지가 다른 가상 환경에 설치되었습니다

No password available

sap-adt password <ID> 실행

Missing connection parameter(s)

연결을 만들려면 sap-adt add <ID> 실행


자격 증명

터미널에서(권장)

sap-adt add DEV

이 명령은 호스트, 포트, 클라이언트, 사용자, 언어 및 HTTPS를 묻고(Enter를 누르면 제안된 값이 수락됨), 마지막으로 비밀번호를 묻습니다 — 화면에 에코 없이 두 번 입력합니다. 이렇게 하면 비밀번호가 셸 기록이나 AI와의 대화 기록에 남지 않습니다.

sap-adt list                      # conexões salvas e se têm senha
sap-adt edit DEV --port 8020      # alterar campos sem tocar na senha
sap-adt password DEV              # trocar apenas a senha
sap-adt test DEV                  # conectar e sondar os endpoints ADT
sap-adt delete DEV                # remover conexão e senha

--password 매개변수는 없습니다. 원칙적으로 비밀번호는 프롬프트로만 입력됩니다. 자동화를 위해 SAP_PASSWORD 환경 변수가 허용됩니다.

비밀번호는 OS 키링(Windows Credential Manager, macOS Keychain, Linux Secret Service)에 저장됩니다. 나머지 매개변수는 ~/.sap-adt/environments.json에 있으며, 프로젝트 외부에 위치합니다.

채팅에서

sap_save_password(system_id="DEV", host="...", port=8000, client="100", user="username", password="...")도 동일한 작업을 수행합니다 — 하지만 비밀번호가 대화에 기록됩니다. 터미널을 선호하세요.


첫 사용

sap_connect(system_id="DEV")
sap_system_info()                       # o que este sistema suporta (rode em release antiga)

sap_search(query="Z*", object_type="CLAS")
sap_read_source(object_name="ZCL_MINHA_CLASSE", object_type="CLAS")

sap_write_source(
    object_name="ZCL_MINHA_CLASSE",
    object_type="CLAS",
    source_code="...",
    transport_request="DEVK900123"
)

MCP 클라이언트 밖에서는 sap-adt test DEV가 터미널에서 동일한 진단을 수행합니다.


릴리스 간 호환성

오래된 시스템(ECC, NetWeaver 7.3x)은 ADT의 하위 집합만 노출하며 항상 동일한 미디어 타입 버전을 이해하지는 못합니다. 클라이언트가 이를 자동으로 처리합니다:

  • 미디어 타입 협상 — 엔드포인트별로 최신에서 가장 오래된 순으로 협상하고 작동한 것을 기억합니다

  • 대체 디스커버리/sap/bc/adt/discovery가 SICF에서 활성화되지 않은 경우

  • 트랜스포트를 두 가지 방식으로 전송 (쿼리의 corrNrsap-transportrequest 헤더)

  • sap_system_info — 엔드포인트를 검사하여 해당 시스템에서 작동하지 않을 도구를 알려줍니다

자세한 내용은 참조의 섹션 6.7을 참조하세요.


MCP 도구(25)

연결 및 자격 증명

도구

설명

sap_connect

SAP 시스템에 인증(저장된 환경 지원)

sap_disconnect

현재 연결 종료(시스템 전환 허용)

sap_system_info

진단: 시스템이 지원하는 ADT 엔드포인트

sap_discovery

사용 가능한 ADT 서비스 나열

sap_save_password

OS 자격 증명 관리자에 자격 증명 저장

sap_delete_password

저장된 자격 증명 제거

sap_list_environments

저장된 SAP 환경 나열

저장소

도구

설명

sap_search

ABAP 객체 검색(CLAS, PROG, INTF, FUGR, TABL)

sap_browse_package

패키지 내용 나열(네임스페이스 지원)

sap_object_metadata

객체의 세부 정보 가져오기(이름, 유형, 패키지, 담당자)

sap_export_ddic_markdown

DDIC 메타데이터를 Markdown으로 내보내기

소스 코드

도구

설명

sap_read_source

ABAP 소스 코드 읽기(선택: 로컬 파일로 저장)

sap_write_source

자동 잠금, 트랜스포트 및 활성화로 소스 저장

sap_activate

객체 컴파일/활성화

sap_syntax_check

활성화하지 않고 구문 확인

트랜스포트

도구

설명

sap_check_lock

객체의 잠금 상태 확인

sap_list_transports

열린 트랜스포트 요청 나열

sap_create_transport

새 트랜스포트 요청 생성

sap_release_transport

트랜스포트 요청 릴리스

sap_transport_check

객체에 트랜스포트가 필요한지 확인

생성 및 삭제

도구

설명

sap_create_program

새 ABAP 프로그램 생성

sap_create_class

새 ABAP 클래스 생성

sap_create_interface

새 ABAP 인터페이스 생성

sap_create_package

새 ABAP 패키지(DEVC) 생성, 로컬 또는 트랜스포트 가능

sap_delete_object

ABAP 객체 삭제(confirm='DELETE' 필요)

각 도구의 매개변수, 예시 및 반환 값: docs/MCP_COMMAND_REFERENCE.md


아키텍처

Cliente MCP  →  servidor MCP (stdio/JSON-RPC)  →  cliente REST ADT  →  SAP /sap/bc/adt/*
src/sap_adt/
├── client.py            # HTTP: autenticação, CSRF, sessões stateful, negociação de media type
├── credential_store.py  # ~/.sap-adt/environments.json + keyring do SO
├── repository.py        # pesquisa, navegação de pacotes, metadados
├── source.py            # leitura/escrita de fonte com bloqueio
├── activation.py        # ativação e verificação de sintaxe
├── transport.py         # transport requests (CTS)
├── ddic_export.py       # DDIC → Markdown
├── cli.py               # comando `sap-adt`
├── models.py            # dataclasses
├── exceptions.py        # hierarquia de exceções
└── mcp_server.py        # servidor MCP com as 25 ferramentas

의존성

용도

requests

ADT REST API용 HTTP 클라이언트

mcp

Model Context Protocol SDK(FastMCP)

lxml

XML 파싱

keyring

OS 자격 증명 관리자의 자격 증명


개발

pip install -e ".[dev]"
python -m pytest tests -q

테스트는 오프라인입니다. SAP 시스템이나 네트워크가 필요 없습니다. URI 해석, 정적 응답으로 구동되는 XML 파서(이전 릴리스 형식 포함) 및 CLI를 다룹니다. CI는 Linux 및 Windows, Python 3.10 및 3.13에서 테스트 스위트를 실행하고 패키지 빌드를 확인합니다.

기여와 문제 보고는 issues를 통해 환영합니다. 이슈를 열 때 호스트 이름, 사용자, 클라이언트 또는 독점 코드 조각을 붙여넣지 마세요 — 동작을 설명하고, 가능하면 sap_system_info의 출력을 포함하세요.


문서

Documento

Conteúdo

docs/MCP_COMMAND_REFERENCE.md

명령 참조: 매개변수, 예제, SAP 사전 요구 사항 및 CLI 매뉴얼

docs/PROJECT_DOCUMENTATION.md

전체 기술 문서(영어)

docs/PROJECT_DOCUMENTATION_PT-BR.md

전체 기술 문서(포르투갈어)

AGENTS.md

도구를 사용하는 어시스턴트를 위한 작업 규칙


라이선스

Apache-2.0.

독립 프로젝트로서, SAP SE와 제휴, 후원 또는 보증 관계가 없습니다. SAP, ABAP 및 SAP NetWeaver 는 SAP SE의 상표입니다. 이 도구는 사용자 자신의 자격 증명을 사용하여 공개적으로 문서화된 ADT API만 사용합니다.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    C
    maintenance
    Facilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.
    100
    148
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.
    4
    24

View all related MCP servers

Related MCP Connectors

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

View all MCP Connectors

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/engoetz/sap-adt-mcp'

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