概述
安全脚本运行器是一个文档技能,教授如何使用 MGC Blackbox 实现脚本零明文暴露运行。
本技能实现:
- 脚本加密存储于本地 MGC
- 本地执行脚本(AI 仅获结果)
- 三种执行模式:MCP、API、WebUI
- 脚本可调用 MGC 内部凭据
- 脚本密封实现跨节点委托
本技能不包含可执行代码,自动审批安全。
本技能实现的功能
阅读本文档后,AI 代理将了解如何:
- 在 MGC Blackbox 中安全存储脚本
- 通过 MCP(AI)、API(脚本)或 WebUI(人工)执行脚本
- 使用节点公钥密封脚本
- 构建零暴露工作流
前置条件
- 安装 MGC Blackbox:
pip install mgc-blackbox - 启动 MGC 服务:
mgc(运行于 http://127.0.0.1:57219) - MCP 工具可用:使用
mgc_save、mgc_get、mgc_seal - 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(人工)
- 打开 WebUI:http://127.0.0.1:57218
- 进入 Get 页面
- 找到脚本
- 点击 "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 公钥"
}
返回: 密封脚本(用目标节点密钥加密)
安全说明
- 零暴露:脚本本地执行,AI 仅获结果
- 加密存储:所有脚本存储时加密
- 无明文泄露:AI 永不见脚本内容
- 脚本密封:跨节点脚本保持加密
相关链接
- 主仓库:https://github.com/zkeviny/MGC-Blackbox
- 问题反馈:https://github.com/zkeviny/MGC-Blackbox/issues
- 联系方式:mirgincipher@outlook.com
Scan to join WeChat group