SAP 강제자은(는) 무엇을 하나요?
모든 MCP 도구 호출에 대해 SAP/1.0 권한 부여를 강제합니다. SAFE 매니페스트가 없으면 실행되지 않습니다.
작동 방식
MCP 도구 호출을 디스패치하기 전에 다음 명령을 실행합니다:
sap-gate verify <app_id>
여기서 app_id는 호출 애플리케이션의 식별자입니다. 이 명령이 0이 아닌 값을 반환하면 도구 호출을 거부합니다.
권한 부여 시
도구 호출을 정상적으로 진행합니다. 허가가 자동으로 ~/.sap/log/grants.jsonl에 기록됩니다.
권한 거부 시
- 도구 호출을 실행하지 않습니다
- 사용자에게 실패를 표시합니다:
"도구 호출 거부됨:
<app_id>이(가) 인증되지 않았습니다. SAFE 폴더가 존재하고 매니페스트가 서명되었는지 확인하세요." - 거부가 자동으로
~/.sap/log/gaps.jsonl에 기록됩니다 - 명시적인 사용자 지시 없이는 재시도하지 않습니다
새 애플리케이션 등록
새 app_id를 인증하려면:
# 1. SAFE 폴더 및 매니페스트 템플릿 생성
sap-gate init <app_id>
# 2. ~/.sap/Applications/<app_id>/safe-app-manifest.json 편집
# 3. GPG 키로 서명
gpg --detach-sign --armor ~/.sap/Applications/<app_id>/safe-app-manifest.json
mv ~/.sap/Applications/<app_id>/safe-app-manifest.json.asc \
~/.sap/Applications/<app_id>/safe-app-manifest.json.sig
# 4. 확인
sap-gate verify <app_id>
권한 취소
SAFE 폴더 또는 .sig 파일을 삭제합니다:
# 서명을 제거하여 권한 취소 (재인증을 위해 매니페스트는 보존)
rm ~/.sap/Applications/<app_id>/safe-app-manifest.json.sig
# 완전히 제거
rm -rf ~/.sap/Applications/<app_id>/
사전 요구 사항
openclaw-sap-gate설치됨:pip install openclaw-sap-gate- GPG 키 구성됨:
gpg --list-keys SAP_SAFE_ROOT환경 변수 설정 (기본값:~/.sap/Applications)
프로토콜 참조
SAP/1.0 RFC: https://github.com/rudi193-cmd/sap-rfc