关于 MCP-ChatBot
MCP-ChatBot 是面向 MCP LLM 应用探索者的容器化天气聊天示例。它将 Streamlit 界面、FastMCP 天气服务和 GPT-4o 组合在一起,并支持扩展服务器。
主要功能
- 01Streamlit 聊天界面
- 02自然语言天气查询
- 03WeatherAPI 数据获取
- 04客户端与服务端分容器
- 05可扩展的 MCP 服务配置
适用场景
- 01按城市查询当前天气
- 02探索容器化 MCP 聊天机器人
- 03在示例中添加服务后端
MCP 相关
FastMCP 服务通过 MCP 向 Streamlit 客户端提供天气数据查询。该示例支持接入更多 MCP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP-ChatBot
一款功能多样的聊天机器人应用,使用 MCP(模块化能力协议)与多个服务后端交互。
概述
MCP-ChatBot 是一个容器化应用,演示如何使用模块化能力协议(MCP)实现大模型与外部服务交互。此实现包含一个天气服务后端和一个基于 Streamlit 的前端,用户可以通过自然语言查询天气信息。
功能
- 容器化架构:为 MCP 服务和客户端应用分别设置容器
- 天气服务集成:使用 WeatherAPI 获取实时天气数据
- Streamlit UI:简洁、响应式的用户界面,可用于与聊天机器人交互
- 可扩展设计:可随时添加更多 MCP 服务以扩展功能
- GPT-4o 集成:由 OpenAI 的 GPT-4o 模型驱动,实现自然语言理解
架构
应用由两个主要组件构成:
- MCP 服务:基于 FastMCP 的服务,负责获取天气数据
- Streamlit 客户端:用于与聊天机器人交互的 Web UI
入门指南
先决条件
- Docker 和 Docker Compose
- WeatherAPI 密钥(在 WeatherAPI 注册)
- OpenAI API 密钥(在 OpenAI 注册)
安装
- 克隆代码仓库:
git clone https://github.com/yourusername/MCP-ChatBot.git
cd MCP-ChatBot
- 根据示例创建
.env文件:
cp .env.example .env
- 编辑
.env文件并添加 API 密钥:
PYTHONUNBUFFERED=1
OPENAI_API_KEY=your_openai_api_key_here
WEATHER_API_KEY=your_weather_api_key_here
- 使用 Docker Compose 启动应用:
docker-compose up --build
- 访问 Streamlit UI:
http://localhost:8501
使用
应用运行后,可以通过 Streamlit 界面与聊天机器人交互:
- 在文本输入框中输入有关天气的自然语言问题
- 示例:
- “纽约的天气怎么样?”
- “东京现在有多热?”
- “告诉我伦敦的天气情况”
扩展应用
添加新的 MCP 服务
- 在
servers目录中创建新的服务文件 - 将新服务添加到
docker-compose.yml文件中 - 更新 client.py,将新服务添加到 Agent 配置中
在 client.py 中添加新服务的示例:
server_1 = MCPServerHTTP(url="http://mcp_server:8001/sse")
server_2 = MCPServerHTTP(url="http://new_server:8002/sse") # New server
return Agent("openai:gpt-4o", mcp_servers=[server_1, server_2])
开发
项目结构
MCP-ChatBot/
├── .env.example # Example environment variables
├── .gitignore # Git ignore file
├── client.py # Streamlit client application
├── docker-compose.yml # Docker Compose configuration
├── Dockerfile.client # Dockerfile for Streamlit client
├── Dockerfile.server # Dockerfile for MCP server
├── LICENSE # MIT license
├── README.md # Project documentation
└── servers/ # MCP server implementations
└── server.py # Weather service implementation
技术栈
- FastMCP:用于创建 MCP 服务的框架
- Streamlit:用于构建 UI 的 Web 框架
- Pydantic-AI:用于大模型交互的 Agent 系统
- Docker:容器化平台
- OpenAI GPT-4o:用于自然语言处理的大模型
故障排除
常见问题
-
连接失败:确保所有服务都已启动并正在运行。客户端带有重试机制;如果仍然失败,请重启应用。
-
API 密钥错误:确认已在
.env文件中添加有效的 API 密钥。 -
Docker 网络问题:如果容器无法通信,请检查 Docker 网络配置,并确保代码中的服务名称一致。
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
致谢
- 感谢 FastMCP 提供 MCP 服务实现
- 感谢 Streamlit 提供前端框架
- 感谢 WeatherAPI 提供天气数据
作者:Murali Anand © 2025
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。