首页龙虾技能列表 › ScopeBlind Passport — OpenClaw代理签名访问控制

ScopeBlind Passport — OpenClaw代理签名访问控制

v0.4.1

为OpenClaw代理提供签名访问控制。通过protect-mcp包装MCP工具调用,添加每工具策略、签名收据和信任层级。代理的每个操作都会生成加密收据,任何人都可独立验证,无需信任ScopeBlind。

0· 119·0 当前·0 累计
by @tomjwxf (TJF)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/3/26
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
技能的requirements和runtime指令与其声明的目的(通过protect-mcp包装MCP调用,产生签名收据)一致;它不要求无关凭证,其本地approval/receipt流程与描述的功能相匹配。
评估建议
此技能似乎连贯地用于在MCP工具调用周围添加签名本地访问控制。安装前:(1) 检查要求安装的npm包(protect-mcp和@scopeblind/passport)— 查看其npm页面和GitHub仓库以确认合法性;(2) 如有疑虑,避免以root身份运行全局安装,或在隔离环境中安装;(3) 注意签名密钥创建在当前目录(keys/gateway.json)— 安全存储并避免提交到版本控制;(4) 保护本地审批服务器(127.0.0.1:9876)以防止其他本地进程触发审批(如有需要);(5) 审查包含的策略模板以确保匹配您的风险模型。如需更高保障,在生产使用前审查protect-mcp包源代码(或使用已知版本)。...
详细分析 ▾
用途与能力
名称/描述声称用protect-mcp包装MCP调用。SKILL.md精确指导如何包装OpenClaw MCP服务器、生成签名密钥和使用protect-mcp命令。所需二进制文件(npx、curl)和建议的npm包与这些目标一致。
指令范围
指令范围狭窄,仅限于安装protect-mcp/@scopeblind/passport、在当前目录初始化密钥/策略、修改代理的mcpServers条目,以及调用本地protect-mcp端点(端口9876)进行审批/收据。该技能不指导读取或窃取无关系统文件或联系远程端点作为正常操作的一部分。
安装机制
SKILL.md推荐'npm install -g protect-mcp@latest @scopeblind/passport@latest',这是安装引用工具的正常方式,但确实会执行npm包中的任意代码。注册表元数据本身不包含单独安装规范(安装说明仅在SKILL.md中)。用户应在运行全局npm安装前验证protect-mcp和@scopeblind/passport包(来源、维护者、发布完整性)。
凭证需求
不请求环境变量、密钥或外部凭证。该技能将本地签名密钥(keys/gateway.json)和策略文件写入当前目录,这对签名收据和执行策略是必要的;这些密钥文件应由用户保护,但其创建与声明的目的相称。
持久化与权限
该技能不是强制始终运行,也不请求提升的平台权限。它修改代理的MCP配置(对于包装工具调用是预期的)并在本地写入自己的密钥/策略文件。没有指示更改其他技能的配置或系统级设置。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv0.4.12026/3/26

MIT许可证,OWASP覆盖,事件策略

● 无害

安装命令 点击复制

官方npx clawhub@latest install scopeblind-passport
镜像加速npx clawhub@latest install scopeblind-passport --registry https://cn.clawhub-mirror.com

技能文档

此技能的功能

此技能通过protect-mcp包装OpenClaw代理的MCP工具调用,添加:

  • 影子模式 — 记录每个工具调用并附带签名收据(默认不阻止任何操作)
  • 每工具策略 — 阻止、限速或要求审批特定工具
  • 签名收据 — Ed25519签名、JCS规范化每个决策的证明
  • 信任层级 — 可用于高级配置,按验证过的记录限制工具访问
  • 本地每日摘要 — 人类可读的代理活动摘要
任何平台都可以记录其代理的行为。很少有平台能让您在不信任它们的情况下验证这些日志。

何时使用此技能

在以下情况下使用此技能:

  • 您想知道代理在您不在时做了什么
  • 您需要签名、可篡改的代理行为证明以用于合规或审计
  • 您想阻止危险工具(delete_database、send_email_as_ceo、rm_rf)
  • 您想对昂贵或 risky 的操作进行限速
  • 您想要代理活动的每日摘要

何时不使用此技能

  • 您只想要基本的OpenClaw内置允许列表(这些对简单情况很有效)
  • 您不需要签名加密证明(只要日志,不要收据)

设置

快速路径(推荐)

如果您已有OpenClaw配置先生成带passport的包装包:

npx @scopeblind/passport wrap --runtime openclaw --config ./openclaw.json --policy email-safe

这会写入:

  • wrapped-config.json
  • manifest.json
  • passport.bundle.json
  • protect-mcp.json
  • keys/gateway.json
  • VERIFY.md

