返回 Skill 列表
extension
分类: 开发与工程无需 API Key

脚本安全授权运行(零暴露执行沙箱)

使用 MGC Blackbox 实现脚本零暴露运行。脚本加密存储,本地执行,AI 零暴露执行。支持 MCP/API/WebUI 执行、内部凭据调用、脚本密封。

person作者: zkevinyhubModelScope

概述

安全脚本运行器是一个文档技能,教授如何使用 MGC Blackbox 实现脚本零明文暴露运行。

本技能实现:

  • 脚本加密存储于本地 MGC
  • 本地执行脚本(AI 仅获结果)
  • 三种执行模式:MCP、API、WebUI
  • 脚本可调用 MGC 内部凭据
  • 脚本密封实现跨节点委托

本技能不包含可执行代码,自动审批安全。


本技能实现的功能

阅读本文档后,AI 代理将了解如何:

  • 在 MGC Blackbox 中安全存储脚本
  • 通过 MCP(AI)、API(脚本)或 WebUI(人工)执行脚本
  • 使用节点公钥密封脚本
  • 构建零暴露工作流

前置条件

  1. 安装 MGC Blackboxpip install mgc-blackbox
  2. 启动 MGC 服务mgc(运行于 http://127.0.0.1:57219)
  3. MCP 工具可用:使用 mgc_savemgc_getmgc_seal
  4. Token 文件~/.mgc/database/mgc_black_box/.mgc_token

重要提示:AI 代理请使用 MCP 工具。CLI 在某些环境可能有端口冲突。


零暴露执行

核心概念

脚本(明文)→ MGC 加密 → 加密存储
                          ↓
              本地执行(MGC)
                          ↓
              AI 仅获执行结果

AI 执行但永不见脚本明文


三种执行模式

| 模式 | 接口 | 适用场景 | |------|------|----------| | MCP | mgc_get | AI 代理 | | REST API | /api/mgc/sensitive/get | 系统脚本 | | WebUI | http://127.0.0.1:57218 | 人工操作 |


存储脚本

步骤 1:准备脚本

存储带执行元数据的脚本:

# 通过 MCP 工具
mgc_save(
    info_type="script",
    info_owner="my_script",
    ext01="python",           # 启动命令
    ext02="script.py arg1",  # 默认运行时参数
    content="print('Hello from zero-exposure!')"
)

参数说明

| 参数 | 必填 | 说明 | |------|------|------| | info_type | 是 | 必须为 "script" | | info_owner | 是 | 唯一脚本标识符 | | ext01 | 是 | 启动命令(python、node 等) | | ext02 | 否 | 默认运行时参数 | | content | 是 | 脚本明文(存储时加密) |


执行脚本

模式 1:通过 MCP(AI)

# 通过 MCP 工具执行
result = mgc_get(
    info_type="script",
    info_owner="my_script",
    action="run"
)
# AI 仅获执行结果

模式 2:通过 REST API(脚本)

curl -X POST http://127.0.0.1:57219/api/mgc/sensitive/get \
  -H "Content-Type: application/json" \
  -H "X-MGC-Token: $(cat ~/.mgc/database/mgc_black_box/.mgc_token)" \
  -d '{
    "info_type": "script",
    "info_owner": "my_script",
    "action": "run"
  }'

模式 3:通过 WebUI(人工)

  1. 打开 WebUI:http://127.0.0.1:57218
  2. 进入 Get 页面
  3. 找到脚本
  4. 点击 "Run" 按钮

调用 MGC 凭据

脚本可使用内部 API 调用 MGC 凭据:

# 示例:从脚本调用 MGC 凭据
import urllib.request
import json

def get_mgc_credential(info_type, info_owner):
    data = json.dumps({
        "info_type": info_type,
        "info_owner": info_owner
    }).encode("utf-8")

    req = urllib.request.Request(
        "http://127.0.0.1:57219/api/mgc/sensitive/get",
        data=data,
        headers={
            "Content-Type": "application/json",
            "X-MGC-Token": open("/path/to/token").read()
        },
        method="POST"
    )

    with urllib.request.urlopen(req) as resp:
        return json.loads(resp.read().decode())["data"]

注意:凭据本地获取,脚本本地执行,AI 永不见明文。


脚本密封(高级)

实现跨节点委托时,可使用节点公钥密封脚本:

步骤 1:获取节点公钥

# 通过 MCP 工具
node_pub = mgc_get(
    info_type="__NODE_PUB__",
    info_owner="__NODE_PUB__"
)

步骤 2:密封脚本

# 通过 MCP 工具
sealed = mgc_seal(
    info_type="script",
    info_owner="my_script",
    ext04=node_pub  # 目标节点公钥
)

步骤 3:存储密封脚本

# 存储密封版本
mgc_save(
    info_type="script",
    info_owner="my_script_sealed",
    ext01="python",
    content=sealed
)

密封脚本已加密,仅目标节点可执行。


MCP 工具参考

mgc_save

参数:

{
  "info_type": "script",
  "info_owner": "唯一标识符",
  "ext01": "启动命令 (python, node 等)",
  "ext02": "默认运行时参数",
  "content": "脚本明文"
}

mgc_get

参数:

{
  "info_type": "script",
  "info_owner": "脚本标识符",
  "action": "get | run"
}

返回: 脚本内容或执行结果

mgc_seal

参数:

{
  "info_type": "script",
  "info_owner": "脚本标识符",
  "ext04": "目标节点 RSA 公钥"
}

返回: 密封脚本(用目标节点密钥加密)


安全说明

  1. 零暴露:脚本本地执行,AI 仅获结果
  2. 加密存储:所有脚本存储时加密
  3. 无明文泄露:AI 永不见脚本内容
  4. 脚本密封:跨节点脚本保持加密

相关链接

  • 主仓库:https://github.com/zkeviny/MGC-Blackbox
  • 问题反馈:https://github.com/zkeviny/MGC-Blackbox/issues
  • 联系方式:mirgincipher@outlook.com