MCP 协议是什么:Model Context Protocol 入门与企业接入
MCP(Model Context Protocol,模型上下文协议)是 Anthropic 在 2024 年开源推出的一项开放标准,用来统一「大模型 / Agent 如何连接外部工具、数据和提示词」。它的目标很朴素:让模型接外部能力像 USB-C 接外设一样,有一个统一接口,而不是每个模型、每个系统都各写一套胶水代码。本文讲清它解决什么问题、核心架构、和 function calling 的区别,以及企业怎么接入。如果你在搭企业 AI Agent,MCP 基本是绕不开的一层。
它到底解决什么问题:M×N → M+N
大模型本身不能直接读你的数据库、查你的 CRM、调你的工单系统。要让它「能干活」,就得把这些外部能力接进来。没有标准时,每接一个能力都要为「这个模型 + 这个系统」单独写一套对接代码。
假设企业有 M 个 Agent / 模型应用,要接 N 个内部系统,没有协议就是 M×N 套适配——而且换模型、加系统都得重写。MCP 把它收敛成 M+N:每个系统封装成一个 MCP server,每个应用实现一个 MCP client,新系统接一次,所有支持 MCP 的 Agent 都能用。
核心架构:Host / Client / Server
MCP 是一套客户端–服务器架构,三个角色分工明确:
| 角色 | 是什么 | 例子 |
|---|---|---|
| Host(宿主) | 承载大模型、发起连接的应用 | 桌面 AI 客户端、你的 Agent 应用 |
| Client(客户端) | Host 内部为每个 server 维护的连接器,一对一 | Host 里管理某个 server 连接的模块 |
| Server(服务端) | 对外暴露具体能力的进程 | 封装数据库 / 工单 / 文件系统的 MCP server |
三种原语:Tools / Resources / Prompts
一个 MCP server 可以向客户端暴露三类东西(primitives):
- Tools(工具):可被模型调用的动作,比如「创建工单」「查询订单」「执行一段查询」。这是最常用的一类。
- Resources(资源):可供模型读取的数据,比如一份文档、一段日志、一条记录,由 URI 标识。
- Prompts(提示词):server 预置的、可复用的提示词模板 / 工作流,供用户或客户端选用。
传输方式:stdio 与 HTTP
MCP 的连接传输主要有两种场景:
- stdio:本地把 server 作为子进程拉起,通过标准输入输出通信。适合本地工具、开发调试。
- HTTP(含 SSE 流式):远程 server,通过 HTTP 通信、用 SSE 推送服务端消息。适合部署在内网或网关后、供多个应用共享的企业 server。
和 function calling、插件有什么区别
这是最常见的疑问。三者不在一个层面:
| 是什么 | 解决的问题 | |
|---|---|---|
| function calling | 某个模型 API 的能力 | 模型「表达」想调哪个工具、传什么参数 |
| 插件 / 私有集成 | 某个平台的封闭扩展机制 | 在该平台内接能力,换平台要重做 |
| MCP | 跨平台的开放连接协议 | 统一「工具/数据怎么连接和复用」,与模型解耦 |
关键点:function calling 是「模型内的一次调用意图」,MCP 是「模型外统一的连接层」。模型用 function calling 决定调哪个工具,背后由哪个 MCP server 提供、跑在哪、怎么发现,由 MCP 管。两者常配合使用,不是替代关系。
一个最小的工具定义长什么样
概念上,server 向客户端声明一个工具时,给的是「名字 + 说明 + 入参 JSON Schema」,模型据此决定怎么调用:
{
"name": "create_ticket",
"description": "在工单系统中创建一条新工单",
"inputSchema": {
"type": "object",
"properties": {
"title": { "type": "string", "description": "工单标题" },
"priority": { "type": "string", "enum": ["low", "normal", "high"] },
"assignee": { "type": "string", "description": "处理人邮箱(可选)" }
},
"required": ["title"]
}
}
客户端列出 server 的工具,模型选定后发起调用,server 执行并返回结果。具体字段以官方规范为准,这里只示意结构。更完整的实现步骤见 怎么搭一个企业级 MCP server。
企业接入的四件事:鉴权、权限、审计、部署
MCP 本身只是连接协议,企业落地的安全和可控性,取决于你怎么实现 server。四层必须自己补齐:
- 鉴权(OIDC / OAuth):远程 server 走标准身份认证,别用裸 token;明确「谁在调用」。
- 权限边界:按角色 / 应用限制每个工具能访问的数据范围和能执行的操作,遵循最小权限。
- 审计:记录每一次工具调用的入参、出参、调用方、时间,可回溯、可排查。
- 部署隔离:内部 server 放内网或受控网关后;区分只读工具与会写数据的工具,写操作收紧。
把这四层做扎实,MCP 在企业里就是可控的。安全性是「实现」决定的,不是协议自带的。
艾景特怎么帮企业落地 MCP
我们做企业 AI Agent 时,MCP 是标准的「能力接入层」。典型做法:
- 把内部系统封装成 MCP server:CRM、工单、知识库、数据库各封一个 server,沉淀成可复用资产,供多个 Agent 共享,而不是给每个项目重写对接。
- 多模型路由:工具层与模型解耦后,可按任务把请求路由到不同模型(成本 / 能力 / 合规取舍),换模型不动工具层。
- 4-8 周从评估到生产:先选一个高价值、边界清晰的场景做试点,跑通只读链路再开放写操作并补鉴权审计,验证后横向复制。
想看更深的实现细节,读 怎么搭一个企业级 MCP server;想看 MCP 在整个 Agent 体系里的位置,看 企业 AI Agent 服务详情。