使用说明

项目简介

MCP-ChatBot 是一个演示 MCP 服务器和客户端如何协同工作的示例项目。它包含一个基于 FastMCP 框架实现的天气服务 MCP 服务器,以及一个使用 Streamlit 构建的 Web 客户端。用户可以通过友好的 Web 界面,使用自然语言查询天气信息,后端通过 MCP 服务器调用天气服务工具获取数据,并返回给用户。

主要功能点

  • MCP 服务器功能: 实现了 MCP 协议,提供工具注册和执行能力,当前集成了一个天气查询工具。
  • 天气服务集成: 通过 WeatherAPI 获取实时天气数据,支持全球城市的天气查询。
  • 自然语言交互: 用户可以使用自然语言提问,例如 "今天北京天气怎么样?" 或 "纽约现在多少度?"。
  • Streamlit Web UI: 提供简洁易用的 Web 界面,方便用户与聊天机器人互动。
  • 容器化部署: 使用 Docker 和 Docker Compose 进行容器化部署,方便快捷地启动和运行应用。

安装步骤

  1. 克隆仓库

    git clone https://github.com/muralianand12345/MCP-ChatBot.git
    cd MCP-ChatBot
  2. 配置环境变量 复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入你的 OpenAI API Key 和 WeatherAPI Key。

    cp .env.example .env
    vim .env

    '.env' 文件内容示例:

    PYTHONUNBUFFERED=1
    OPENAI_API_KEY=your_openai_api_key_here
    WEATHER_API_KEY=your_weather_api_key_here

    注意: WeatherAPI Key 需要在 WeatherAPI官网 注册账号并获取。OpenAI API Key 需要在 OpenAI平台 获取。

  3. 启动应用 使用 Docker Compose 启动应用,首次启动会自动构建镜像。

    docker-compose up --build

    等待一段时间,直到所有服务启动完成。

  4. 访问 Web 界面 在浏览器中打开 'http://localhost:8501',即可访问 Streamlit 客户端界面。

服务器配置

MCP 客户端需要配置 MCP 服务器的连接信息。在本项目中,客户端代码 'client.py' 已经预配置了连接信息,无需手动修改。以下是客户端配置 MCP 服务器的关键信息,以 JSON 格式展示,供参考:

[
  {
    "server_name": "weather_server",  //  MCP 服务器名称,客户端代码中引用
    "command": "docker-compose up --build", //  启动 MCP 服务器的命令,这里使用 docker-compose 启动整个应用,实际部署时可能需要修改为更精细的服务器启动命令
    "args": [] //  启动命令的参数,本例中 docker-compose 不需要额外参数
  }
]

注意: 上述 'command' 和 'args' 是用于描述如何启动整个应用,以便 MCP 客户端能够连接到运行在 Docker 容器内的 MCP 服务器。 实际的 MCP 客户端只需要 MCP 服务器的 URL ('http://mcp_server:8001/sse') 即可连接,这些配置信息主要用于理解项目部署和运行方式。 用户无需手动配置这些 JSON 信息到 MCP 客户端中,因为 'client.py' 代码已经完成了配置。

基本使用方法

  1. 打开 Web 浏览器,访问 'http://localhost:8501'。
  2. 在输入框中输入自然语言天气查询语句,例如 "What's the weather like in London?" 或 "北京天气怎么样?"。
  3. 按下回车键或点击发送按钮,等待聊天机器人返回天气信息。
  4. 聊天机器人会调用天气服务工具查询天气,并将结果以自然语言形式展示在界面上。

扩展应用

该项目具有良好的可扩展性,可以方便地添加新的 MCP 服务器和工具,例如:

  1. 添加新的 MCP 服务器: 在 'servers/' 目录下创建新的服务器文件,实现新的工具功能。
  2. 修改 'docker-compose.yml': 在 'docker-compose.yml' 文件中添加新的服务器服务定义。
  3. 更新 'client.py': 在 'client.py' 中添加新的 'MCPServerHTTP' 或 'MCPServerStdio' 实例,并在 'Agent' 初始化时 включать 新的服务器实例。

通过以上步骤,可以轻松扩展 MCP-ChatBot 的功能,集成更多类型的服务和工具,满足不同的应用场景需求。

信息

分类

网页与API