简介

ChatMcp是一个多功能AI平台,它包含一个AI聊天界面(客户端)和一个后端服务。该后端服务作为MCP客户端,通过读取配置文件来知晓并启动多个基于Model Context Protocol (MCP) 实现的外部工具服务进程,从而扩展AI的能力。

主要功能

  • 支持多种AI模型: 与多种主流大型语言模型(如Ollama, OpenAI, DeepSeek, Gemini等)进行对话。
  • 工具调用: 通过聊天指令触发AI调用配置好的外部工具(MCP服务器),完成特定任务(如天气查询、语音合成、文件处理、网络搜索等)。
  • 友好的聊天界面: 图形化的Web界面,支持聊天历史记录管理、模型参数设置、个性化搭档(角色)设定。
  • 灵活配置: 易于配置和集成不同的MCP工具服务。

安装步骤

  1. 克隆仓库: 首先,将项目仓库克隆到本地:
    git clone https://github.com/panxingfeng/chat_mcp.git
    cd chat_mcp
  2. 后端 (Python) 设置: 创建并激活Python虚拟环境,然后安装依赖:
    python -m venv venv
    # Windows 用户请运行:
    venv\Scripts\activate
    # Linux/macOS 用户请运行:
    source venv/bin/activate
    
    pip install -r requirements.txt
  3. 前端 (Node.js) 设置: 进入前端目录并安装依赖:
    cd chat_ui
    npm install

服务器配置

MCP服务器是独立的程序(例如,本项目 'chat_mcp/mcp_server' 目录下提供的天气和语音服务器)。ChatMcp的后端('main.py')作为MCP客户端,通过读取项目根目录下的 'servers_config.json' 文件来知晓需要启动哪些MCP服务器进程以及如何连接它们。

编辑 'servers_config.json' 文件,配置您想要集成的MCP工具服务。每个服务都需要指定启动命令 ('command') 和参数 ('args')。以下是示例配置(请替换其中的占位符信息):

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["-m", "chat_mcp.mcp_server.mcp_server_weather", "--api-key=您的天气API密钥"],
      "display_name": "天气查询"
    },
    "speech": {
      "command": "python",
      "args": ["-m", "chat_mcp.mcp_server.mcp_server_speech", "--server-url=您的语音生成服务URL"],
      "display_name": "语音合成"
    },
     "web_search": {
      "command": "python",
      "args": ["-m", "mcp_server_searxng", "--instance-url=searXNG的url信息"],
      "display_name": "网络搜索"
     },
     "wechat": {
      "command": "python",
      "args": ["-m", "mcp_server_wechat","--folder-path=保存历史记录的目录"],
      "display_name": "微信交互"
     }
  }
}

'command' 指定MCP服务器程序的执行命令(例如 'python' 或 'npx'),'args' 是传递给该命令的参数。'display_name' 会显示在工具列表中,方便识别。请根据您使用的具体MCP服务器模块及其启动方式和所需参数进行配置。

基本使用方法

  1. 启动后端: 在项目根目录,激活Python虚拟环境后,运行:
    python main.py
    这会启动ChatMcp后端,并根据 'servers_config.json' 自动启动配置的MCP服务器进程。
  2. 启动前端: 在 'chat_ui' 目录下,运行:
    npm start
    这将启动前端开发服务器。
  3. 访问应用: 在浏览器中访问前端地址(通常是 'http://localhost:3000'),即可通过友好的聊天界面与AI进行交互,并由AI根据您的需求自动调用配置好的工具服务。

信息

分类

AI与计算