sap-adt-mcp
sap-adt-mcp
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+ |
|
SAP 시스템 | NetWeaver 7.31 SP04+ 및 ICF 노드 |
|
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에 두 개의 명령이 등록됩니다:
명령 | 용도 |
| 터미널에서 연결 관리(비밀번호는 숨겨진 프롬프트로 입력) |
| 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 -qMCP 클라이언트에서 설정
설치 후 sap-adt-mcp 명령은 이미 PATH에 있습니다 — 절대 경로가 필요 없습니다:
{
"mcpServers": {
"sap-adt": {
"command": "sap-adt-mcp",
"args": []
}
}
}이 블록을 넣을 위치:
클라이언트 | 파일 |
Cursor (전역) |
|
Cursor (프로젝트별) | 프로젝트 루트의 |
Claude Code |
|
Claude Desktop |
|
패키지를 설치하지 않고 소스 코드에서 직접 실행하려면 "command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"]로 바꾸세요.
확인
Cursor에서는 서버가 Settings > MCP에서 user-sap-adt로 나타납니다. 어떤 클라이언트에서든 테스트하려면 sap_list_environments()를 요청하세요 — 저장된 연결 목록을 반환해야 합니다.
문제 | 해결 방법 |
서버가 나타나지 않음 | 구성 파일 경로를 확인하고 클라이언트를 다시 여세요 |
서버가 빨간색으로 표시됨 | 터미널에서 |
| 패키지가 다른 가상 환경에 설치되었습니다 |
|
|
| 연결을 만들려면 |
자격 증명
터미널에서(권장)
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에서 활성화되지 않은 경우트랜스포트를 두 가지 방식으로 전송 (쿼리의
corrNr및sap-transportrequest헤더)sap_system_info— 엔드포인트를 검사하여 해당 시스템에서 작동하지 않을 도구를 알려줍니다
자세한 내용은 참조의 섹션 6.7을 참조하세요.
MCP 도구(25)
연결 및 자격 증명
도구 | 설명 |
| SAP 시스템에 인증(저장된 환경 지원) |
| 현재 연결 종료(시스템 전환 허용) |
| 진단: 시스템이 지원하는 ADT 엔드포인트 |
| 사용 가능한 ADT 서비스 나열 |
| OS 자격 증명 관리자에 자격 증명 저장 |
| 저장된 자격 증명 제거 |
| 저장된 SAP 환경 나열 |
저장소
도구 | 설명 |
| ABAP 객체 검색(CLAS, PROG, INTF, FUGR, TABL) |
| 패키지 내용 나열(네임스페이스 지원) |
| 객체의 세부 정보 가져오기(이름, 유형, 패키지, 담당자) |
| DDIC 메타데이터를 Markdown으로 내보내기 |
소스 코드
도구 | 설명 |
| ABAP 소스 코드 읽기(선택: 로컬 파일로 저장) |
| 자동 잠금, 트랜스포트 및 활성화로 소스 저장 |
| 객체 컴파일/활성화 |
| 활성화하지 않고 구문 확인 |
트랜스포트
도구 | 설명 |
| 객체의 잠금 상태 확인 |
| 열린 트랜스포트 요청 나열 |
| 새 트랜스포트 요청 생성 |
| 트랜스포트 요청 릴리스 |
| 객체에 트랜스포트가 필요한지 확인 |
생성 및 삭제
도구 | 설명 |
| 새 ABAP 프로그램 생성 |
| 새 ABAP 클래스 생성 |
| 새 ABAP 인터페이스 생성 |
| 새 ABAP 패키지(DEVC) 생성, 로컬 또는 트랜스포트 가능 |
| ABAP 객체 삭제( |
각 도구의 매개변수, 예시 및 반환 값: 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의존성 | 용도 |
| ADT REST API용 HTTP 클라이언트 |
| Model Context Protocol SDK(FastMCP) |
| XML 파싱 |
| 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 |
명령 참조: 매개변수, 예제, SAP 사전 요구 사항 및 CLI 매뉴얼 | |
전체 기술 문서(영어) | |
전체 기술 문서(포르투갈어) | |
도구를 사용하는 어시스턴트를 위한 작업 규칙 |
라이선스
독립 프로젝트로서, SAP SE와 제휴, 후원 또는 보증 관계가 없습니다. SAP, ABAP 및 SAP NetWeaver 는 SAP SE의 상표입니다. 이 도구는 사용자 자신의 자격 증명을 사용하여 공개적으로 문서화된 ADT API만 사용합니다.
This server cannot be installed
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 gradedqualityBmaintenanceEnables AI assistants to access SAP ADT APIs for reading, writing, debugging, deploying, and testing ABAP code through natural language or DSL automation.448MIT
- AlicenseCqualityCmaintenanceEnables interaction with SAP ABAP systems through ADT APIs, allowing management of ABAP objects, transport requests, and code analysis via natural language.100148MIT
- AlicenseCqualityCmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100148MIT
- FlicenseAqualityCmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.424
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.
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/engoetz/sap-adt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server