内容
# MCP 聊天机器人与多服务器集成




一款由 **模型上下文协议(MCP)** 驱动的交互式聊天机器人,它集成了多个专门的服务器以增强功能。该聊天机器人基于 LangChain、Groq LLM 和 MCP Agent 构建,具备工具调用能力,支持会话式人工智能。
## 功能
- 🤖 **会话式人工智能**,支持记忆功能的聊天历史记录
- 🔧 **多工具集成**,通过 MCP 服务器:
- **Playwright**:浏览器自动化和网页交互
- **Airbnb**:搜索和获取住宿列表
- **DuckDuckGo 搜索**:网页搜索功能
- 📝 **日志记录**:全面的调试和监控日志记录
- 💬 **交互式命令行界面**:简单的命令行界面,支持会话管理
- 🧠 **记忆**:会话内的持久化对话历史记录
## 前置条件
- Python 3.11+
- Node.js 和 npm(用于 MCP 服务器依赖项)
- Groq API 密钥
## 安装
1. **克隆仓库**:
```bash
git clone <仓库地址>
cd chatbot_model_context_protocol
```
2. **安装依赖项**:
```bash
pip install -r requirements.txt
# 或使用 uv
uv sync
```
3. **设置环境变量**:
在项目根目录创建 `.env` 文件:
```env
GROQ_API_KEY=您的_groq_api_key_此处
```
## 配置
### MCP 服务器
聊天机器人使用 `mcp_servers.json` 中定义的三个 MCP 服务器:
- **Playwright**:用于网页抓取和交互的浏览器自动化
- **Airbnb**:搜索具有筛选功能的住宿
- **DuckDuckGo 搜索**:通用网页搜索功能
您可以根据需要修改 `mcp_servers.json` 以添加或删除服务器。
### 日志记录
日志保存到 `logs/mcpchatbot.log`。可以在 `logger.py` 中调整日志记录配置。
## 使用
运行聊天机器人:
```bash
python app.py
```
### 命令
- **输入查询**:提问或给出指令
- **`clear` 或 `cls`**:清除对话历史记录
- **`exit`、`quit` 或 `q`**:退出聊天机器人
### 示例查询
```
您:搜索 2026 年 3 月 1 日在纽约的酒店
您:查找有关埃菲尔铁塔的信息
您:打开浏览器并导航到 example.com
```
## 项目结构
```
chatbot_model_context_protocol/
├── app.py # 主要聊天机器人应用程序
├── logger.py # 日志记录配置
├── mcp_servers.json # MCP 服务器定义
├── .env # 环境变量(不在 git 中)
├── requirements.txt # Python 依赖项
├── pyproject.toml # 项目元数据
├── uv.lock # 依赖项锁定文件
└── logs/ # 日志文件(不在 git 中)
```
## 依赖项
- `langchain-groq`:Groq LLM 集成
- `mcp-use`:MCP 代理和客户端
- `python-dotenv`:环境变量管理
- `asyncio`:异步执行
## 许可证
MIT
## 贡献
欢迎贡献!请提出问题或提交拉取请求。