项目简介
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 界面进行交互,并支持历史记录。
安装步骤
- 安装 Rust: 确保您的系统已安装 Rust 1.70 或更高版本。
curl --tlsv1.2 -sSf https://sh.rustup.rs | sh - 安装 Ollama (可选,推荐本地AI): 从 https://ollama.ai/ 下载并安装 Ollama。
- 安装 Qdrant (可选,RAG 功能需要): 推荐使用 Docker 运行 Qdrant 向量数据库。
或使用项目提供的脚本:docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant:latest./scripts/setup_qdrant.sh - 克隆仓库:
git clone https://github.com/arkCyber/MCP-ChatBot.git cd MCP-ChatBot - 构建项目:
这将编译项目可执行文件。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' 服务器的沙箱根目录等参数。
基本使用方法
- 配置环境变量: 在项目根目录创建 '.env' 文件,配置 LLM API 密钥(例如 'OPENAI_API_KEY=your_openai_key' 或 'LLM_API_KEY=your_ollama_key')。
- 启动服务: 如果使用 Ollama 或 Qdrant,请确保它们的服务已启动。
- 运行应用:
应用程序将启动一个交互式命令行界面。cargo run --release - 交互:
- 直接输入文字与 LLM 聊天。
- 输入 '/' 开头的命令使用内置功能 (例如 '/help' 查看命令列表,'/tools' 查看可用工具,'/rag-add' 添加 RAG 文档,'/voice' 开始语音输入)。
- 程序会自动检测 LLM 的回复是否为工具调用格式('{"tool": "...", "arguments": {...}}'),并根据配置进行处理或提示。
关键词
AI应用框架, 工具集成, 检索增强生成, 聊天机器人
信息
分类
开发者工具