一、MCP协议是什么?
MCP(Model Context Protocol,模型上下文协议)是大模型和多智能体(Agent)生态中,用于标准化描述和传递上下文信息、能力开放、服务集成的协议。它的目标是让不同模型、Agent、插件、外部服务之间可以无缝协作,支持多轮对话、任务协作、能力组合等复杂AI场景。
MCP也可指“消息通信协议”,用于多通道消息推送(如短信、邮件、钉钉等),但在大模型领域,MCP更强调上下文和能力的标准化。
二、MCP协议的典型内容与结构
- 用户输入/历史对话:如用户的多轮提问、模型的历史回复
- 系统提示词(System Prompt):定义模型角色、风格、边界
- 用户提示词(User Prompt):本轮用户输入
- 外部知识/插件调用结果:如检索、工具调用、API结果
- 会话状态/变量:如用户身份、权限、偏好、任务进度等
- 多智能体协作信息:如Agent之间的消息、任务分配、上下文共享
MCP协议会规定这些内容的结构、字段、序列化方式(如JSON、Protobuf等),以便不同模型/Agent/服务之间可以无缝协作。
三、MCP协议的应用场景
- 多智能体协作:多个Agent协同完成复杂任务时,统一上下文协议,保证信息流转和状态一致
- 插件/工具集成:大模型调用外部API、知识库、工具时,统一输入输出格式
- 跨模型能力融合:如对话模型和检索模型协作,MCP协议标准化它们之间的上下文传递
- 平台级大模型生态:如Coze、LangChain、Dify等平台,通常会有自己的上下文协议(本质就是MCP)
四、用MCP协议开放企业通知能力(如短信、邮件、钉钉等)
1. 统一消息上下文结构
借鉴MCP协议思想,设计一套标准的消息上下文结构。例如:
{"channel": "sms|email|dingtalk","to": ["138xxxxxxx", "user@example.com"],"content": "您的验证码是1234","subject": "通知标题","templateId": "tpl_001","params": { "code": "1234" },"context": {"userId": "u123","sessionId": "s456","businessType": "order_notify"},"callbackUrl": "https://xxx.com/notify/callback"
}
2. 设计统一的API接口
对外提供RESTful API(或GraphQL、WebSocket等),如:
POST /mcp/notify
Content-Type: application/json
{// 见上面的消息结构
}
五、服务注册与发现机制
1. 服务注册方如何注册服务
- 注册中心/能力目录:企业内部或平台需有“服务注册中心”。
- 注册元数据:服务方将服务名称、类型、协议、通道、接口地址、认证方式、文档等信息注册到注册中心。
注册示例:
{"serviceName": "企业通知中心","serviceType": "notification","protocol": "MCP","channels": ["sms", "email", "dingtalk"],"endpoint": "https://api.xxx.com/mcp/notify","auth": "API_KEY","docUrl": "https://api.xxx.com/docs/mcp"
}
2. 服务调用方如何发现服务
- 查询注册中心:调用方通过API查询可用服务(如GET /registry/services?serviceType=notification&protocol=MCP)。
- 获取接口信息:注册中心返回服务列表、接口地址、认证方式等,调用方据此发起调用。
六、参数传递与API调用
- 标准化参数结构:所有服务都遵循MCP协议定义的消息体结构。
- API调用:调用方通过HTTP POST(或其他协议)将参数作为请求体发送到服务接口地址。
- 认证与安全:调用时需带上API Key、Token等认证信息(通常在Header中)。
调用示例:
POST https://api.xxx.com/mcp/notify
Header: X-API-KEY: abcdef123456{"channel": "sms","to": ["138xxxxxxx"],"content": "您的验证码是1234"
}
七、认证机制
- API Key:服务注册时分配唯一API Key,调用方在Header中携带,服务端校验。
- OAuth2/JWT:支持OAuth2授权,获取access_token,Header中携带Bearer Token。
- 白名单+签名:只允许授权IP/服务访问,请求参数加签防篡改。
八、健康检查与下线
- 注册中心定期向服务endpoint发起心跳/健康检查(如GET /health)。
- 服务异常时自动下线,避免调用方请求失败。
九、整体流程回顾
- 服务方注册服务到注册中心,分配API Key。
- 调用方通过注册中心发现服务,获取endpoint和认证方式。
- 调用方带上API Key或Token,按MCP协议调用服务。
- 服务端校验认证,处理请求,返回结果。
- 注册中心定期健康检查,维护服务可用性。
十、MCP协议的优势
- 标准化:不同开发者、不同系统都能用同一套协议调用能力
- 易扩展:后续新增通道无需开发者改代码
- 智能化:结合大模型/Agent,实现更智能的能力编排和调用
- 生态互通:服务可被更多AI应用、企业系统、第三方开发者复用
十一、典型应用场景
- 智能客服自动发送验证码、通知、营销短信
- RPA流程自动触发多通道消息
- 大模型Agent在对话中自动推送邮件、钉钉消息
- 业务系统通过MCP协议一键集成通知能力
十二、流程图示例
十三、结语
MCP协议在大模型和智能体生态中,扮演着“能力标准化、上下文共享、服务发现与集成”的关键角色。企业通过MCP协议开放自身的通知能力,不仅能提升平台智能化和生态价值,还能让大模型、Agent等新一代AI应用轻松集成和调用你的服务。未来,MCP协议将成为AI能力开放和多智能体协作的基础设施。