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に記録されます - ユーザーからの明示的な指示なしに再試行しないでください
新しいアプリケーションの登録
新しいアプリ 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