agentwallets.si
← 返回文章

AGENTWALLETS · 独立解读

MCP 接支付:怎样给 Agent 设计清楚的工具权限边界

说明 MCP 在支付工具接入中的位置,区分服务器访问与付款授权,并拆开报价、执行和状态查询。

AgentWallets2026-11-01 · 约 4 分钟阅读
项目资料 · MCP ↗

先看结论

MCP 规范 AI 应用如何连接外部工具、资源和提示模板。支付服务可以通过 MCP 暴露操作,但 MCP 本身不负责结算,也不会授予统一的消费权限。Host、服务端与底层支付系统仍需明确的授权和交易控制。

文章图解 · 概念示意
01工具发现02工具调用03钱包边界

开发者希望助手找到一张未付款账单,向用户展示报价,获得批准后再付款。把支付 API 封装成工具,确实能让助手使用这个流程。但还有一个更重要的问题:系统里的哪个环节,负责判断这张账单现在可以支付?

MCP 解决连接方式,真正的资金操作边界仍需要设计。

资料边界: 本文于 2026 年 11 月 1 日核对 MCP 官方文档,采用 2026-07-28 文档版本。以下是支付工具的设计分析,未测试某个 MCP 服务,也没有创建或使用支付凭证。

先定位 MCP 在应用里的位置

MCP 简介 将其定义为连接 AI 应用与外部系统的标准。架构文档 区分了 Host、由它管理的 Client,以及连接的 Server。服务端可以暴露工具、资源等能力,但协议不替应用决定业务规则。

接支付时,可以把 MCP 看成受控服务的接口。实际签名或支付处理能力应留在有明确检查的服务边界内,而不是让模型想调用什么,就直接对应一次资金操作。

概念流程:助手 Host → MCP Client; MCP Client → 支付 MCP Server; 支付 MCP Server → 审批与策略检查; 审批与策略检查 → 支付方或签名服务; 支付方或签名服务 → 记录支付结果; 记录支付结果 → 支付 MCP Server.
依据公开资料整理的概念流程,并非支付实测。来源:MCP introduction.

支付工具边界概念图,非实测服务。策略和支付组件是应用需要设计的部分,并非 MCP 自带组件。

能访问服务器,不代表每笔款都获批

授权规范 讨论 HTTP 传输下的 MCP 授权,受保护的 MCP Server 在其中承担资源服务器角色;本地 STDIO 使用不同的凭证处理方式。接入方应先明确实际使用的传输与认证模式。

允许调用者访问服务的令牌,不应被解释为可以动用所有账户。对于账单流程,服务仍需把调用身份与客户、账户、具体操作和审批记录对应起来。“助手已连接”无法回答“谁批准了这笔付款”。

服务端还可能调用下游支付 API。MCP 的安全指南 提醒了令牌透传和混淆代理风险。签发给 MCP Server 的令牌,与下游服务认可的凭证,应明确区分,不能把收到的令牌当成到处都能使用的凭证包。

给助手一个小而清楚的操作流程

下面是建议的工具拆分,不是 MCP 官方支付 API:

工具职责 有用的返回内容 权限边界
查询账单 商户、金额、币种和当前状态 指定账户的只读访问
准备付款 固定的报价引用和有效期 不移动资金
执行已批准付款 尝试编号与当前结果 匹配审批并执行策略校验
查询执行结果 等待、失败或完成状态 只读核对

执行工具最好引用之前准备好的操作,而不是允许助手在批准后悄悄替换收款人或金额。报价过期或发生变化,应回到相应的确认环节。

这种拆分也让助手更容易准确描述结果。“已准备”可以表示方案存在,“已提交”可以表示有了付款尝试,两者都不需要被误写成“已付款”。

工具返回的是数据,不是新授权

供应商返回的账单描述里,可能夹着直接写给助手的指令。应用可以使用其中的账单数据,但不能让这些文本改写账户权限、变更已批准收款方,或要求提供凭证。

审查时,可以在模拟供应商响应里加入恶意指令,确认它不会被当作执行授权;同时测试错误账户引用、过期审批,以及超时后的重试。这些是建议测试项,我们没有针对某个服务执行它们。

MCP 调用与下游支付尝试之间应保留关联编号。提交后连接断开,优先走状态查询,而不是自动生成新购买。工具错误最好明确区分:没有执行任何动作、某次尝试已失败,还是结果仍不确定。

什么情况下值得引入

如果多种 AI 应用都要使用同一套定义清楚的工具服务,MCP 可以减少各自单独接接口的工作。若只是单个内部 Agent,也要衡量新增 Client/Server 与授权边界是否值得。

我们更建议按操作边界、凭证处理与结果核对能力评价支付 MCP Server,而不是数它暴露了多少工具。继续阅读 MCP 目录条目、A2A 的任务协作边界 和 支付幂等设计。

沿着来源,继续了解

参考资料