一、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)。
  • 服务异常时自动下线,避免调用方请求失败。

九、整体流程回顾

  1. 服务方注册服务到注册中心,分配API Key。
  2. 调用方通过注册中心发现服务,获取endpoint和认证方式。
  3. 调用方带上API Key或Token,按MCP协议调用服务。
  4. 服务端校验认证,处理请求,返回结果。
  5. 注册中心定期健康检查,维护服务可用性。

十、MCP协议的优势

  • 标准化:不同开发者、不同系统都能用同一套协议调用能力
  • 易扩展:后续新增通道无需开发者改代码
  • 智能化:结合大模型/Agent,实现更智能的能力编排和调用
  • 生态互通:服务可被更多AI应用、企业系统、第三方开发者复用

十一、典型应用场景

  • 智能客服自动发送验证码、通知、营销短信
  • RPA流程自动触发多通道消息
  • 大模型Agent在对话中自动推送邮件、钉钉消息
  • 业务系统通过MCP协议一键集成通知能力

十二、流程图示例

服务提供方 注册中心 服务调用方 注册服务(元数据、接口、协议等) 查询notification服务 返回服务列表及接口信息 按MCP协议发起API调用(带参数) 返回处理结果 服务提供方 注册中心 服务调用方

十三、结语

MCP协议在大模型和智能体生态中,扮演着“能力标准化、上下文共享、服务发现与集成”的关键角色。企业通过MCP协议开放自身的通知能力,不仅能提升平台智能化和生态价值,还能让大模型、Agent等新一代AI应用轻松集成和调用你的服务。未来,MCP协议将成为AI能力开放和多智能体协作的基础设施。


Logo

更多推荐