ABAP 개발 환경이 SE80에서 ADT IDE로 옮겨오면서, "SAP 코드를 일반 에디터에서 다루고 거기에 AI를 붙이면 어떨까"라는 시도가 자연스러워졌습니다. 이 글은 Antigravity Editor에 ABAP remote filesystem과 MCP 서버를 연결해 SE80의 프로그램·딕셔너리를 조회·분석해 본 실험 기록입니다. (ABAP Writer 개발 고찰의 연장선)
이 글의 접속 정보(URL·사용자·클라이언트·비밀번호·API Key)는 모두 익명 예시입니다. 실제로는 SAP 접속정보와 MCP API Key를 절대 외부에 노출하지 말고, MCP 서버는 localhost밖으로 열지 마세요.
vscode_abap_remote_fs) — SAP을 원격 파일시스템처럼 마운트연결 방법은 두 가지입니다.
(A) Connection Manager (webview UI)
Ctrl+Shift+P → ABAP FS: Connection Manager → Add Connection에서 URL·client·username·언어 입력. JSON Import/Export, 다중 편집, BTP 서비스 키 연결도 지원합니다.
(B) settings.json 직접 입력 — Connection Manager가 401로 막힐 때 더 확실합니다.
접속 URL은 SICF에서 ADT 서비스를 찾아 Test Service를 실행하면 호스트·포트를 확인할 수 있습니다.
설정 후 Ctrl+Shift+P → ABAP FS: Connect to an SAP system → 비밀번호 입력으로 접속합니다. 잠시 기다리면 프로그램·딕셔너리·CTS 등 SE80의 내용을 에디터에서 탐색할 수 있습니다.
SAP 오브젝트가 에디터 탐색기에 원격 파일시스템처럼 마운트됩니다. (시스템·오브젝트명은 익명 예시)
ABAP remote filesystem은 MCP 서버를 내장하고 있어, AI 도구가 SAP 오브젝트에 접근하도록 노출할 수 있습니다. settings.json에 다음을 추가합니다.
공유 PC이거나
localhost밖으로 노출한다면 API Key를 반드시 설정하세요. (키 없이는401,/health만 인증 없이 접근 가능)
AI 도구(Cursor/Claude Desktop 등)의 MCP 설정에 엔드포인트를 등록합니다.
연결되면 AI 쪽에서 ABAP FS 도구가 보이고, "USER가 들어간 클래스 검색", "CL_ABAP_TYPEDESCR 코드 보여줘" 같은 요청을 할 수 있습니다.
ADT 기반의 별도 MCP(mcp-abap-adt)도 붙여볼 수 있습니다. (설치 마법사가 404로 실패하면 직접 빌드)
그리고 AI 도구의 mcp_config.json에 두 MCP를 함께 등록하면 같이 쓸 수 있습니다.
처음에는 두 MCP가 각자 따로 연결된 상태라 함께 쓰이지 않았는데, 위처럼 한 설정 파일에 둘 다 등록하고 재시작하니 양쪽 도구가 동시에 잡혔습니다.
abap-fs와 mcp-abap-adt가 모두 연결되면 AI에서 양쪽 도구를 함께 쓸 수 있습니다. (예시)
연결 후 코드 검색·조회·설명·주석 같은 읽기 중심 작업은 잘 동작했습니다. 특히 AI에게 T-Code를 주고 분석시켜 Markdown 문서로 내보내는 활용이 만족스러웠습니다. 프로그램을 찾아 열고, 구조를 설명하고, 정리 문서를 만들어 줍니다.
한 가지 요령이 있습니다 — AI가 "파일을 찾지 못한다" 고 할 때가 있는데, 이는 SAP 오브젝트가 로컬에 저장된 파일이 아니라 원격(서버)에 있는 객체여서 그렇습니다. 이때 Ctrl+L로 작업할 SAP 파일을 채팅에 직접 첨부하면 AI가 그 오브젝트에 접근해 주석 추가·설명 같은 작업을 해 줍니다.
Ctrl+L로 SAP 파일을 첨부하면 AI가 해당 프로그램에 주석을 달아 줍니다. (코드는 익명 예시)
Antigravity 내장 AI 말고, Claude Code를 별도 확장으로 붙여 같은 SAP 환경에서 쓸 수도 있습니다.
Cmd/Ctrl + Shift + P → Claude 검색 → View: Toggle Claude Code 실행붙이고 나면 파일 탐색·조회는 곧바로 잘 됩니다("ABAP-FS를 활용하라" 고 지시하면 SAP 오브젝트를 정확히 열어 줍니다). 다만 Claude Code는 처음에 MCP 설정이 비어 있어 abap-fs/mcp-abap-adt를 바로 쓰지 못합니다. 패널의 톱니바퀴 → Settings → settings.json으로 들어가 MCP를 등록하면 되는데, 내부 설정을 참조해 자동으로 채워 주기도 합니다. 등록 후에는 T-Code를 분석해 MD로 내보내는 작업까지 이어집니다.
반대로 수정 후 저장은 매끄럽지 않았습니다. AI로든 수작업으로든 저장하면 아래와 같은 lock 오류가 났습니다.
AI가 아니라 사람이 직접 고쳐 저장해도 같은 오류가 났는데, 원격 파일시스템이 SAP 서버의 오브젝트를 직접 잠그고 쓰는 방식에서 lock handle이 유효하지 않게 되는 문제로 보입니다(버전 이슈로 추정). 같은 증상이 확장 저장소의 이슈로도 보고되어 있습니다 — vscode_abap_remote_fs #149.
결론적으로 이 구성에서 쓰기는 abapGit을 경유하는 방식이라야 안정적이라는 인상을 받았습니다. AI로 SAP 코드를 수정까지 하려면 abapGit 기반 흐름(그리고 그 위의 AI 도구, 예컨대 Copilot 연동)이 더 맞는 그림입니다.
확장·MCP의 버전과 SAP 릴리스(NetWeaver/S/4HANA)에 따라 동작이 다를 수 있습니다. lock 관련 동작은 특히 버전 영향을 받으니 실제 환경에서 확인하세요.
Disclaimer — 이 포스트는 AI(Claude)를 활용하여 작성된 초안을 바탕으로 검수 및 보완하여 작성되었습니다. 내용 중 오류나 오타가 있다면 댓글로 알려주시면 감사하겠습니다.