wrapped-config.json中的mcpServers条目复制到您的OpenClaw配置中。

首次运行(生成签名密钥+默认策略)

npx protect-mcp init

这会创建:

  • keys/gateway.json — Ed25519签名密钥对(在当前目录)
  • protect-mcp.json — 默认影子模式策略(记录一切,不阻止任何操作)

包装您的MCP服务器

对于代理使用的每个MCP服务器,通过protect-mcp包装它。在您的OpenClaw MCP配置中:

之前:

{
  "mcpServers": {
    "filesystem": {
      "command": "node",
      "args": ["filesystem-server.js"]
    }
  }
}

之后:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["protect-mcp", "--policy", "protect-mcp.json", "--", "node", "filesystem-server.js"]
    }
  }
}

就是这样。每个工具调用现在都会产生签名收据。

应用策略包

要从影子模式切换到强制模式,复制策略模板并添加--enforce

# 复制策略模板
cp policies/email-safe.json protect-mcp.json

然后更新您的MCP配置参数以包含--enforce

"args": ["protect-mcp", "--policy", "protect-mcp.json", "--enforce", "--", "node", "server.js"]

请参阅policies/目录了解预建模板。

命令

当用户要求您执行这些操作时,请执行它们:

"显示我的passport" / "我的代理身份是什么?"

npx protect-mcp status

显示输出,包括:

  • 总决策数(允许/拒绝/限速)
  • 活动时间范围
  • 使用最多的工具
  • 看到的信任层级

"你今天做了什么?" / "显示我的每日报告"

npx protect-mcp digest --today

显示本地摘要,包括:

  • 采取的行动(允许、阻止、等待审批)
  • 使用的工具及频率
  • 信任层级状态
  • 被阻止的工具及原因

"显示我的收据" / "证明你做了什么"

npx protect-mcp receipts --last 20

显示最近20个决策,包括工具名称、决策和时间戳。

"为什么那个被阻止了?"

当工具调用被阻止或限速时,解释:

  • 哪个策略规则触发了阻止
  • 代理的当前信任层级
  • 使用该工具需要什么层级
  • 如何请求审批或更改策略

审批流程

当protect-mcp阻止具有策略中require_approval: true的高风险操作时,它返回:

REQUIRES_APPROVAL: The tool "send_email" requires human approval before execution. Tell the user you need their approval to use "send_email" and will retry when granted. Do NOT retry this tool call until the user explicitly approves it.

当您收到此响应时:

  • 告诉用户:"我需要您的批准才能使用[tool_name]。是否继续?"
  • 等待用户响应批准。
  • 当用户批准时,通过运行以下命令授予批准:
# 一次性批准(仅限于此特定请求):
curl -s -X POST http://127.0.0.1:9876/approve -H 'Content-Type: application/json' -d '{"request_id":"REQUEST_ID","tool":"TOOL_NAME","mode":"once","nonce":"NONCE"}'

# 始终允许此工具(会话范围,24小时TTL): curl -s -X POST http://127.0.0.1:9876/approve -H 'Content-Type: application/json' -d '{"tool":"TOOL_NAME","mode":"always","nonce":"NONCE"}'

REQUEST_IDTOOL_NAMENONCE替换为REQUIRES_APPROVAL响应中的值。

  • 授予批准后,重试原始工具调用。现在它会成功。

当用户拒绝时:

告诉他们该操作被阻止并解释被阻止的内容。

检查当前批准:

curl -s http://127.0.0.1:9876/approvals

策略包

policies/目录中提供预建策略:

功能
shadow.json记录一切,不阻止任何操作(默认)
web-browsing-safe.json限速浏览,要求表单审批,阻止JS
email-safe.json自由读取,要求发送审批,阻止删除
strict.json阻止除读取外的所有操作(只读模式)

验证

每个收据都可以独立验证。MIT许可的验证器无需信任ScopeBlind。

快速测试(不需要收据)

npx @veritasacta/verify --self-test

获取要验证的收据

当protect-mcp运行时,收据可从本地HTTP状态服务器获取:

# 获取最新的收据
curl -s http://127.0.0.1:9876/receipts/latest | jq -r '.receipt' > receipt.json

# 获取所有最近的收据 curl -s http://127.0.0.1:9876/receipts | jq -r '.receipts[0].receipt' > receipt.json

如果本地状态服务器不可用,使用持久化的收据文件:

tail -n 1 .protect-mcp-receipts.jsonl > receipt.json

验证收据

# 从状态获取公钥(显示在"Passport Identity"下)
npx protect-mcp status

# 使用公钥验证 npx @veritasacta/verify receipt.json --key

验证器检查针对公钥的Ed25519签名。无API调用,无账户,无ScopeBlind服务器参与。

链接

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务