rudi193-cmd/openclaw-sap-gate
GitHub: rudi193-cmd/openclaw-sap-gate
SAP/1.0 SAFE 授权协议的 Python 实现,为 MCP 工具调用提供基于 PGP 签名的授权验证网关。
Stars: 0 | Forks: 0
# openclaw-sap-gate
[SAP/1.0](https://github.com/rudi193-cmd/sap-rfc) 的 Python 参考实现 — 用于 MCP 工具调用的 SAFE 授权协议。
```
pip install openclaw-sap-gate
```
## 用法
```
from openclaw_sap_gate import authorized, require_authorized
# Check (返回 bool)
if not authorized("my-app"):
return "denied"
# Assert (失败时引发 PermissionError)
require_authorized("my-app")
```
## CLI
```
# 验证 app_id 通过完整的 auth 链
sap-gate verify my-app
# 构建一个新的 SAFE 文件夹 + manifest 模板
sap-gate init my-app
```
## 配置
| 环境变量 | 默认值 | 描述 |
|---------|---------|-------------|
| `SAP_SAFE_ROOT` | `~/.sap/Applications` | SAFE 文件夹的根目录 |
| `SAP_PGP_FINGERPRINT` | *(空 — 任何有效签名都通过)* | 固定的主密钥指纹 |
| `SAP_LOG_DIR` | `~/.sap/log` | gaps.jsonl 和 grants.jsonl 的存放目录 |
## 工作原理
授权需要全部四个步骤:
1. `SAP_SAFE_ROOT//` 存在
2. `safe-app-manifest.json` 存在且可读
3. `safe-app-manifest.json.sig` 存在
4. `gpg --verify` 通过,且签名者指纹与 `SAP_PGP_FINGERPRINT` 匹配
通过删除该文件夹或 `.sig` 文件来撤销授权。
## OpenClaw 强制执行技能
→ [rudi193-cmd/openclaw-skill-sap](https://github.com/rudi193-cmd/openclaw-skill-sap)
## 协议规范
→ [SAP/1.0 RFC](https://github.com/rudi193-cmd/sap-rfc)
## 许可证
MIT — Sean Campbell 2026
标签:MCP, PGP签名, Python, Retryablehttp, SOC Prime, Streamlit, 开发工具, 授权网关, 文档结构分析, 无后门, 访问控制, 逆向工具