天气服务服务器

一个基于Python的MCP服务器,提供美国各州的实时天气警报和预报,可通过自然语言交互与AI助手集成。

  • by hanktchen18
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hanktchen18/mcp_weather_server_demo

使用说明

MCP天气服务器演示

这是一个 模型上下文协议(MCP)服务器 应用程序。

基于Python的MCP服务器,使用美国国家气象局API为美国各州提供实时天气警报和预报。该服务器可以与Claude(通过Claude Desktop)或Cursor IDE等人工智能助手集成,使他们能够通过自然语言交互访问和提供天气信息。

需求

  • Python 3.12或更高版本
  • 紫外线 包管理器(推荐)或pip
  • (可选)用于交互式聊天客户端的OpenAI API密钥

安装

将此存储库克隆到您的计算机:

git clone https://github.com/yourusername/mcp_server.git
cd mcp_server

使用uv安装依赖项:

uv sync

或者使用pip:

pip install -r requirements.txt

如何使用

运行MCP服务器

服务器可以在两种模式下运行:

1.标准I/O模式(用于Claude Desktop集成)

uv run mcp run server/weather.py

2.SSE(服务器发送事件)模式(用于web集成)

uv run python mcpserver/server.py

与Claude Desktop一起使用

  1. 安装Claude Desktop(如果尚未安装)

  2. 通过编辑MCP配置文件配置Claude Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 视窗: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  3. 添加服务器配置:

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "/path/to/server/weather.py"
      ]
    }
  }
}

与Cursor IDE一起使用

服务器已在中配置 ~/.cursor/mcp.json.配置后重新启动Cursor。

交互式聊天客户端

运行交互式聊天客户端测试服务器:

uv run python server/client.py

确保创建一个 .env 使用您的OpenAI API密钥文件:

OPENAI_API_KEY=your_api_key_here

系统将打开一个交互式界面,您可以在其中:

  • 询问有关美国任何州的天气警报的问题
  • 获取特定地点的天气预报
  • 使用上下文记忆进行自然语言对话

特性

  • 实时天气警报 -获取美国任何州的活跃天气警报
  • 天气预报 -按纬度/经度检索详细预报
  • MCP协议支持 -完整模型上下文协议实现
  • 交互式聊天客户端 -使用对话界面测试服务器
  • 支持内存的对话 -聊天客户端维护对话上下文
  • 多种运输方式 -支持stdio和SSE传输
  • Docker支持 -容器化部署选项

可用工具

get_alerts(state: str)

获取美国某个州的天气警报。

  • 参数:
    • state:两个字母的美国州代码(例如,“CA”、“NY”、“TX”)
  • 退货:格式化的天气警报,包括事件类型、严重程度、描述和时间信息

get_forecast(latitude: float, longitude: float)

获取特定位置的天气预报。

  • 参数:
    • latitude:纬度坐标
    • longitude:经度坐标
  • 退货:详细预报,包括温度、风况和未来5个时期的详细预报

我学到了什么

  • 实现模型上下文协议(MCP)服务器
  • 使用异步Python构建基于FastMCP的服务器
  • 集成外部API(国家气象局)
  • 使用LangChain创建交互式聊天界面
  • 在人工智能应用程序中管理对话记忆
  • MCP服务器的Docker容器化
  • 为不同的AI平台配置MCP服务器