MCP 支持两种通信传输方法:STDIO
(标准输入/输出)或 SSE
(服务器推送事件),两者都使用 JSON-RPC 2.0
进行消息格式化。STDIO
用于本地集成,而 SSE
用于基于网络的通信。
比如我们想直接在命令行中使用 MCP 服务,那么我们可以使用 STDIO
传输方法,如果我们要在 Web 页面中使用 MCP 服务,那么我们可以使用 SSE
传输方法。
接下来我们将为大家开发一个基于 MCP 的智能商城服务助手,使用 SSE 类型的 MCP 服务,具备以下核心功能:
- 实时访问产品信息和库存水平,支持定制订单。
- 根据客户偏好和可用库存推荐产品。
- 使用 MCP 工具服务器与微服务进行实时交互。
- 在回答产品询问时检查实时库存水平。
- 使用产品 ID 和数量促进产品购买。
- 实时更新库存水平。
- 通过自然语言查询提供订单交易的临时分析。
这里我们使用 Anthropic Claude 3.5 Sonnet 模型作为 MCP 服务的 AI 助手,当然也可以选择其他支持工具调用的模型。
首先需要一个产品微服务,用于暴露一个产品列表的 API 接口。然后再提供一个订单微服务,用于暴露一个订单创建、库存信息等 API 接口。
接下来的核心就是核心的 MCP SSE 服务器,用于向 LLM 暴露产品微服务和订单微服务数据,作为使用 SSE 协议的工具。
最后就是使用 MCP 客户端,通过 SSE 协议连接到 MCP SSE 服务器,并使用 LLM 进行交互。
完整的项目代码请参考 https://github.com/cnych/mcp-sse-demo