项目简介

“Chat UI 扩展 MCP 服务集”并非一个独立的聊天界面,而是作为其配套的后端服务集合。它包含多个独立的 Model Context Protocol (MCP) 服务器,这些服务器通过标准化的 JSON-RPC 协议提供特定领域的上下文信息和功能。Chat UI(MCP 客户端)可以连接到这些服务,从而扩展其与大型语言模型(LLM)交互的能力。

主要功能点

本服务集提供了以下类型的 MCP 服务器,每个服务器都封装了特定的“工具”或“资源”:

  • 计算器 (calculator): 提供安全的数学表达式评估能力。
  • 思考工具 (thinking): 允许 LLM 对问题进行结构化思考和分解。
  • PDF 分析器 (pdfbasic): 能够分析 PDF 文档内容,提取文本并生成分析报告。
  • UI 演示 (ui-demo): 演示 MCP 服务器如何向客户端注入自定义 HTML/JavaScript,从而动态修改 Chat UI 界面。
  • 代码执行器 (code-executor): 提供一个安全的 Python 代码沙箱环境,支持代码执行、结果捕获、文件生成以及 Matplotlib 绘图可视化。
  • 文件系统 (filesystem): 允许 LLM 读取、写入、列出和删除位于安全隔离目录中的文件。
  • 网页搜索 (duckduckgo): 能够执行 DuckDuckGo 网页搜索并抓取网页内容作为上下文。
  • 表格分析 (basictable): 支持 CSV/XLSX 文件的分析,检测数值列并生成基本统计图表。
  • 提示词管理 (prompts): 提供预定义的系统提示词,LLM 可以通过调用这些提示词来调整其行为或采用特定角色(例如“金融科技专家”)。
  • 数据库模拟器 (mcp-http-mock): 模拟数据库查询功能,允许 LLM 通过结构化查询获取模拟数据。

安装步骤

这些 MCP 服务器通常与 Chat UI 后端一起运行。以下是启动整个应用的推荐方法:

通过 Docker (推荐)

  1. 在仓库根目录(即 'chat-ui-11' 文件夹)下执行:
    docker build -t chat-ui .
    docker run -p 8000:8000 chat-ui
  2. 然后打开浏览器访问 'http://localhost:8000'。Docker 会自动启动 Chat UI 后端及其依赖的 MCP 服务器。

本地开发环境

  1. 安装 'uv':
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 设置 Python 环境:
    uv venv && source .venv/bin/activate  # Windows 用户请使用: .venv\Scripts\activate
    uv pip install -r requirements.txt
  3. 配置环境变量: 复制 '.env.example' 为 '.env' 文件,并根据需要编辑其中的 API 密钥和配置。
    cp .env.example .env
  4. 构建前端:
    cd frontend && npm install && npm run build
  5. 启动后端: 这将启动 Chat UI 的主后端,该后端会自动检测并连接到 'backend/mcp' 目录下的 MCP 服务器。
    cd ../backend && python main.py
  6. 打开浏览器访问 'http://localhost:8000'。

服务器配置

MCP 客户端(例如 Chat UI 的后端)需要配置 MCP 服务器的连接信息。这些配置通常以 JSON 格式存储,例如在 'backend/configfiles/mcp.json' 或 'config/overrides/mcp.json' 文件中。以下是配置 MCP 服务器的关键信息示例及说明,MCP 客户端根据这些信息来启动和连接 MCP 服务器:

  • 服务器名称 (server name): 'calculator'
    • 这是一个用户友好的名称,用于在客户端界面中识别该 MCP 服务。
    • 描述 (description): '提供基本的数学计算功能。'
    • 命令 (command): '["python", "main.py"]'
      • 这是一个数组,指示 MCP 服务器的启动命令及其参数。例如,'python main.py'。
    • 工作目录 (cwd): 'backend/mcp/calculator'
      • 指定 MCP 服务器进程的启动目录。通常是包含 'main.py' 脚本的文件夹,确保相对路径正确。
    • 分组 (groups): '["mcp_basic"]'
      • 用于权限控制,指定哪些用户组可以访问此服务器提供的工具和功能。
    • 简短描述 (short_description): '基本的数学计算。'
      • 在客户端的工具列表中显示更简洁的描述。
  • 服务器名称 (server name): 'database' (模拟数据库服务器,通常通过 HTTP/SSE 传输)
    • 描述 (description): '模拟数据库操作,提供对用户、订单和产品表的查询。'
    • URL (url): 'http://127.0.0.1:8005/mcp'
      • 如果 MCP 服务器是基于 HTTP 或 SSE 传输的,则需要指定其访问 URL。
    • 传输类型 (transport): 'http' (或 'sse')
      • 明确指定 MCP 服务器使用的传输协议类型。

基本使用方法

一旦 Chat UI 及其 MCP 服务集启动并运行,用户可以在聊天界面中与 LLM 交互,并利用这些 MCP 服务器提供的扩展功能:

  1. 选择模型: 在 Chat UI 界面中选择一个 LLM 模型。
  2. 启用工具: 打开“工具与集成”面板,选择需要启用的 MCP 服务器(如“计算器”、“代码执行器”等)。
  3. 开始对话: 在聊天框中输入您的请求。如果请求需要特定工具的功能(例如,“请计算 25 乘以 43 的结果”),LLM 将识别并自动调用相应的 MCP 工具来获取答案。
  4. 查看结果: 工具执行结果(包括文本输出、文件下载链接、可视化图表或自定义 UI 元素)将会在聊天界面中显示,或在画布面板中渲染。

信息

分类

AI与计算