项目简介

MCP-ChatBot 是一个基于 Rust 语言构建的 Model Context Protocol (MCP) 聊天机器人框架。它旨在提供一个结构化的后端,使得大型语言模型 (LLM) 客户端能够标准化地访问外部功能和上下文信息。项目实现了 MCP 的核心概念,包括工具注册与执行、资源托管与访问以及 Prompt 模板管理。通过这种方式,开发者可以构建更强大、更灵活的 AI 应用。

主要功能点

  • 多服务器架构: 支持运行多个不同功能的 MCP 服务器模块。
  • 工具集成: 内置文件操作、SQLite 数据库、内存管理等工具,并可轻松扩展。
  • 资源管理: 定义和访问结构化资源,为 LLM 提供上下文数据。
  • Prompt 管理: 通过 YAML 文件配置可定制的系统 Prompt 模板。
  • 多AI模型支持: 无缝切换 Ollama (本地) 和 OpenAI 等 LLM 提供商。
  • RAG 支持: 集成 Qdrant 向量数据库,支持检索增强生成。
  • 语音输入: 集成 Whisper 模型,支持语音转文本输入。
  • 交互式命令行界面: 提供友好的 CLI 界面进行交互,并支持历史记录。

安装步骤

  1. 安装 Rust: 确保您的系统已安装 Rust 1.70 或更高版本。
    curl --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. 安装 Ollama (可选,推荐本地AI): 从 https://ollama.ai/ 下载并安装 Ollama。
  3. 安装 Qdrant (可选,RAG 功能需要): 推荐使用 Docker 运行 Qdrant 向量数据库。
    docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant:latest
    或使用项目提供的脚本:
    ./scripts/setup_qdrant.sh
  4. 克隆仓库:
    git clone https://github.com/arkCyber/MCP-ChatBot.git
    cd MCP-ChatBot
  5. 构建项目:
    cargo build --release
    这将编译项目可执行文件。

服务器配置

MCP 服务器的配置通过 'config/servers_config.json' 文件管理。这个文件定义了主应用将启动和管理的各个 MCP 服务器模块及其启动参数。

{
  "mcpServers": {
    "memory": { // 服务器名称:内存服务器
      "command": "memory", // 服务器类型标识符
      "args": [], // 启动参数列表
      "env": {} // 环境变量
    },
    "sqlite": { // 服务器名称:SQLite数据库服务器
      "command": "sqlite",
      "args": [":memory:"], // 参数:数据库路径或:memory:
      "env": {}
    },
    "file": { // 服务器名称:文件系统服务器
      "command": "file",
      "args": ["./sandbox"], // 参数:文件操作的根目录
      "env": {}
    },
    "rag": { // 服务器名称:RAG服务器
      "command": "rag",
      "args": [], // 无需特定启动参数
      "env": {}
    },
    "whisper": { // 服务器名称:Whisper语音服务器
        "command": "whisper",
        "args": [],
        "env": {}
    }
    // 可在此处添加更多自定义服务器配置
  }
}

注意: 用户需要根据自己的需求修改此文件,特别是像 'sqlite' 服务器的数据库路径或 'file' 服务器的沙箱根目录等参数。

基本使用方法

  1. 配置环境变量: 在项目根目录创建 '.env' 文件,配置 LLM API 密钥(例如 'OPENAI_API_KEY=your_openai_key' 或 'LLM_API_KEY=your_ollama_key')。
  2. 启动服务: 如果使用 Ollama 或 Qdrant,请确保它们的服务已启动。
  3. 运行应用:
    cargo run --release
    应用程序将启动一个交互式命令行界面。
  4. 交互:
    • 直接输入文字与 LLM 聊天。
    • 输入 '/' 开头的命令使用内置功能 (例如 '/help' 查看命令列表,'/tools' 查看可用工具,'/rag-add' 添加 RAG 文档,'/voice' 开始语音输入)。
    • 程序会自动检测 LLM 的回复是否为工具调用格式('{"tool": "...", "arguments": {...}}'),并根据配置进行处理或提示。

关键词

AI应用框架, 工具集成, 检索增强生成, 聊天机器人

信息

分类

开发者工具