mcpField
A
agentvault

agentvault

本地服务
github.com/bch1212安全021 周前更新

关于 agentvault

AgentVault 是面向自主 Agent 的凭据管理服务,并通过 MCP 服务提供已存密钥的访问能力。它结合凭据加密、按 Agent 设置的权限与预算,以及访问日志。

主要功能

  1. 01使用 Fernet 加密凭据
  2. 02为 Agent 身份签发专属密钥
  3. 03通过权限模式限制访问
  4. 04执行每日和每月预算上限
  5. 05记录成功和拒绝的访问

适用场景

  1. 01为 Agent 提供任务所需凭据
  2. 02按模式限制 Agent 可访问的凭据
  3. 03设置每个 Agent 的支出上限
  4. 04审查凭据访问和被拒请求

MCP 相关

提供列出凭据、获取凭据并返回限时解密值、查看保险库状态、设置预算和查看审计日志等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bch1212-agentvault": {
"command": "npx",
"args": [
"-y",
"agentvault-mcp"
],
"env": {
"AGENTVAULT_API_URL": "<AGENTVAULT_API_URL>",
"AGENTVAULT_AGENT_KEY": "<AGENTVAULT_AGENT_KEY>"
}
}
}
}
启动命令npx -y agentvault-mcp
需要配置的环境变量
AGENTVAULT_API_URLBase URL of your AgentVault deployment
AGENTVAULT_AGENT_KEY密钥Your avk_ agent API key

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmagentvault-mcp0.1.0

工具

3

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

AgentVault

面向自主 Agent 的 AI 原生凭据管理。 使用列级 Fernet 加密存储 API 密钥,为已注册的 Agent 身份签发唯一的 avk_ 密钥,通过 TTL 代理解密后的值,强制执行每个 Agent 的支出预算,记录每次访问,并将所有功能作为 MCP 服务提供。

为什么需要

自主 Agent 需要 API 密钥才能完成有用的工作,例如访问 Stripe、OpenAI、SendGrid 或你自己的内部服务。目前有三种糟糕的选择:

  1. 将密钥硬编码到 Agent 提示词或配置中。 密钥会泄露到日志中,无法轮换,也没有审计追踪。
  2. 在启动时通过环境变量传递。 无法隔离各个 Agent,没有预算控制,且无法在不重新部署的情况下撤销密钥。
  3. 自行构建保险库。 这需要投入大量工作,包括静态和传输加密、审计日志、密钥轮换和预算跟踪。

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 数凭据数审计轮换预算团队
免费版$0310––––
专业版$4925100✓✓––
商业版$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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。