Communityコーディング&開発github.com

SAP エンフォーサー

MCP ツール実行の前に SAFE Authorization Protocol (SAP) チェックを強制する OpenClaw スキルです。

SAP エンフォーサー とは?

このスキルは、OpenClaw エージェント環境において、すべての MCP ツール呼び出しに対して SAFE Authorization Protocol (SAP/1.0) に基づく認可チェックを強制します。sap-gate verify コマンドを事前に実行し、呼び出し元アプリケーションの SAFE マニフェストが存在し、適切に署名されていることを確認します。認可に失敗した場合、ツール呼び出しは拒否され、ユーザーに明確なエラーメッセージが表示されます。認可の登録や失効も sap-gate と GPG を用いて安全に行えます。OpenClaw での安全なツール実行を保証したい開発者に最適です。

対応~Claude Code~Codex CLI~Cursor
npx skills add rudi193-cmd/openclaw-skill-sap

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

SAP エンフォーサー は何をしますか?

すべての MCP ツール呼び出しに SAP/1.0 認可を強制します。SAFE マニフェストがなければ実行されません。

仕組み

MCP ツール呼び出しをディスパッチする前に、次のコマンドを実行します。

sap-gate verify <app_id>

ここで app_id は呼び出し元アプリケーションの識別子です。このコマンドが 0 以外のステータスを返した場合、ツール呼び出しを拒否します。

認可成功時

通常通りツール呼び出しを続行します。認可は自動的に ~/.sap/log/grants.jsonl に記録されます。

認可拒否時

  1. ツール呼び出しを実行しないでください
  2. ユーザーに失敗を通知します:

    「ツール呼び出しが拒否されました:<app_id> は認可されていません。SAFE フォルダが存在し、マニフェストが署名されていることを確認してください。」

  3. 拒否は自動的に ~/.sap/log/gaps.jsonl に記録されます
  4. ユーザーからの明示的な指示なしに再試行しないでください

新しいアプリケーションの登録

新しいアプリ 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

関連スキル