mcpField
M
MCP-ChatBot

MCP-ChatBot

本地服务
github.com/muralianand12345AI 与智能体581 周前更新

关于 MCP-ChatBot

MCP-ChatBot 是面向 MCP LLM 应用探索者的容器化天气聊天示例。它将 Streamlit 界面、FastMCP 天气服务和 GPT-4o 组合在一起,并支持扩展服务器。

主要功能

  1. 01Streamlit 聊天界面
  2. 02自然语言天气查询
  3. 03WeatherAPI 数据获取
  4. 04客户端与服务端分容器
  5. 05可扩展的 MCP 服务配置

适用场景

  1. 01按城市查询当前天气
  2. 02探索容器化 MCP 聊天机器人
  3. 03在示例中添加服务后端

MCP 相关

FastMCP 服务通过 MCP 向 Streamlit 客户端提供天气数据查询。该示例支持接入更多 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-ChatBot

一款功能多样的聊天机器人应用,使用 MCP(模块化能力协议)与多个服务后端交互。

MCP 聊天机器人 许可证 Python Docker

概述

MCP-ChatBot 是一个容器化应用,演示如何使用模块化能力协议(MCP)实现大模型与外部服务交互。此实现包含一个天气服务后端和一个基于 Streamlit 的前端,用户可以通过自然语言查询天气信息。

功能

  • 容器化架构:为 MCP 服务和客户端应用分别设置容器
  • 天气服务集成:使用 WeatherAPI 获取实时天气数据
  • Streamlit UI:简洁、响应式的用户界面,可用于与聊天机器人交互
  • 可扩展设计:可随时添加更多 MCP 服务以扩展功能
  • GPT-4o 集成:由 OpenAI 的 GPT-4o 模型驱动,实现自然语言理解

架构

应用由两个主要组件构成:

  1. MCP 服务:基于 FastMCP 的服务,负责获取天气数据
  2. Streamlit 客户端:用于与聊天机器人交互的 Web UI

入门指南

先决条件
  • Docker 和 Docker Compose
  • WeatherAPI 密钥(在 WeatherAPI 注册)
  • OpenAI API 密钥(在 OpenAI 注册)
安装
  1. 克隆代码仓库:
git clone https://github.com/yourusername/MCP-ChatBot.git
cd MCP-ChatBot
  1. 根据示例创建 .env 文件:
cp .env.example .env
  1. 编辑 .env 文件并添加 API 密钥:
PYTHONUNBUFFERED=1
OPENAI_API_KEY=your_openai_api_key_here
WEATHER_API_KEY=your_weather_api_key_here
  1. 使用 Docker Compose 启动应用:
docker-compose up --build
  1. 访问 Streamlit UI:http://localhost:8501

使用

应用运行后,可以通过 Streamlit 界面与聊天机器人交互:

  1. 在文本输入框中输入有关天气的自然语言问题
  2. 示例:
    • “纽约的天气怎么样?”
    • “东京现在有多热?”
    • “告诉我伦敦的天气情况”

扩展应用

添加新的 MCP 服务
  1. 在 servers 目录中创建新的服务文件
  2. 将新服务添加到 docker-compose.yml 文件中
  3. 更新 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:用于自然语言处理的大模型

故障排除

常见问题
  1. 连接失败:确保所有服务都已启动并正在运行。客户端带有重试机制;如果仍然失败,请重启应用。

  2. API 密钥错误:确认已在 .env 文件中添加有效的 API 密钥。

  3. Docker 网络问题:如果容器无法通信,请检查 Docker 网络配置,并确保代码中的服务名称一致。

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

致谢


作者:Murali Anand © 2025

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。