remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Allows interaction with SAP ABAP systems to retrieve information like source code, table structures, and more through ABAP Development Tools (ADT)
mcp-abap-adt: ABAP 개발 도구(ADT)를 위한 게이트웨이
이 프로젝트는 모델 컨텍스트 프로토콜(MCP)을 사용하여 SAP ABAP 시스템과 상호 작용할 수 있는 서버를 제공합니다. VS Code 확장 프로그램인 Cline 과 같은 도구가 ABAP 시스템과 통신하여 소스 코드, 테이블 구조 등의 정보를 가져올 수 있도록 하는 다리 역할을 한다고 생각하면 됩니다. 마치 ABAP 개발 환경을 원격으로 제어할 수 있는 원격 제어 장치를 가진 것과 같습니다!
이 가이드는 초보자를 위해 설계되었으므로 모든 내용을 단계별로 자세히 살펴보겠습니다. 다음 내용을 다룹니다.
- 필수 조건: 시작하기 전에 필요한 사항.
- 설치 및 설정: 모든 것을 가동하고 실행합니다.
- 서버 실행: 다양한 모드로 서버 시작.
- Cline과 통합: 이 서버를 Cline VS Code 확장 프로그램에 연결합니다.
- 문제 해결: 일반적인 문제와 해결책.
- 사용 가능한 도구: 사용할 수 있는 명령 목록입니다.
1. 필수 조건
시작하기 전에 몇 가지가 필요합니다.
- SAP ABAP 시스템: 이 서버는 기존 ABAP 시스템에 연결됩니다. 다음이 필요합니다.
- 시스템의 URL(예:
https://my-sap-system.com:8000
) - 해당 시스템에 대한 유효한 사용자 이름과 비밀번호입니다.
- SAP 클라이언트 번호(예:
100
). - SAP 시스템에서 ADT(ABAP 개발 도구)를 통한 연결이 허용되는지 확인하세요. 일반적으로
SICF
트랜잭션에서 필요한 서비스가 활성화되어 있는지 확인해야 합니다. 베이시스 관리자가 도와드릴 수 있습니다. 특히 다음 서비스가 활성화되어 있어야 합니다./sap/bc/adt
GetTableContents
도구를 사용하려면 사용자 지정 서비스/z_mcp_abap_adt/z_tablecontent
구현해야 합니다. 여기에서 가이드를 따라 할 수 있습니다.
- 시스템의 URL(예:
- Git(또는 GitHub Desktop): Git을 사용하여 프로젝트 코드를 다운로드합니다. 두 가지 옵션이 있습니다.
- Git: 명령줄 도구. Git을 다운로드하세요 . 운영 체제(Windows, macOS, Linux)에 맞는 버전을 선택하세요. 설치 지침을 따르세요.
- GitHub Desktop: Git용 그래픽 사용자 인터페이스. 초보자도 쉽게 사용할 수 있습니다! GitHub Desktop을 다운로드하고 설치 지침을 따르세요.
- Node.js와 npm: Node.js는 웹 브라우저 외부에서 JavaScript 코드를 실행할 수 있는 JavaScript 런타임입니다. npm(Node Package Manager)은 Node.js에 포함되어 있으며 패키지(코드 라이브러리)를 설치하는 데 사용됩니다.
- Node.js를 다운로드하세요 . LTS(장기 지원) 버전을 선택하세요. 가장 안정적인 버전입니다. 운영 체제에 맞는 설치 지침을 따르세요. 설치 과정에 npm을 포함해야 합니다(일반적으로 기본적으로 포함되어 있습니다).
- 설치 확인: Node.js를 설치한 후 새 터미널(Windows에서는 명령 프롬프트, macOS/Linux에서는 터미널)을 열고 다음을 입력합니다.지엑스피1Node.js와 npm의 버전 번호가 모두 표시되어야 합니다. 오류가 표시되면 Node.js가 제대로 설치되지 않았거나 시스템 PATH에 포함되어 있지 않을 수 있습니다. (아래 문제 해결 참조)
2. 설치 및 설정
이제 프로젝트 코드를 가져와 설정해 보겠습니다.
Smithery를 통해 설치
Smithery를 통해 Cline용 MCP ABAP 개발 도구 서버를 자동으로 설치하려면:
수동 설치
- 저장소 복제:
- Git(명령줄) 사용:
- 터미널(명령 프롬프트 또는 터미널)을 엽니다.
- 프로젝트를 저장할 디렉터리로 이동하세요. 예를 들어, 바탕 화면에 저장하려면 다음과 같이 하세요.Copy
- 저장소를 복제합니다.Copy
- 프로젝트 디렉토리로 변경하세요:Copy
- GitHub Desktop 사용:
- GitHub Desktop을 엽니다.
- "파일" -> "저장소 복제..."를 클릭합니다.
- "URL" 탭에 저장소 URL을 붙여넣습니다.
- 로컬 경로(컴퓨터에 프로젝트를 저장할 경로)를 선택합니다.
- "복제"를 클릭합니다.
- Git(명령줄) 사용:
- 종속성 설치: 프로젝트에 필요한 모든 라이브러리가 다운로드됩니다. 터미널의 루트 디렉터리에서 다음을 실행하세요.몇 분 정도 걸릴 수 있습니다.Copy
- 프로젝트 빌드: 코드를 실행 가능한 형식으로 컴파일합니다.Copy
.env
파일을 만드세요. 이 파일에는 SAP 자격 증명과 같은 민감한 정보가 저장됩니다. 이 파일의 보안을 유지하는 것이 매우 중요합니다.- 루트 디렉토리에
.env
(확장자 없음)라는 이름의 새 파일을 만듭니다. - 텍스트 편집기(메모장, VS Code 등)에서
.env
파일을 엽니다. - 다음 줄을 추가하고 자리 표시자를 실제 SAP 시스템 정보로 바꾸세요. 중요: 비밀번호에 "#" 문자가 포함되어 있으면 비밀번호를 따옴표로 묶어야 합니다!중요:Copy
.env
파일을 누구와도 공유하지 말고, Git 저장소에 커밋하지도 마세요!
- 루트 디렉토리에
3. 서버 실행
솔직히 말해서, 이 서버를 단독으로 "실행"하는 경우는 거의 없습니다. Cline이나 Claude Desktop과 같은 MCP 클라이언트에 통합되어 있어야 합니다. 하지만 두 가지 주요 방법으로 서버를 수동으로 실행할 수 있습니다 .
- 독립 실행형 모드: 서버를 직접 실행하여 터미널에 메시지를 출력합니다. 서버가 시작되어 클라이언트 연결을 기다리므로, 시작 여부를 확인하는 것 외에는 아무런 쓸모가 없을 수 있습니다.
- 개발/디버그 모드: MCP Inspector를 사용하여 서버를 실행합니다. 출력되는 URL을 브라우저에서 열어서 직접 확인해 보세요.
3.1 독립형 모드
독립 실행형 모드로 서버를 실행하려면 터미널(루트 디렉토리)에서 다음 명령을 사용하세요.
서버가 실행 중임을 나타내는 메시지가 터미널에 표시됩니다. MCP 클라이언트의 연결을 수신 대기합니다. 서버는 사용자가 (일반적으로 Ctrl+C를 눌러) 중지할 때까지 계속 실행됩니다.
3.2 개발/디버그 모드(Inspector 포함)
이 모드는 디버깅에 유용합니다.
- 디버그 모드에서 서버를 시작합니다.그러면 서버가 시작되고 다음과 같은 메시지가 출력됩니다.Copy
🔍 MCP Inspector is up and running at http://localhost:5173 🚀
이 URL을 사용하여 브라우저에서 MCP Inspector를 엽니다.
4. Cline과의 통합
Cline은 MCP 서버를 사용하여 언어 지원을 제공하는 VS Code 확장 프로그램입니다. 이 ABAP 서버를 Cline에 연결하는 방법은 다음과 같습니다.
- Cline 설치: 아직 설치하지 않았다면 VS Code에 "Cline" 확장 프로그램을 설치하세요.
- 클라인 설정 열기:
- VS Code 설정을 엽니다(파일 -> 기본 설정 -> 설정 또는 Ctrl+,).
- "클라인 MCP 설정"을 검색하세요.
- "settings.json에서 편집"을 클릭하세요.
cline_mcp_settings.json
파일이 열립니다. 전체 경로는 일반적으로 다음과 같습니다.C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
(username
Windows 사용자 이름으로 바꾸세요).
- 서버 구성 추가:
cline_mcp_settings.json
파일의servers
배열에 항목을 추가해야 합니다. 예를 들면 다음과 같습니다.Copy - 연결 테스트:
- Cline이 서버에 자동으로 연결됩니다. "MCP 서버" 패널에 서버가 나타납니다(Cline 확장 프로그램 상단에 여러 버튼이 있습니다).
- Cline에게 프로그램의 소스 코드를 요청하면 MCP 서버를 언급하고 해당 도구를 사용해 보도록 해야 합니다.
5. 문제 해결
node -v
또는npm -v
실행하면 오류가 발생합니다.- Node.js가 제대로 설치되었는지 확인하세요. 다시 설치해 보세요.
- Node.js 설치 디렉터리가 시스템의 PATH 환경 변수에 있는지 확인하세요. Windows에서는 시스템 속성(시작 메뉴에서 "환경 변수"를 검색하세요)에서 환경 변수를 편집할 수 있습니다.
npm install
실패합니다:- 인터넷에 연결되어 있는지 확인하세요.
node_modules
폴더를 삭제하고npm install
다시 실행해보세요.- 프록시를 사용하는 경우, 프록시를 사용하도록 npm을 구성해야 할 수 있습니다. 온라인에서 "npm 프록시 설정"을 검색해 보세요.
- 클라인이 서버에 연결되지 않습니다.
cline_mcp_settings.json
의 설정을 다시 한번 확인하세요.root-server
디렉터리의 정확한 절대 경로여야 하며 , Windows에서는 백슬래시를 두 개 사용해야 합니다.- 서버가 실행 중인지 확인하세요(
npm run start
사용해 확인하세요). - VS Code를 다시 시작합니다.
- 또는:
- 탐색기에서 mcp-abap-adt의 루트 폴더로 이동한 후 Shift 키를 누른 채 마우스 오른쪽 버튼을 클릭하고 "PowerShell 열기"를 선택하세요. (또는 Powershell을 열고
cd C:/PATH_TO/mcp-abap-adt/
사용하여 해당 폴더로 이동하세요.) - "npm install"을 실행하세요
- "npm run build"를 실행하세요
- "npx @modelcontextprotocol/inspector node dist/index.js"를 실행합니다.
- 출력되는 URL로 브라우저를 여세요. 왼쪽의 "연결"을 클릭하세요.
- 상단의 "도구"를 클릭한 후 "목록 도구"를 클릭하세요.
- GetProgram을 클릭하고 오른쪽에 프로그램 이름으로 "SAPMV45A" 또는 다른 보고서 이름을 입력합니다.
- 테스트하여 출력이 무엇인지 확인하세요
- SAP 연결 오류:
.env
파일에서 SAP 자격 증명을 확인하세요.- SAP 시스템이 실행 중이고 네트워크에서 접근 가능한지 확인하세요.
- SAP 사용자에게 ADT 서비스에 액세스하는 데 필요한 권한이 있는지 확인하세요.
- 트랜잭션
SICF
에서 필요한 ADT 서비스가 활성화되었는지 확인하세요. - 자체 서명된 인증서를 사용하거나 SAP 시스템 http 구성에 문제가 있는 경우 위에서 설명한 대로 TLS_REJECT_UNAUTHORIZED를 설정하세요!
6. 사용 가능한 도구
이 서버는 Cline(또는 다른 MCP 클라이언트)을 통해 사용할 수 있는 다음 도구를 제공합니다.
도구 이름 | 설명 | 입력 매개변수 | 예시 사용(클라인에서) |
---|---|---|---|
GetProgram | ABAP 프로그램 소스 코드를 검색합니다. | program_name (문자열): ABAP 프로그램의 이름입니다. | @tool GetProgram program_name=ZMY_PROGRAM |
GetClass | ABAP 클래스 소스 코드를 검색합니다. | class_name (문자열): ABAP 클래스의 이름입니다. | @tool GetClass class_name=ZCL_MY_CLASS |
GetFunctionGroup | ABAP 함수 그룹 소스 코드를 검색합니다. | function_group (문자열): 함수 그룹의 이름 | @tool GetFunctionGroup function_group=ZMY_FUNCTION_GROUP |
GetFunction | ABAP 함수 모듈 소스 코드를 검색합니다. | function_name (문자열), function_group (문자열) | @tool GetFunction function_name=ZMY_FUNCTION function_group=ZFG |
GetStructure | ABAP 구조를 검색합니다. | structure_name (문자열): DDIC 구조의 이름입니다. | @tool GetStructure structure_name=ZMY_STRUCT |
GetTable | ABAP 테이블 구조를 검색합니다. | table_name (문자열): ABAP DB 테이블의 이름입니다. | @tool GetTable table_name=ZMY_TABLE |
GetTableContents | ABAP 테이블의 내용을 검색합니다. | table_name (문자열), max_rows (숫자, 선택 사항, 기본값 100) | @tool GetTableContents table_name=ZMY_TABLE max_rows=50 |
GetPackage | ABAP 패키지 세부정보를 검색합니다. | package_name (문자열): ABAP 패키지의 이름입니다. | @tool GetPackage package_name=ZMY_PACKAGE |
GetTypeInfo | ABAP 유형 정보를 검색합니다. | type_name (문자열): ABAP 유형의 이름입니다. | @tool GetTypeInfo type_name=ZMY_TYPE |
GetInclude | ABAP include 소스 코드 검색 | include_name (문자열): ABAP include의 이름 | @tool GetInclude include\_name=ZMY\_INCLUDE |
SearchObject | 빠른 검색을 사용하여 ABAP 객체를 검색합니다. | query (문자열), maxResults (숫자, 선택 사항, 기본값 100) | @tool SearchObject query=ZMY\* maxResults=20 |
GetInterface | ABAP 인터페이스 소스 코드를 검색합니다. | interface\_name (문자열): ABAP 인터페이스의 이름입니다. | @tool GetInterface interface\_name=ZIF\_MY\_INTERFACE |
GetTransaction | ABAP 거래 세부정보를 검색합니다. | transaction\_name (문자열): ABAP 트랜잭션의 이름입니다. | @tool GetTransaction transaction\_name=ZMY\_TRANSACTION\ |
You must be authenticated.
Tools
Cline과 같은 도구가 ABAP 소스 코드, 테이블 구조 및 기타 개발 아티팩트를 검색할 수 있도록 하는 SAP ABAP 시스템과 MCP(Model Context Protocol)를 연결하는 서버입니다.
- 1. Prerequisites
- 2. Installation and Setup
- 3. Running the Server
- 4. Integrating with Cline
- 5. Troubleshooting
- 6. Available Tools