天气数据服务

一个基于Model Context Protocol (MCP)的服务器,通过Server-Sent Events (SSE)连接到OpenWeatherMap API,为AI客户端提供实时天气数据。

  • by jdhettema
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jdhettema/mcp-weather-sse

使用说明

MCP天气SSE服务器

模型上下文协议(MCP)服务器,通过服务器事件(SSE)连接到OpenWeatherMap API。该服务器为Claude、CursorAI或MCP Inspector等AI客户端提供实时天气数据。

特性

  • 实现模型上下文协议,与人工智能工具无缝集成
  • 使用服务器发送事件(SSE)传输进行实时通信
  • 连接到OpenWeatherMap API以获取实时天气数据
  • 提供三个工具:
    • get_current_weather:获取城市的当前天气状况
    • get_weather_forecast:获取一个城市的多日天气预报
    • get_weather_by_coordinates:获取特定地理坐标的天气

先决条件

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/mcp-weather-sse.git
    cd mcp-weather-sse
    
  2. 创建虚拟环境并安装依赖项:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install mcp requests
    

用法

启动服务器

您可以使用OpenWeatherMap API密钥启动服务器:

# Using command line argument
python mcp_weather_sse.py --api-key YOUR_API_KEY

# Using environment variable
export OPENWEATHER_API_KEY=YOUR_API_KEY
python mcp_weather_sse.py

# Customize host and port (default: 127.0.0.1:3001)
python mcp_weather_sse.py --host 0.0.0.0 --port 8080

与MCP客户端连接

光标AI

  1. 打开光标AI
  2. 转到文件→ 偏好设置→ 光标设置→ MCP → 添加新服务器
  3. 输入以下详细信息:
    • 名称:天气SSE
    • 类型:sse
    • 网址:http://127.0.0.1:3001/sse

克劳德桌面

  1. 打开克劳德桌面
  2. 转到“设置”→ MCP服务器
  3. 添加具有以下配置的新服务器:
    {
      "mcpServers": {
        "weather": {
          "type": "sse",
          "url": "http://127.0.0.1:3001/sse"
        }
      }
    }
    

MCP检查员

您可以使用MCP检查器工具测试您的服务器:

npm install -g @anthropic-ai/mcp-inspector
mcp-inspector http://127.0.0.1:3001/sse

查询示例

连接后,您可以使用以下查询与服务器交互:

  1. “纽约现在的天气怎么样?”
  2. “你能给我东京三天的天气预报吗?”
  3. “坐标40.7128-74.0060处的天气怎么样?”

api参考

get_current_weather

获取城市的当前天气状况。

参数:

  • city (string):城市名称(例如,“伦敦”、“纽约”)
  • units (字符串,可选):计量单位(“公制”或“英制”,默认值:“公制”)

get_weather_forecast

获取一个城市的多日天气预报。

参数:

  • city (string):城市名称(例如,“伦敦”、“纽约”)
  • days (整数,可选):要预测的天数(1-5,默认值:3)
  • units (字符串,可选):计量单位(“公制”或“英制”,默认值:“公制”)

get_weather_by_coordinates

获取特定地理坐标的天气。

参数:

  • latitude (数字):纬度坐标
  • longitude (数字):经度坐标
  • units (字符串,可选):计量单位(“公制”或“英制”,默认值:“公制”)

安全考虑

  • 默认情况下,服务器绑定到127.0.0.1,使其只能从本地计算机访问
  • 对于生产使用,实施适当的身份验证和HTTPS
  • 考虑速率限制以避免超过OpenWeatherMap API配额

许可证

麻省理工学院

致谢