MyDemo-交互式MCP聊天代理
由LangChain、Groq LLM和模型上下文协议(MCP)服务器提供支持的交互式聊天应用程序。该项目演示了如何构建一个具有对话记忆的AI代理,该代理可以与多个MCP服务器进行交互,以实现网页浏览、搜索和其他功能。
特性
- 🤖 交互式聊天界面:带对话记忆的命令行聊天界面
- 🧠 对话记忆:内置存储系统,可在对话中保持上下文
- 🌐 MCP服务器集成:连接到多个MCP服务器以扩展功能:
- 剧作家:浏览器自动化和网络交互 - Airbnb:搜索和浏览Airbnb房源 - DuckDuckGo搜索:Web搜索功能
- 🔄 异步支持:完全异步实现以获得更好的性能
- ⚙️ 可配置的:通过JSON文件轻松配置
先决条件
- Python 3.11或更高版本
- Node.js和npm(用于MCP服务器)
- Groq API密钥(在这里买一个)
安装
1.克隆存储库
git clone
cd mydemo2.安装Python依赖项
使用 uv (推荐):
uv sync或使用 pip:
pip install -r requirements.txt3.安装Node.js依赖项
npm install4.设置环境变量
创建 .env 项目根目录中的文件:
GROQ_API_KEY=your_groq_api_key_here配置
该项目使用 browser_mcp.json 配置MCP服务器。默认配置包括:
- 剧作家MCP服务器:用于浏览器自动化
- Airbnb MCP服务器:Airbnb搜索功能
- DuckDuckGo搜索MCP服务器:用于网络搜索(有速率限制)
您可以修改 browser_mcp.json 根据需要添加或删除MCP服务器。
用法
运行应用程序
python app.py交互式命令
应用程序启动后,您可以:
- 正常聊天:键入您的信息,然后按Enter键
- 清除历史记录:类型
clear清除对话历史记录 - 退出:类型
exit或quit结束对话
交互示例
You: Search for hotels in Paris on Airbnb
Assistant: [Agent searches Airbnb and provides results]
You: What's the weather like today?
Assistant: [Agent uses browser to check weather]
You: Search for latest Python news
Assistant: [Agent uses DuckDuckGo to search and summarize results]MCP服务器
此项目与以下MCP服务器集成:
- @剧作家/mcp:浏览器自动化和网页抓取
- @openbnb/mcp服务器airbnb:Airbnb房源搜索和详细信息
- duckduckgo mcp服务器:Web搜索功能
依赖项
Python依赖关系
langchain-groq>=1.1.0:LangChain的Groq LLM整合langchain-openai>=1.1.0:OpenAI集成(如果需要)mcp-use>=1.5.0:MCP客户端和代理实用程序python-dotenv:环境变量管理
Node.js依赖关系
@playwright/mcp:剧作家MCP服务器@openbnb/mcp-server-airbnb:Airbnb MCP服务器duckduckgo-mcp-server:DuckDuckGo搜索MCP服务器playwright:浏览器自动化库
运作原理
- 初始化:应用程序加载环境变量和MCP服务器配置
- MCP客户端:创建连接到已配置服务器的MCP客户端
- 代理创建:使用以下命令初始化MCPAgent:
- Groq LLM(qwen/qwen3-32b型号) - 用于工具访问的MCP客户端 - 对话记忆已启用
- 交互式循环:使用可用的MCP工具处理用户输入并生成响应
- 内存管理:自动维护交互中的对话上下文
故障排除
常见问题
- MCP服务器连接错误
- 确保已安装Node.js依赖项: npm install - 检查MCP服务器是否在中正确配置 browser_mcp.json
- API密钥错误
- 验证您的 .env 文件存在并包含 GROQ_API_KEY - 确保API密钥有效并且具有足够的信用
- 导入错误
- 确保所有Python依赖项都已安装: uv sync 或 pip install -r requirements.txt
