项目简介
本项目 'mcp-sse-demo' 是一个基于 Model Context Protocol (MCP) 和服务器推送事件 (SSE) 技术构建的智能商城服务助手。它作为一个 MCP 服务器,旨在向大型语言模型 (LLM) 客户端提供标准化的上下文信息和功能,以增强 LLM 在电商场景中的应用能力。
本项目模拟了一个简单的在线商城,通过微服务架构(使用内存数据模拟)提供了产品信息、库存状态和订单管理等功能。核心在于将这些后端服务通过 MCP 协议以工具的形式暴露给 LLM,使得 LLM 能够调用这些工具来获取实时数据,并与用户进行更智能的交互,例如查询商品信息、检查库存、辅助下单等。
主要功能点
- 资源管理 (Resources): 模拟商品、库存和订单数据,并提供访问接口。
- 工具注册 (Tools): 注册了一系列工具,包括:
- 'getProducts': 获取所有产品信息。
- 'getInventory': 获取所有产品的库存信息。
- 'getOrders': 获取所有订单信息。
- 'purchase': 根据商品 ID 和数量创建订单(模拟购买商品)。
- SSE 通信: 使用 SSE 协议作为 MCP 服务器与客户端之间的通信方式,支持实时的双向数据传输。
- JSON-RPC 协议: 基于 JSON-RPC 2.0 协议进行消息格式化,确保与 MCP 客户端的标准兼容性。
- 健康检查: 提供 '/health' 端点用于监控服务器运行状态。
- CORS 支持: 配置 CORS 中间件,允许跨域访问,方便 Web 客户端集成。
- 优雅关闭: 支持接收 'SIGTERM' 和 'SIGINT' 信号,实现服务器的优雅关闭,保证数据完整性。
安装步骤
-
克隆仓库:
git clone https://github.com/cnych/mcp-sse-demo.git cd mcp-sse-demo -
安装依赖: 确保已安装 Node.js 和 npm (或 yarn)。在项目根目录下运行:
npm install cd mcp-sse-server npm install cd ../mcp-client npm install cd .. -
启动 MCP SSE 服务器: 在项目根目录下,进入 'mcp-sse-server' 目录,运行以下命令启动服务器:
npm run start服务器默认监听 '8083' 端口。您应该看到类似 '智能商城 MCP SSE 服务器已启动,地址: http://localhost:8083' 的日志信息。
服务器配置
MCP 服务器是为 MCP 客户端设计的。要使 MCP 客户端连接到此服务器,您需要在 MCP 客户端的配置中指定服务器信息。 以下是一个 MCP 客户端的配置示例 (JSON 格式),您需要根据实际情况进行配置:
{ "mcpServers": { "products-sse": { // server name,客户端可以自定义,用于标识不同的MCP服务器 "url": "http://localhost:8083/sse" // MCP SSE 服务器的 SSE 连接端点 URL } } }
配置参数说明:
- 'url': 必须配置。指向 MCP SSE 服务器提供的 SSE 连接端点 ('/sse')。客户端通过此 URL 与服务器建立 SSE 连接。
注意: 此配置信息是提供给 MCP 客户端使用的,不是 MCP 服务器的启动配置。MCP 服务器的端口等配置可以通过环境变量或修改 'mcp-sse-server/src/config.ts' 文件进行调整。
基本使用方法
-
启动 MCP SSE 服务器 (参考安装步骤)。
-
运行 MCP 客户端: 本项目提供了两种 MCP 客户端示例:命令行客户端和 Web 客户端。
-
命令行客户端: 进入 'mcp-client' 目录,运行命令 'npm run cli' 启动命令行客户端。 客户端启动后,您可以输入自然语言问题,例如 "有什么智能手表?" 或 "购买一个无线蓝牙耳机Pro"。客户端会将问题发送给 LLM,并利用 MCP 服务器提供的工具来获取商品和库存信息,最终返回答案。
-
Web 客户端: 进入 'mcp-client' 目录,运行命令 'npm run web' 启动 Web 客户端服务器。 在浏览器中访问 'http://localhost:3000' (默认地址) 即可使用 Web 聊天界面与智能商城助手进行交互。Web 客户端界面提供了工具列表,您可以在聊天窗口中输入问题进行对话。
-
-
使用 MCP Inspector (可选): 您可以使用 '@modelcontextprotocol/inspector' 工具来调试和监控 MCP 服务器的通信过程。 运行命令 'npx @modelcontextprotocol/inspector' 启动 Inspector,然后在浏览器中打开 Inspector 界面,配置 SSE 地址为 'http://localhost:8083/sse',即可查看客户端和服务器之间的 MCP 消息交互。
通过以上步骤,您就可以体验基于 MCP SSE 服务的智能商城助手,并基于此项目进行二次开发和扩展。
信息
分类
商业系统