天气聊天机器人

MCP天气聊天机器人是一个生成式AI项目,通过MCP服务器提供实时天气数据和警报,支持SSE和stdio传输。

  • by Subitha-Murugesan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 subitha-murugesan/mcp-weather-chatbot

使用说明

MCP天气聊天机器人

MCP天气聊天机器人 是一个生成式人工智能项目,可实时公开 天气数据和警报 作为MCP(模型上下文协议)服务器。 它演示了如何构建可供不同客户端使用的MCP工具 SSE (服务器通过HTTP发送事件)和 标准输入输出 运输。

后端与 美国国家气象局(NWS)API 提供准确、结构化的天气警报和预报。


快速开始

克隆仓库并使用以下命令设置环境 紫外线:

# Initialize venv
uv venv
source .venv/bin/activate

# Install dependencies
uv add mcp httpx nest_asyncio

运行MCP天气服务器:

uv run server.py

运行客户端(stdio或SSE):

uv run client_stdio.py
# or
uv run client_sse.py

工作流概述

User -> Client (stdio / SSE) -> MCP Weather Server -> NWS API
  • 气象MCP服务器(server.py)

    • 工具:

      • get_alerts(state) → 获取美国特定州的天气警报
      • get_forecast(lat, lon) → 返回位置的详细预测
    • 支持 标准输入输出 和 SSE(HTTP) 运输

    • 在本地或Docker中运行

  • 客户

    • client_stdio.py → 通过以下方式连接 标准输入输出
    • client_sse.py → 通过以下方式连接 SSE (http://localhost:8000/sse)

用户体验

  1. 启动服务器:

    uv run server.py
    
  2. 运行SSE客户端:

    uv run client_sse.py
    
  1. 或者运行stdio客户端:

    uv run client_stdio.py
    
  2. 交互示例:

你:告诉我北卡罗来纳州的天气状况


使用Docker运行

构建并运行容器化服务器:

docker build -t mcp-weather .
docker run -p 8000:8000 mcp-weather

这将启动MCP天气服务器 SSE 启用并在上公开它 localhost:8000.


测试MCP气象服务器

您可以在中测试服务器 三种不同的方式:

MCP检查员

uv run mcp dev server/weather.py

克劳德桌面

安装MCP服务器:

uv run mcp install server/weather.py

光标IDE

  1. 打开 光标→ 设置→ MCP和集成
  2. 添加a 自定义MCP服务器
  3. 插入服务器配置(server/weather.py)
  4. Save → 直接在Cursor中与天气工具聊天