项目简介

本项目包含一个基于MCP (Model Context Protocol) 的服务器以及一个使用该服务器的多智能体销售顾问系统。MCP服务器负责托管并提供关键的后端能力,如产品库存查询和订单创建,而多智能体系统(基于CrewAI)则作为客户端调用这些能力来与用户互动,分析需求,提供咨询,并处理订单。

主要功能点

该MCP服务器提供以下核心功能,可供支持MCP协议的客户端(如大型语言模型或Agent框架)调用:

  1. 库存查询: 根据产品名称、颜色、存储容量等信息查询MongoDB数据库中的产品库存和价格详情。
  2. 订单创建: 将结构化的订单数据保存到文件系统中。
  3. 订单查询: 根据订单ID检索已保存的订单详情。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/TrongNV2003/Multi-Agents-MCP.git
    cd Multi-Agents-MCP
  2. 安装依赖: 确保您安装了Python 3.8+,然后安装项目所需的库。
    pip install -r requirements.txt
  3. 设置环境变量: 根据 'multi_agents/config/settings.py' 中的配置,您需要设置以下环境变量,通常放在项目根目录的 '.env' 文件中:
    • 'GEMINI_API_KEY': 您的Gemini API密钥。
    • 'GEMINI_MODEL': (可选)Gemini模型名称,默认为 'gemini/gemini-1.5-flash'。
    • 'TEMPERATURE' 等LLM配置参数也可以在 '.env' 中覆盖默认值。
    • 'MCP_SERVER_BASE_URL': (可选)MCP服务器的基础URL,默认为 'http://localhost:8000/sse'。
    • 'MONGO_URI': (可选)MongoDB连接字符串,默认为 'mongodb://localhost:27017'。
    • 'DB_NAME': (可选)MongoDB数据库名称,默认为 'inventory'。
  4. 初始化数据库: 项目使用MongoDB存储产品库存信息。
    • 确保您的本地或远程有运行的MongoDB实例。
    • 运行脚本填充示例数据(需要安装pymongo):
      python multi_agents/db/insert_data.py
  5. 创建订单存储目录: 服务器会将订单保存在 'orders' 目录下,确保该目录存在或服务器有权限创建。

服务器配置 (供MCP客户端使用)

该MCP服务器运行在 'http://localhost:8000' 并使用 SSE (Server-Sent Events) 作为传输协议。

一个MCP客户端要连接并使用这个服务器,需要知道服务器的地址、端口、传输协议以及它提供的工具。配置信息通常以 JSON 格式提供给客户端,类似如下(注意:这不是代码,是客户端配置的示例结构和内容说明):

{
  "server_name": "mcp server", // 服务器的内部名称,由服务器定义
  "connection_type": "sse",    // 传输协议类型
  "url": "http://localhost:8000/sse", // 服务器的连接URL

  "available_tools": [ // 服务器声明的能力/工具列表
    {
      "name": "create_order",
      "description": "Saves order data to a file. Input is a JSON string with order details."
      // 客户端框架通常会自动获取更详细的参数 schema
    },
    {
      "name": "get_order",
      "description": "Retrieves the content of an order file by its order_id. Returns a dictionary with file_content or error message."
    },
     {
      "name": "get_product_info",
      "description": "Retrieves inventory details from storage based on the product. Input is a JSON object/string with product name, and optionally storage and color."
    }
  ]
  // 其他可能的配置,如认证信息等 (本项目中未涉及)
}

客户端框架(如本仓库中的多智能体代码)会解析这些信息,通过指定的URL和协议与服务器建立连接,并通过 MCP 标准的 'tool_code/call_tool' JSON-RPC 方法调用列出的工具。

基本使用方法

  1. 启动MCP服务器: 在项目根目录运行:
    python mcp_server.py
    服务器将在后台监听 'http://localhost:8000/sse'。
  2. 运行客户端应用:
    • 运行命令行多智能体示例:
      python main.py
    • 运行Streamlit UI界面:
      python -m streamlit run multi_agents/ui/main.py
    这些客户端应用将连接到您在步骤1中启动的MCP服务器,并通过调用服务器提供的工具来执行任务(例如,Inventory Agent 调用 'get_product_info',Order Agent 调用 'create_order')。

信息

分类

商业系统