MCP 选中工具之后,到安全执行之间还缺什么?

4 阅读1分钟

MCP 已经解决了工具发现、结构化参数、调用协议、结果返回等重要问题。对于 HTTP 传输,它还有独立的授权规范,用来说明受保护的 MCP Server 如何作为 OAuth 资源服务器工作,客户端如何获取访问令牌,以及令牌为什么必须绑定正确的资源受众。官方安全实践也覆盖了最小权限、会话绑定、凭证保护、沙箱和逐次授权等问题。

所以这里讨论的缺口,并不是因为“MCP 没有安全设计”。

真正的区别在于,协议成功和业务完成回答的是两组不同的问题:

协议成功:
  一个格式正确的请求,是否被送达给了一个允许当前客户端访问的 MCP Server?

业务完成:
  正确的主体,是否在正确的业务状态下,对正确的对象执行了一次正确的行动,
  并且审批、幂等、失败恢复和责任证据都与这次行动保持一致?

协议可以承载行动,但协议本身不知道:

  • 订单 ORD-9001 现在是否还允许退款;

  • 员工 E-1024 是否属于门店 S-18

  • 这笔订单此前是否已经在另一个入口完成过退款;

  • 退款金额是否超过当前剩余可退金额;

  • 这个审批是否批准的正是即将执行的那组参数。

这些事实更靠近业务领域,而且会随时间变化。它们不能只靠工具描述、模型推理或一次 OAuth 鉴权来推断。