简而言之,MCP(模型上下文协议)由两部分组成:
一句话概括:一种基于 JSON‑RPC 的协议,使用 JSON Schema 来进行工具的发现与调用,支持本地或远程传输。实用层面:它提供一套一致的契约——列出工具、描述输入/输出、发起调用,并以流式方式返回结果。
模型上下文协议(MCP)让 AI 不再局限于问答,而是能够执行动作——比如发送邮件、部署代码或发布文章。因为它是开放标准,任何主机(Host)都能支持,任何服务器(Server)也能在不同 Host 之间复用。这比各家模型厂商自有的 function calling/tool use 更易扩展、可维护性更好。
如果已经有现成 API,把它再包一层 MCP Server 有时显得冗余;相比直接使用 REST/OpenAPI,会引入额外的安全与权限面,增加维护开销。
MCP Server 面临多重安全风险:
企业用户倾向于自行托管 MCP Server,并希望分离数据层和控制层以确保安全性和合规性。虽然最新规范增加了对远程 Server 的支持(基于 OAuth 2.1 的身份验证、流式 HTTP 传输、JSON-RPC 批处理),但仍存在问题。
由于 MCP 尚未内置细粒度权限控制,当前仅局限于会话级别,工具要么完全开放,要么完全禁用。随着工具数量增加,权限管理将变得日益复杂。
MCP 最初设计更偏向本地运行,让本地服务作为独立进程集成,但子进程会带来安全隐患。在 MCP 中,连接是有状态的,支持在连接的生命周期内进行多次请求和响应。这种设计与当前流行的无状态 API 架构(如 AWS Lambda、Cloudflare Workers)不太契合。
MCP 当前将所有工具都塞入模型上下文,缺乏优先级或路由机制,这不仅浪费 token,还可能导致模型行为不稳定。当工具列表超过 60 种时,让模型选择 5 种合适的工具,性能会明显下降,大多数时候它不会选择最适合的工具。需要一种分级路由(逐步、选择性暴露工具选项)的方式。
MCP 的核心仍然是模型,其主要目标是抢占下一个用户交互入口,使模型客户端成为主要的交互界面。用户可以通过 API 完成操作,而无需依赖各个垂直 SaaS 软件的图形界面。在长链条任务中,这种设计与用户利益一致。
作为 MCP Client 与 Server 之间的中介组件,负责统一管理连接、分配任务以及执行安全验证。其功能类似传统的 API 网关,包括:
在多租户环境中,网关尤为重要,因为不同用户和 Agent 可能具有不同的访问权限。
目前用户找到并配置 MCP 服务器仍是手动过程,需要自行查找服务地址或脚本,配置认证信息。可以构建:
提供远程 MCP Server 托管服务,现有基础设施厂商已经在进入,提供简化远程 MCP Server 构建过程的核心组件:
MCP Server 安全需要围绕其生命周期:
Host 侧需要一层「中间件」来处理:
如果你正在评估用于企业自动化的 MCP,我们可以帮助你一起梳理安全、权限与部署模型,并给出贴合你环境的最佳实践。