Install
openclaw skills install @thcjp/secure-api-toolkit-freeopenclaw skills install @thcjp/secure-api-toolkit-free安全API工具箱(免费版)通过凭据代理机制解决"Agent调用第三方API时密钥泄露"的核心安全痛点。开发者无需将真实API Key或OAuth Token交给Agent,只需在请求中使用{{占位符}},代理服务在服务端注入真实凭据后转发请求,密钥全程不经过Agent。
本免费版聚焦个人开发者的核心安全调用场景,提供CLI命令行工具与基础占位符模板,支持单次授权后自动复用,适合本地开发与测试环境快速上手。
| 能力 | 说明 | 免费版支持 |
|---|---|---|
| 占位符模板 | {{OAUTH2_ACCESS_TOKEN}}等占位符替代真实密钥 | 是 |
| 服务端密钥注入 | 代理在服务端替换占位符为真实凭据 | 是 |
| 生物识别授权 | 首次调用通过FaceID/Passkey授权 | 是 |
| 单提供商验证 | 验证单个API提供商的连通性 | 是 |
| CLI命令行 | secure-curl命令替代curl | 是 |
| 多SDK集成 | Python/TypeScript SDK | 否 |
| 团队凭据金库 | 多人共享凭据 | 否 |
| 审计日志 | 全量请求审计 | 否 |
| 自定义提供商 | 注册私有API提供商 | 否 |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:通过占位符代理安、全调用第三方、密钥不落地、Agent、适合个人开发者试、工具箱、通过凭据代理机制、在调用第三方、时无需接触真实密、从架构层杜绝密钥、泄露风险、核心能力、占位符模板化请求、单提供商连通验证、命令行调用、Use、when、需要代码生成、编程辅助、调试测试、开发部署时使用、不适用于无明确技、术栈的模糊需求等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。小李编写自动化脚本需要读取GitHub仓库信息。他不愿将GitHub Token硬编码到脚本中(担心提交到版本库泄露)。使用本工具:脚本中使用{{OAUTH2_ACCESS_TOKEN}}占位符,首次运行时在浏览器完成授权,之后脚本自动通过代理调用GitHub API,Token全程不进入脚本。
开发者需要在本地快速测试Slack API是否可用。使用secure-curl命令携带占位符发起请求,授权后即可验证连通性,无需手动获取并配置Slack Token。
当需要将第三方API能力作为MCP工具接入Agent时,本工具提供安全验证通道:MCP端点通过占位符调用目标API,凭据由代理注入,避免MCP工具直接持有密钥。
npm install -g secure-proxy@latest
要求Node.js v16及以上。安装后自动在~/.secure-proxy/生成机器密钥对(Ed25519)。
使用secure-curl替代curl,在凭据位置使用占位符:
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
首次调用时,命令返回一个授权链接而非API响应。将链接在浏览器中打开,通过FaceID或Passkey完成授权并连接账户。
授权完成后,重新运行相同命令即可获得API响应。此后对该提供商的所有请求自动通过,无需再次授权。
| 占位符前缀 | 类型 | 示例 |
|---|---|---|
OAUTH2_ | OAuth 2.0令牌 | {{OAUTH2_ACCESS_TOKEN}}、{{OAUTH2_REFRESH_TOKEN}} |
OAUTH1_ | OAuth 1.0令牌 | {{OAUTH1_ACCESS_TOKEN}} |
| 其他 | API Key | {{STRIPE_SECRET_KEY}}、{{OPENAI_API_KEY}} |
代理根据请求URL自动识别提供商,无需手动指定。
# 列出GitHub仓库
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
# ...
# 发送Slack消息
secure-curl https://slack.com/api/chat.postMessage \
-X POST \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}" \
-H "Content-Type: application/json" \
-d '{"channel":"#general","text":"Hello!"}'
# ...
# 查询Stripe客户
secure-curl https://api.stripe.com/v1/customers?limit=5 \
-H "Authorization: Bearer {{STRIPE_SECRET_KEY}}"
当命令返回授权链接时,可轮询等待用户完成授权:
# 首次调用返回授权链接
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
# ...
# 等待授权完成(最长800秒)
secure-wait https://secure-proxy.dev/approve/abc123xyz --timeout 800
# ...
# 授权后重放请求
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
{{占位符}}替代,禁止在命令中写入真实密钥~/.secure-proxy/目录中的私钥文件权限保持0600,禁止外泄OAUTH2_、STRIPE_),便于代理自动识别A:正常。首次调用某提供商时,代理需要用户完成生物识别授权并连接账户。将授权链接在浏览器打开,完成授权后重放命令即可。
A:检查是否误用了普通curl而非secure-curl。只有secure-curl才会将请求路由到代理并替换占位符。
A:默认90天未使用自动清理。活跃使用期间无需重新授权。如需延长保留期,可在控制台调整保留策略(专业版功能)。
A:免费版支持5000+主流提供商,包括GitHub、Slack、Stripe、Google、OpenAI等。完整列表见代理控制台。专业版支持注册自定义私有API。
A:机器密钥对存储在~/.secure-proxy/。重装前备份该目录,重装后恢复即可。若未备份,需在新机器重新生成密钥并在控制台绑定。
A:代理会处理请求的URL、头与体以替换占位符并转发,但不会存储或修改响应体。请求与响应体不写入日志,仅记录URL、方法、提供商、时间与状态码等元数据。
A:免费版同一提供商仅支持绑定一个账户。如需多账户切换,建议升级专业版使用团队凭据金库,按账户维度管理凭据。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:secure-api-toolkit-pro
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 返回授权链接而非响应 | 首次使用需授权 | 在浏览器打开链接完成授权后重放 |
| 占位符未被替换 | 误用普通curl | 改用secure-curl路由到代理 |
| 授权链接已过期 | 超过15分钟未处理 | 重新发起请求获取新链接 |
| 提供商未识别 | URL域名不在支持列表 | 查看控制台支持列表或升级专业版注册 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| 代理服务账户 | 在线服务 | 必需 | 在代理控制台注册 |
| Node.js | 运行时 | 必需 | nodejs.org下载 |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
~/.secure-proxy/,权限0600| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |