项目简介
本项目是一个基于 Model Context Protocol (MCP) 框架的智能客服系统示例,旨在演示如何使用MCP构建智能客服应用的后端服务。该服务器实现了资源管理、工具注册和Prompt模板定义等核心MCP功能,可以与支持MCP协议的LLM客户端(如Inspector、Claude、Vscode插件等)配合使用,构建智能客服应用。
主要功能点
- 产品知识库访问:提供产品信息查询能力,LLM可以通过读取知识库资源获取产品详情。
- 订单信息查询:支持查询客户订单状态,LLM可以调用订单查询工具获取订单信息。
- 人工客服转接:当LLM无法解决用户问题时,可以调用人工客服转接工具,将用户转接至人工客服系统。
- Prompt模板定制:预设多种Prompt模板,如产品信息查询、订单状态查询、售后问题处理等,支持LLM根据不同场景选择合适的Prompt模板。
安装步骤
- 安装Python环境:确保已安装 Python 3.10 或更高版本。
- 创建并激活虚拟环境 (推荐,避免依赖冲突):
uv venv source .venv/bin/activate # Linux/macOS - 安装项目依赖:在项目根目录下执行以下命令安装项目及其依赖的MCP框架。
uv pip install .
服务器配置
MCP服务器需要配置到MCP客户端中才能使用。以下是针对不同MCP客户端的配置方法。
1. Inspector 配置 (inspector 是一个基于 MCP 协议的通用客户端工具)
如果你使用 '@modelcontextprotocol/inspector' 客户端,可以使用 'uv' 命令直接运行该MCP服务器。
npx @modelcontextprotocol/inspector uv --directory /path/to/SmartCustomerSupportMCP run mcp-smart-customer-support
注意:
- '--directory /path/to/SmartCustomerSupportMCP' 需要替换为你的 'SmartCustomerSupportMCP' 仓库在本地的实际路径。
- 'run mcp-smart-customer-support' 是运行 'mcp-smart-customer-support' 这个可执行模块,它在 'pyproject.toml' 文件中定义。
2. Vscode 或 Claude 等桌面应用配置
对于支持 MCP 协议的桌面应用(如Vscode插件或Claude),你需要提供MCP服务器的启动配置信息。以下是 'SmartCustomerSupportMCP' 的配置示例,你需要将此配置添加到你的MCP客户端的配置文件中。
{ "mcpServers": { "SmartCustomerSupportMCP": { // 服务器名称,可以自定义 "command": "uv", // 启动服务器的命令,这里使用 uv "args": [ // 启动参数 "--directory", "/path/to/SmartCustomerSupportMCP", // 替换为你的 SmartCustomerSupportMCP 仓库的实际路径 "run", "mcp-smart-customer-support" ] } } }
注意:
- '"/path/to/SmartCustomerSupportMCP"' 需要替换为你的 'SmartCustomerSupportMCP' 仓库在本地的实际路径。
- '"SmartCustomerSupportMCP"' 是你在客户端中引用的服务器名称,可以根据需要自定义。
- '"command": "uv"' 和 '"args": [...]' 指定了如何启动MCP服务器进程。
基本使用方法
- 启动MCP服务器:根据上述 "服务器配置" 部分,选择适合你的MCP客户端的方式启动 'SmartCustomerSupportMCP' 服务器。
- 在LLM客户端中使用:在支持MCP协议的LLM客户端中,配置并连接到 'SmartCustomerSupportMCP' 服务器。
- 利用Prompt与LLM交互:
- 使用 'query_product_info' Prompt 查询产品信息,例如引导LLM使用 "查询产品信息:产品A"。
- 使用 'check_order_status' Prompt 查询订单状态,例如引导LLM使用 "查询订单状态:客户 ID"。
- 使用 'handle_after_sales' Prompt 处理售后问题,例如引导LLM使用 "售后问题:产品名称,问题描述"。
- 调用工具:
- LLM 可以根据需要调用 'read_customer_orders' 工具查询订单信息,需要提供客户ID作为参数。
- 当LLM无法解决问题时,可以调用 'transfer_to_human' 工具转接人工客服,需要提供客户ID、问题描述和订单信息。
通过以上步骤,你可以使用 'SmartCustomerSupportMCP' 作为智能客服系统的后端,结合LLM客户端实现智能问答、订单查询、人工客服转接等功能。
信息
分类
商业系统