关于 agentvault
AgentVault 是面向自主 Agent 的凭据管理服务,并通过 MCP 服务提供已存密钥的访问能力。它结合凭据加密、按 Agent 设置的权限与预算,以及访问日志。
主要功能
- 01使用 Fernet 加密凭据
- 02为 Agent 身份签发专属密钥
- 03通过权限模式限制访问
- 04执行每日和每月预算上限
- 05记录成功和拒绝的访问
适用场景
- 01为 Agent 提供任务所需凭据
- 02按模式限制 Agent 可访问的凭据
- 03设置每个 Agent 的支出上限
- 04审查凭据访问和被拒请求
MCP 相关
提供列出凭据、获取凭据并返回限时解密值、查看保险库状态、设置预算和查看审计日志等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
AgentVault
面向自主 Agent 的 AI 原生凭据管理。 使用列级 Fernet 加密存储 API 密钥,为已注册的 Agent 身份签发唯一的 avk_ 密钥,通过 TTL 代理解密后的值,强制执行每个 Agent 的支出预算,记录每次访问,并将所有功能作为 MCP 服务提供。
- 在线 API: https://agentvault-api-production.up.railway.app
- 文档: https://agentvault-api-production.up.railway.app/docs
- 状态: 已投入生产(Railway + Postgres + Stripe 正式环境)
为什么需要
自主 Agent 需要 API 密钥才能完成有用的工作,例如访问 Stripe、OpenAI、SendGrid 或你自己的内部服务。目前有三种糟糕的选择:
- 将密钥硬编码到 Agent 提示词或配置中。 密钥会泄露到日志中,无法轮换,也没有审计追踪。
- 在启动时通过环境变量传递。 无法隔离各个 Agent,没有预算控制,且无法在不重新部署的情况下撤销密钥。
- 自行构建保险库。 这需要投入大量工作,包括静态和传输加密、审计日志、密钥轮换和预算跟踪。
AgentVault 将选项 3 做成了一项服务。每个 Agent 使用一个 avk_ 密钥。通过权限模式(["stripe_*", "openai_*"])限制权限。设置每日/每月支出上限。提供完整的访问日志。原生支持 MCP,Agent 可以调用 vault.get_credential("stripe_key") 并获取受 TTL 限制的解密值。
快速入门
直接使用 HTTP
import httpx
resp = httpx.post(
"https://agentvault-api-production.up.railway.app/api/v1/vault/get/stripe_key",
headers={"X-Agent-Key": "avk_..."},
params={"cost": 0.05},
)
stripe_key = resp.json()["value"]
MCP(Claude Desktop / Cursor / Cline)
{
"mcpServers": {
"agentvault": {
"command": "python",
"args": ["-m", "mcp_server"],
"env": {
"AGENTVAULT_API_URL": "https://agentvault-api-production.up.railway.app",
"AGENTVAULT_AGENT_KEY": "avk_..."
}
}
}
}
然后在 Claude 中调用:vault.get_credential("stripe_key"),即可返回解密后的值。
工作原理
- 列级 Fernet 加密 — 凭据在写入数据库之前,使用
VAULT_ENCRYPTION_KEY加密。比单独依靠磁盘静态加密更安全。 avk_Agent 密钥 — 静态存储时使用 SHA-256 哈希,绝不以明文存储。前缀易于识别,类似sk_live_/whsec_。- 权限模式 — 使用
["stripe_*", "openai_*"]限定 Agent 的权限,无需完整的策略引擎。基于 fnmatch。 - 预算强制执行 — 为每个 Agent 设置每日和每月上限。
/vault/get?cost=0.05会记录支出;达到上限后返回 429。 - 审计日志 — 每次访问(无论成功还是被拒绝)都会写入
credential_access_logs,包含 IP、user-agent 和错误原因。 - MCP 服务 —
mcp_server/将list_credentials、get_credential、vault_status、set_budget、view_audit_log作为 stdio MCP 工具提供。
定价
| 版本 | $/月 | Agent 数 | 凭据数 | 审计 | 轮换 | 预算 | 团队 |
|---|---|---|---|---|---|---|---|
| 免费版 | $0 | 3 | 10 | – | – | – | – |
| 专业版 | $49 | 25 | 100 | ✓ | ✓ | – | – |
| 商业版 | $149 | ∞ | ∞ | ✓ | ✓ | ✓ | ✓ |
| 企业版 | $499 | ∞ | ∞ | ✓ | ✓ | ✓ | ✓ + SSO + 合规 |
自托管
git clone https://github.com/bch1212/agentvault
cd agentvault
pip install -r requirements.txt
cp .env.example .env # then fill in VAULT_ENCRYPTION_KEY and DATABASE_URL
python -m api.main
运行测试:
python -m pytest -v # 34 tests
部署到 Railway:
bash deploy.sh
架构
api/
├── main.py # FastAPI + lifespan
├── database.py # Async SQLAlchemy (auto-rewrites postgresql:// → postgresql+asyncpg://)
├── services/
│ ├── encryption.py # Fernet encrypt/decrypt
│ ├── auth.py # avk_ key gen + SHA-256 hashing
│ ├── budget.py # Per-agent spend tracking
│ ├── audit.py # Access log
│ └── alerts.py # SendGrid alerts
├── middleware/ # X-Agent-Key + Bearer auth
└── routers/ # users, agents, credentials, vault, audit, budgets, billing
mcp_server/ # FastMCP stdio server
tests/ # 34 tests, SQLite in-memory
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。