项目简介

本项目是一个基于 Model Control Protocol (MCP) 实现的天气信息服务。它作为MCP服务器运行,为连接的LLM客户端提供访问天气数据的功能,具体包括查询美国各州的天气警报和通过经纬度获取天气预报。

本项目使用了 'FastMCP' 库来快速构建MCP服务器,并通过 SSE (Server-Sent Events) 协议进行通信。

主要功能点

  • 天气警报查询: 能够根据用户指定的美国州代码(如 "CA", "NY")查询当前生效的天气警报信息。
  • 天气预报查询: 能够根据用户提供的地理位置经度和纬度,获取该位置的详细天气预报。

这些功能以 MCP 工具的形式提供给LLM客户端调用。

安装步骤

  1. 克隆仓库: 打开终端,执行以下命令下载项目代码:
    git clone https://github.com/haichaozheng/weather-mcp.git
    cd weather-mcp
  2. 创建并激活虚拟环境: 为了隔离项目依赖,建议创建并使用Python虚拟环境。
    # 创建虚拟环境
    python -m venv weather_venv
    
    # 激活虚拟环境 (Windows)
    weather_venv\Scripts\activate
    
    # 激活虚拟环境 (Linux/Mac)
    source weather_venv/bin/activate
  3. 安装依赖: 在激活的虚拟环境中,安装项目所需的库:
    pip install -r requirements.txt
  4. 配置环境变量: 项目需要一个API密钥来调用LLM(注意:API密钥是客户端 'mcp_client.py' 使用,不是MCP服务器本身必须的,但如果你要运行提供的客户端示例,就需要配置)。
    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 编辑 '.env' 文件,将 'MOONSHOT_API_KEY=your_actual_api_key' 中的 'your_actual_api_key' 替换为你实际的API密钥。

服务器配置

本项目实现的是一个MCP服务器。一个MCP客户端(如支持MCP协议的LLM应用或框架)需要知道如何连接到这个服务器并与其通信。连接通常通过一个JSON格式的配置进行,其中包含服务器的名称、启动命令、参数以及传输协议等信息。

对于本项目,MCP客户端需要配置以下信息:

  • 服务器名称: 'weather' (这是代码中 'FastMCP("weather")' 定义的名称)
  • 启动命令: 'python' (启动服务器的执行程序)
  • 启动参数: 'weather/weather.py' (作为参数传递给 'python' 命令,指向服务器主文件)
  • 传输协议/地址: 该服务器配置为使用 'sse' (Server-Sent Events) 协议,并在 'http://localhost:8000' 地址上监听连接。MCP客户端需要配置连接到这个地址使用SSE协议。

请注意,MCP客户端的具体配置方式取决于客户端的实现和框架。以上信息提供了连接到本Weather MCP服务器所需的关键细节。

基本使用方法

  1. 启动Weather MCP服务器: 打开一个终端窗口,激活虚拟环境,并执行以下命令启动服务器:

    python weather/weather.py

    服务器将启动并在 'http://localhost:8000' 监听连接,使用SSE协议。终端会显示服务器正在运行的提示信息。

  2. 运行客户端(可选,用于测试): 打开另一个终端窗口,激活同一个虚拟环境,并执行以下命令运行项目自带的客户端测试脚本:

    python weather/mcp_client.py

    客户端将尝试连接到已启动的服务器,加载工具,并执行预定义的天气查询测试。这是一个演示MCP客户端如何与本服务器交互的示例。在实际应用中,您会将此服务器与您自己的LLM应用或框架集成。

信息

分类

网页与API