关于 Valta
Valta 是 Valta 托管 API 的 MCP 协议适配器,为 Agent 提供钱包、支出审批和审计工具。多数工具需 Agent 主动调用;代理请求则会先检查额度,再向 Stripe、Serper 或 Polygon 发出实际请求。
主要功能
- 01查询余额、额度和钱包
- 02申请支出审批并设置支出策略
- 03冻结或恢复 Agent 钱包
- 04读取支出审计记录
- 05经支出门控代理请求 Stripe、Serper、Polygon
适用场景
- 01查看 Agent 钱包余额与支出限制
- 02记录并审查支出审批决定
- 03将支持的外部请求置于额度检查之后
MCP 相关
MCP 服务将 Valta API 的钱包、支出门控和审计功能作为工具提供。valta_proxy_request 会在获批后才调用已接入的服务;其他工具不会拦截 Agent 通过独立渠道进行的支出。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| agentId | string | 是 | 要检查的 Valta Agent/钱包 ID 或名称 |
详细介绍
valta-mcp
一个用于 Valta 的 MCP(Model Context Protocol)服务——为 AI Agent 提供财务治理。它将 Valta 的支出闸门和审计追踪作为 MCP 工具提供,因此任何兼容 MCP 的客户端(Claude Desktop、Claude Code、Cursor 等)都可以直接调用。

这是什么——又不是什么
此服务只是 Valta 真实托管 REST API 的轻量封装。它本身不实现任何支出逻辑、限额或哈希处理——这里的每次工具调用都会转发至 https://valta.co/api/v1/...,实际的管控(支出闸门、审计链)在此处执行。此仓库是协议适配器,而非管控引擎。
重要提示,依赖此服务处理任何安全敏感事项前请先阅读:这些工具大多仅提供建议,并不执行管控。工具说明告诉模型“支出前调用此工具”,这只是指导,并非保证。例如,valta_request_spend 只管控通过它发起的支出——它不会拦截或阻止通过 Agent 可独立访问的其他工具、API 或 webhook 产生的支出。
**有一个工具与众不同:valta_proxy_request。**它不要求模型在其他地方支出前先来检查,而是让支出本身经过 Valta——Agent 声明一次出站调用的成本,并通过 Valta 路由实际调用;Valta 会根据钱包限额检查该调用,只有在获得批准后才会使用你存储的凭据发出实际请求。如果请求被拦截,则根本不会联系实际服务提供方。这是真正由代码层面保证的机制,而非依赖自觉——但仅限 Valta 已接入代理的特定服务(目前包括:Stripe、Serper、Polygon)。任何通过此代理以外渠道产生的支出——例如 Agent 自己使用另一把 API 密钥、通过 webhook,或调用此服务不了解的工具——都不在这些工具能够看到或阻止的范围内。请参阅下文的设计说明。
安装
npm install -g valta-mcp
也可以直接运行,无需安装:
npx valta-mcp
配置
前往 valta.co/dashboard → Settings → API Keys → Create key,获取 API 密钥。
将其添加到 MCP 客户端的配置中(例如 Claude Desktop 的 claude_desktop_config.json):
{
"mcpServers": {
"valta": {
"command": "npx",
"args": ["valta-mcp"],
"env": {
"VALTA_API_KEY": "sk_valta_your_key_here"
}
}
}
}
工具
| 工具 | 功能 |
|---|---|
valta_check_balance | 查看 Agent 的钱包余额和限额 |
valta_request_spend | 请求消费授权——由真正的消费关卡批准或拒绝 |
valta_create_wallet | 创建一个新的命名钱包,可选设置消费限额 |
valta_freeze_agent | 紧急停止开关——冻结 Agent 的钱包,阻止后续消费 |
valta_unfreeze_agent | 恢复已冻结的 Agent 钱包 |
valta_get_audit_trail | 查看采用哈希链的消费决策审计记录 |
valta_list_wallets | 列出账户中的所有命名钱包——在查询余额或消费前,可用此工具查找钱包名称 |
valta_transfer_funds | 在你自己的两个 Agent 钱包之间直接转账 USDC |
valta_list_agents | 列出账户中的所有 Agent |
valta_get_agent | 获取单个 Agent 的详细信息 |
valta_run_agent | 触发 Agent 执行任务 |
valta_get_agent_run | 检查特定 Agent 运行的状态和结果 |
valta_list_policies | 列出账户上配置的消费策略 |
valta_set_policy | 创建新的消费策略(每日上限、单笔交易上限) |
valta_proxy_request | 通过 Valta 的消费关卡出口代理,向已连接的服务(Stripe、Serper、Polygon)发起真实的出站调用——预先申报费用,仅在获批后才会访问真实服务提供商;失败时自动退款 |
valta_list_proxy_requests | 列出出口代理处理过的每次调用的收据——包括允许、拦截、退款或待批准的调用,以及相应原因 |
src/index.ts 中每个工具的描述都会明确说明它会强制执行什么、不会强制执行什么——在将其接入任何涉及真实资金的系统之前,请先阅读这些描述。
设计说明
为什么没有“不可绕过的系统提示词”。 本项目的早期草案曾考虑提供一个系统提示词指令块,声称可以让消费关卡“不可绕过”。但这一说法站不住脚,原因有二:
- MCP 服务无法控制宿主的系统提示词。 Claude Desktop、Claude Code、Cursor 和其他宿主各自管理自己的系统提示词。MCP 服务提供工具,有时还会提供受限的
instructions字段——但它无法向对话注入一条具有约束力且普遍强制执行的规则。 - 系统提示词是对模型的要求,不是代码层面的约束。 即使宿主确实会展示服务指令,Agent 仍可能受到提示词注入或越狱攻击,也可能直接改用完全不调用此服务的其他工具。声称情况并非如此,恰恰会造成这个项目试图弥补的漏洞——信任模型自我约束,正是 Valta 的消费关卡从一开始就要避免的失效模式。
哪些机制确实能提供保障,哪些不能。 这个服务现在提供两种不同级别的强制执行;具体工具提供哪一级,至关重要:
- 通过调用
valta_request_spend授权的消费,确实会在服务端根据实际限额进行检查——但前提是 Agent 选择先调用它。漏洞在于 Agent 通过其可用的其他渠道进行消费。 - 通过
valta_proxy_request路由的消费,会在发起真实调用之前进行检查——Agent 无法跳过检查却仍完成支付,因为触发支付的调用和检查本身是同一个操作。这弥补了上述漏洞,但仅适用于此服务已接入代理的服务(截至本文撰写时,包括 Stripe、Serper、Polygon)——要接入新服务,就必须针对该服务提供商的具体身份验证方案,添加真实的凭据处理逻辑,而不是切换一个配置标志。
如果某个用例需要对上述列表中尚未涵盖的服务提供强制保障,就必须先将该服务接入 Valta 的代理关卡——请提交 issue 或 PR。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。