关于 SecretCarousel
SecretCarousel 是面向编码 Agent 的密钥库,支持加密存储、定时轮换,并通过一次性认领令牌审计密钥交接。它提供命令行和 MCP 接入。
主要功能
- 01加密存储密钥
- 02客户端零知识加密
- 03一次性认领令牌交接
- 04定时轮换密钥
- 05限时限次分享
- 06导出及提升环境变量
适用场景
- 01避免在代码或日志中放置密钥值
- 02无需传递明文即可向其他 Agent 交接密钥
- 03按计划轮换凭据
- 04将密钥导出为 .env 文件
MCP 相关
SecretCarousel 提供本地和远程 MCP 服务,供客户端存储、检索、搜索、轮换、分享和交接密钥。服务以结构化 JSON 返回结果。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.secretcarousel.com/sseclaude mcp add --transport sse secretcarousel https://mcp.secretcarousel.com/sse{"mcpServers":{"secretcarousel":{"type":"sse","url":"https://mcp.secretcarousel.com/sse"}}}在 Cursor 中打开{"servers":{"secretcarousel":{"type":"sse","url":"https://mcp.secretcarousel.com/sse"}}}在 VS Code 中打开{"mcpServers":{"secretcarousel":{"type":"sse","url":"https://mcp.secretcarousel.com/sse"}}}{"mcpServers":{"secretcarousel":{"serverUrl":"https://mcp.secretcarousel.com/sse"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.secretcarousel.com/sse需要授权工具
20| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| secretValue | string | 是 | 要交接的机密值 |
| targetTenantId | string | 是 | 允许认领此令牌的租户 |
| contractId | string | 是 | 授权跨租户交接的合约 ID(CTR_...) |
| secretName | string | 否 | 交接的机密信息的易读名称(默认值:shared-secret) |
| expiresInHours | number | 否 | 交接令牌的有效期(小时,默认值为 24,最大值为 8760)。此期限独立于合约声明窗口;异步 Agent 间交接时请使用此参数。 |
| expiresInMinutes | number | 否 | 令牌有效期(分钟),用于不到一小时的同步交接(如果同时提供 expiresInHours,则以 expiresInHours 为准) |
详细介绍
SecretCarousel
供编码 Agent 自行运行的密钥库——从任意 Agent 存储、轮换并交接凭证,让它们不再以明文传递密钥。
代码用 git 管理,Agent 的密钥用 sc 管理。
你的 Agent 一整天都在接触凭证——这里一个数据库 URL,那里一个 API 密钥——而一旦上下文重置,这些机密就会被粘贴到 Slack 的 .env 文件中、回显到日志里,或留在对话记录中。你成了密钥库。SecretCarousel 是 Agent 自行运行的密钥库:只需一条命令,就能加密存储密钥、按计划轮换,并且——这是其他工具都做不到的——通过一次性、限定范围且会过期的认领令牌将密钥交给另一个 Agent,即使双方属于不同公司也可以。明文值绝不会跨越边界。
兼容: Claude Code · Cursor · Cline · Windsurf · Aider · Codex · 任意 MCP 客户端
安装
npm install -g secretcarousel
npm 包名为 secretcarousel;命令为 sc。
或者只需一条命令即可自行配置密钥库——无需电子邮箱或银行卡:
npx secretcarousel signup my-project --local
快速开始
# Self-provision a tenant (API key saved to .sc/config.json)
sc signup my-project --local
# Store a secret — AES-256-GCM encrypted at rest; returns an id, never echoes the value
sc secret "DATABASE_URL" "postgres://user:pass@host/db" -t database-credentials
# Retrieve by id — decrypted on demand, access-logged
sc secret show sec-abc123
# List / search — ids + names, never values
sc secrets
sc search stripe
# Rotate now
sc rotate sec-abc123
# Full reference
sc --help
认领令牌——Agent 如何交接密钥
这是其他工具都做不到的功能。一个 Agent 创建一个一次性、限定范围且会过期的令牌;另一个 Agent——可以来自不同项目,甚至不同公司——兑换该令牌,且只能兑换一次;令牌随即失效;整个交接过程都会记录在审计日志中。明文值绝不会以可复制粘贴的字符串形式跨越边界。
# Agent A: hand a secret to another tenant/agent
sc claim "<the-secret-value>" --to partner-tenant --contract CTR-ID
# Agent B: redeem the token you were handed (once, audited)
sc claim redeem CLM-TOKEN
# List the tokens you've minted + their status
sc claims
不必再通过私信发送密钥,并祈祷对方会删除它。令牌只能使用一次,有时间限制且可撤销,每次创建和兑换都会记录在审计日志中。
零知识模式——连我们也无法读取
默认情况下,密钥在静态存储时使用 AES-256-GCM 加密。启用零知识模式后,加密会在你的设备上、值到达服务器之前完成——SecretCarousel 只存储密文,从不持有解密密钥。即使数据库遭到泄露,泄露的也只是一堆乱码。
# Store a zero-knowledge secret (encrypted client-side)
sc secret "SIGNING_KEY" "$(cat key.pem)" --e2e
# Retrieve — auto-decrypts locally with your device key
sc secret show sec-def456
多个 Agent 可以通过注册握手共享一个零知识密钥库——密钥库密钥会在设备之间传递,绝不会传给服务器:
sc enroll init # first device bootstraps the vault
sc enroll create --minutes 15 # mint an enrollment token for another agent
sc enroll redeem <token> # joining agent unlocks the same vault
sc enroll status # vault + local device state
轮换——设置后即可省心使用
# Rotate immediately
sc rotate sec-abc123
# Schedule rotation with alerts
sc rotate set sec-abc123 --schedule "30d" --email [email protected]
共享——设置时间和查看次数限制的链接,供人类使用
# One-hour, single-view link a teammate can open in a browser
sc share sec-abc123 --hours 1
# List active shares
sc shares
环境——导入和导出 .env 文件
# Export a project's secrets as a .env file
sc env pull --env production > .env
# Promote secrets from one environment to another
sc env promote --from staging --to production
MCP 服务
更喜欢使用工具而不是 CLI?sc 内置了 MCP 服务。让 Claude Code(或任意 MCP 客户端)连接到它,你的 Agent 就能使用完整工具集——存储、检索、列出、搜索、轮换、共享以及认领令牌交接,并获得结构化 JSON 响应。
claude mcp add secretcarousel -- sc mcp-serve
对于使用 JSON 配置的客户端(Cline、Cursor、Windsurf),请通过 SC_API_KEY 环境变量传递 API 密钥。MCP 服务在项目目录之外运行,因此不会读取 .sc/config.json:
{
"mcpServers": {
"secretcarousel": {
"command": "sc",
"args": ["mcp-serve"],
"env": { "SC_API_KEY": "sc_your_key_here" }
}
}
}
还没有密钥?可以不带密钥启动——服务会以引导模式启动,并提供 sc_signup 工具,可立即配置密钥库(48 小时激活期限;通过邮件发送的 $0 银行卡验证会开始 7 天免费试用),随后完整工具集便会解锁。
远程 MCP——无需安装
完全不想使用 CLI?Claude Web、Claude Desktop、Raycast 或任何托管 MCP 客户端都能直接连接到我们的远程服务。工具集相同、API 密钥相同,无需安装任何内容:
URL: https://mcp.secretcarousel.com/sse
Auth: Authorization: Bearer sc_YOUR_API_KEY
不带请求头连接时,服务会以引导模式启动——调用 sc_signup 即可在会话中自行配置密钥库(48 小时激活期限,通过邮件发送的 $0 银行卡验证可开始 7 天免费试用)。设置指南:远程 MCP 快速入门。
审计轨迹——可验证、可导出
每次存储、检索、轮换、共享、签发和兑换都会写入不可变事件日志。可在终端中读取,也可导出以满足合规要求。
sc audit --limit 50
sc audit export --format csv > audit.csv
功能
- 机密 — 存储、检索、更新、删除;静态数据采用 AES-256-GCM 加密;支持类型分类(数据库凭据、API 密钥、证书等)
- 零知识模式 — 客户端加密;服务端始终只能看到密文,通过注册握手支持多设备保险库
- 认领令牌 — 通过一次性、有范围限制、会过期且经过审计的令牌,将机密交给其他 Agent/租户
- 轮换 — 立即轮换或按计划轮换,并发送电子邮件提醒
- 共享 — 提供有时限和查看次数限制的链接,供人类使用
- 环境 — 导出为
.env,在不同环境之间提升机密 - 范围限定的 API 密钥 — 按密钥设置读取/写入/管理权限,并限定项目范围
- MCP 服务 — 本地运行(
sc mcp-serve)或完全远程运行(mcp.secretcarousel.com):支持 Claude Code、Claude Web、Cursor、Raycast 和任何 MCP 客户端 - 审计轨迹 — 不可变事件日志,可导出为 CSV 或 JSON
- Agent 自助注册 — Agent 可在会话期间自行配置保险库,无需人工介入
**定价:**7 天免费试用。需要提供银行卡(通过安全的 Stripe 结账),试用期间不会扣费——在试用结束前取消即可,无需支付任何费用。试用结束后,价格从每月 $9 起:Starter $9 · Pro $29 · Scale $99,每个套餐均包含一定数量的机密,超额费用低。所有套餐均支持无限数量的 Agent,不按席位收费。查看详情。
项目专属配置
sc login --local --key YOUR_KEY # saves to .sc/config.json (project-local)
sc me # show tenant info + plan + usage
配置按项目设置,并会从 .sc/config.json 自动加载。请将 .sc/ 添加到 .gitignore。
Agent 集成
将以下内容添加到你的 CLAUDE.md、.cursorrules、.clinerules、.windsurfrules 或 AGENTS.md 中:
## SecretCarousel
This project uses SecretCarousel as its secret vault.
Use the `sc` CLI. Config is in .sc/config.json (auto-loaded).
If not configured: sc login --local --key YOUR_KEY
Never paste a secret value into code, logs, or chat — store it with
`sc secret "NAME" "VALUE"` and retrieve by id at the moment of use.
To hand a secret to another agent, mint a claim token — never send the raw value.
为什么要做这个项目
每个编码 Agent 都会处理凭据,而它们最终都会泄露凭据——可能是误提交的 .env 文件、日志行、粘贴到 Slack 中的内容,或是会话结束后仍然留存的对话记录。我希望 Agent 能像管理自己的代码一样管理机密:由它自行运行一个保险库,只在需要使用时获取机密值,并在交接时避免将其变成可复制粘贴的字符串。项目仍处于早期阶段,正在快速迭代——如果有任何不完善或缺失之处,请提交问题。
文档
许可证
专有软件 — Tyga.Cloud Ltd. 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。