Antigravity Editor에서 MCP로 SAP SE80 코드 다루기

Antigravity Editor에서 MCP로 SAP SE80 다루기 배너

왜 SE80 코드를 에디터·AI로 끌어오나

ABAP 개발 환경이 SE80에서 ADT IDE로 옮겨오면서, "SAP 코드를 일반 에디터에서 다루고 거기에 AI를 붙이면 어떨까"라는 시도가 자연스러워졌습니다. 이 글은 Antigravity EditorABAP remote filesystemMCP 서버를 연결해 SE80의 프로그램·딕셔너리를 조회·분석해 본 실험 기록입니다. (ABAP Writer 개발 고찰의 연장선)

보안 먼저

이 글의 접속 정보(URL·사용자·클라이언트·비밀번호·API Key)는 모두 익명 예시입니다. 실제로는 SAP 접속정보와 MCP API Key를 절대 외부에 노출하지 말고, MCP 서버는 localhost밖으로 열지 마세요.

1단계 - Antigravity 설치와 확장

  1. Antigravity Editor 설치 후 로그인
  2. 확장(Extensions) 설치
    • abaplint — ABAP 린터
    • ABAP remote filesystem (vscode_abap_remote_fs) — SAP을 원격 파일시스템처럼 마운트

2단계 - ABAP FS로 SAP 연결

연결 방법은 두 가지입니다.

(A) Connection Manager (webview UI) Ctrl+Shift+PABAP FS: Connection Manager → Add Connection에서 URL·client·username·언어 입력. JSON Import/Export, 다중 편집, BTP 서비스 키 연결도 지원합니다.

(B) settings.json 직접 입력 — Connection Manager가 401로 막힐 때 더 확실합니다.

1{
2  "abapfs.remote": {
3    "DEV": {
4      "url": "http://your-sap-host:8000",
5      "username": "USERID",
6      // "password": "",   // 입력하지 않고 접속 시 프롬프트로 받기
7      "client": "100",
8      "language": "EN",
9      "allowSelfSigned": true
10    }
11  },
12  "abapfs.heartbeat.activeHours": null
13}
연결 URL 확인

접속 URL은 SICF에서 ADT 서비스를 찾아 Test Service를 실행하면 호스트·포트를 확인할 수 있습니다.

설정 후 Ctrl+Shift+PABAP FS: Connect to an SAP system → 비밀번호 입력으로 접속합니다. 잠시 기다리면 프로그램·딕셔너리·CTS 등 SE80의 내용을 에디터에서 탐색할 수 있습니다.

에디터에 마운트된 SAP 오브젝트 트리 예시

SAP 오브젝트가 에디터 탐색기에 원격 파일시스템처럼 마운트됩니다. (시스템·오브젝트명은 익명 예시)

3단계 - MCP 서버 켜고 AI 도구 연결

ABAP remote filesystem은 MCP 서버를 내장하고 있어, AI 도구가 SAP 오브젝트에 접근하도록 노출할 수 있습니다. settings.json에 다음을 추가합니다.

1{
2  "abapfs.mcpServer.autoStart": true,
3  "abapfs.mcpServer.port": 4847,
4  "abapfs.mcpServer.apiKey": "your-secret-key-here"
5}

공유 PC이거나 localhost 밖으로 노출한다면 API Key를 반드시 설정하세요. (키 없이는 401, /health만 인증 없이 접근 가능)

AI 도구(Cursor/Claude Desktop 등)의 MCP 설정에 엔드포인트를 등록합니다.

1{
2  "mcpServers": {
3    "abap-fs": {
4      "url": "http://localhost:4847/mcp",
5      "headers": { "Authorization": "Bearer your-secret-key-here" }
6    }
7  }
8}

연결되면 AI 쪽에서 ABAP FS 도구가 보이고, "USER가 들어간 클래스 검색", "CL_ABAP_TYPEDESCR 코드 보여줘" 같은 요청을 할 수 있습니다.

4단계 - 두 번째 MCP(mcp-abap-adt) 함께 쓰기

ADT 기반의 별도 MCP(mcp-abap-adt)도 붙여볼 수 있습니다. (설치 마법사가 404로 실패하면 직접 빌드)

1git clone https://github.com/mario-andreschak/mcp-abap-adt
2cd mcp-abap-adt
3npm install
4npm run build

그리고 AI 도구의 mcp_config.json에 두 MCP를 함께 등록하면 같이 쓸 수 있습니다.

1{
2  "mcpServers": {
3    "mcp-abap-adt": {
4      "command": "node",
5      "args": ["<로컬경로>/mcp-abap-adt/dist/index.js"],
6      "env": {
7        "SAP_URL": "https://your-sap-host:8001",
8        "SAP_CLIENT": "100",
9        "SAP_USERNAME": "USERID",
10        "SAP_PASSWORD": "",
11        "SAP_LANGUAGE": "en",
12        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
13      }
14    },
15    "abap-fs": {
16      "serverUrl": "http://localhost:4847/mcp"
17    }
18  }
19}

처음에는 두 MCP가 각자 따로 연결된 상태라 함께 쓰이지 않았는데, 위처럼 한 설정 파일에 둘 다 등록하고 재시작하니 양쪽 도구가 동시에 잡혔습니다.

두 MCP 서버가 모두 연결된 상태 예시

abap-fsmcp-abap-adt가 모두 연결되면 AI에서 양쪽 도구를 함께 쓸 수 있습니다. (예시)

활용 ① - 코드 조회·분석·주석

연결 후 코드 검색·조회·설명·주석 같은 읽기 중심 작업은 잘 동작했습니다. 특히 AI에게 T-Code를 주고 분석시켜 Markdown 문서로 내보내는 활용이 만족스러웠습니다. 프로그램을 찾아 열고, 구조를 설명하고, 정리 문서를 만들어 줍니다.

한 가지 요령이 있습니다 — AI가 "파일을 찾지 못한다" 고 할 때가 있는데, 이는 SAP 오브젝트가 로컬에 저장된 파일이 아니라 원격(서버)에 있는 객체여서 그렇습니다. 이때 Ctrl+L로 작업할 SAP 파일을 채팅에 직접 첨부하면 AI가 그 오브젝트에 접근해 주석 추가·설명 같은 작업을 해 줍니다.

AI가 ABAP 코드에 주석을 추가하는 예시

Ctrl+L로 SAP 파일을 첨부하면 AI가 해당 프로그램에 주석을 달아 줍니다. (코드는 익명 예시)

활용 ② - Antigravity에 Claude Code 붙이기

Antigravity 내장 AI 말고, Claude Code를 별도 확장으로 붙여 같은 SAP 환경에서 쓸 수도 있습니다.

  1. 터미널에서 Claude Code for VS Code 설치
  2. Cmd/Ctrl + Shift + PClaude 검색 → View: Toggle Claude Code 실행
  3. 표시되는 인증 코드를 복사해 로그인 (이 코드는 개인 인증값이므로 외부에 노출 금지)
  4. 뜬 패널을 옆으로 드래그하면 에디터 옆에 사이드 패널로 고정되어 쓰기 편합니다

붙이고 나면 파일 탐색·조회는 곧바로 잘 됩니다("ABAP-FS를 활용하라" 고 지시하면 SAP 오브젝트를 정확히 열어 줍니다). 다만 Claude Code는 처음에 MCP 설정이 비어 있어 abap-fs/mcp-abap-adt를 바로 쓰지 못합니다. 패널의 톱니바퀴 → Settings → settings.json으로 들어가 MCP를 등록하면 되는데, 내부 설정을 참조해 자동으로 채워 주기도 합니다. 등록 후에는 T-Code를 분석해 MD로 내보내는 작업까지 이어집니다.

한계 - 쓰기(저장)는 lock에서 막힌다

반대로 수정 후 저장은 매끄럽지 않았습니다. AI로든 수작업으로든 저장하면 아래와 같은 lock 오류가 났습니다.

1Unable to write file '.../ZTEST.prog.abap'
2(Error: Resource INCLUDE ZTEST is not locked (invalid lock handle: ...))

AI가 아니라 사람이 직접 고쳐 저장해도 같은 오류가 났는데, 원격 파일시스템이 SAP 서버의 오브젝트를 직접 잠그고 쓰는 방식에서 lock handle이 유효하지 않게 되는 문제로 보입니다(버전 이슈로 추정). 같은 증상이 확장 저장소의 이슈로도 보고되어 있습니다 — vscode_abap_remote_fs #149.

결론적으로 이 구성에서 쓰기는 abapGit을 경유하는 방식이라야 안정적이라는 인상을 받았습니다. AI로 SAP 코드를 수정까지 하려면 abapGit 기반 흐름(그리고 그 위의 AI 도구, 예컨대 Copilot 연동)이 더 맞는 그림입니다.

✅ 잘 되는 것
  • 프로그램·딕셔너리·CTS 조회
  • 코드 검색·설명
  • T-Code 분석 → 문서(MD) 내보내기
⚠️ 막히는 것
  • 오브젝트 직접 저장(쓰기) → lock 오류
  • 수작업 저장도 동일
  • 쓰기는 abapGit 경유가 현실적
INFO

확장·MCP의 버전과 SAP 릴리스(NetWeaver/S/4HANA)에 따라 동작이 다를 수 있습니다. lock 관련 동작은 특히 버전 영향을 받으니 실제 환경에서 확인하세요.

Disclaimer — 이 포스트는 AI(Claude)를 활용하여 작성된 초안을 바탕으로 검수 및 보완하여 작성되었습니다. 내용 중 오류나 오타가 있다면 댓글로 알려주시면 감사하겠습니다.