项目简介

本项目是一个基于 Model Context Protocol (MCP) 框架的智能客服系统示例,旨在演示如何使用MCP构建智能客服应用的后端服务。该服务器实现了资源管理、工具注册和Prompt模板定义等核心MCP功能,可以与支持MCP协议的LLM客户端(如Inspector、Claude、Vscode插件等)配合使用,构建智能客服应用。

主要功能点

  • 产品知识库访问:提供产品信息查询能力,LLM可以通过读取知识库资源获取产品详情。
  • 订单信息查询:支持查询客户订单状态,LLM可以调用订单查询工具获取订单信息。
  • 人工客服转接:当LLM无法解决用户问题时,可以调用人工客服转接工具,将用户转接至人工客服系统。
  • Prompt模板定制:预设多种Prompt模板,如产品信息查询、订单状态查询、售后问题处理等,支持LLM根据不同场景选择合适的Prompt模板。

安装步骤

  1. 安装Python环境:确保已安装 Python 3.10 或更高版本。
  2. 创建并激活虚拟环境 (推荐,避免依赖冲突):
    uv venv
    source .venv/bin/activate  # Linux/macOS
  3. 安装项目依赖:在项目根目录下执行以下命令安装项目及其依赖的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服务器进程。

基本使用方法

  1. 启动MCP服务器:根据上述 "服务器配置" 部分,选择适合你的MCP客户端的方式启动 'SmartCustomerSupportMCP' 服务器。
  2. 在LLM客户端中使用:在支持MCP协议的LLM客户端中,配置并连接到 'SmartCustomerSupportMCP' 服务器。
  3. 利用Prompt与LLM交互
    • 使用 'query_product_info' Prompt 查询产品信息,例如引导LLM使用 "查询产品信息:产品A"。
    • 使用 'check_order_status' Prompt 查询订单状态,例如引导LLM使用 "查询订单状态:客户 ID"。
    • 使用 'handle_after_sales' Prompt 处理售后问题,例如引导LLM使用 "售后问题:产品名称,问题描述"。
  4. 调用工具
    • LLM 可以根据需要调用 'read_customer_orders' 工具查询订单信息,需要提供客户ID作为参数。
    • 当LLM无法解决问题时,可以调用 'transfer_to_human' 工具转接人工客服,需要提供客户ID、问题描述和订单信息。

通过以上步骤,你可以使用 'SmartCustomerSupportMCP' 作为智能客服系统的后端,结合LLM客户端实现智能问答、订单查询、人工客服转接等功能。

信息

分类

商业系统