项目简介
本项目是一个基于 Model Control Protocol (MCP) 实现的天气信息服务。它作为MCP服务器运行,为连接的LLM客户端提供访问天气数据的功能,具体包括查询美国各州的天气警报和通过经纬度获取天气预报。
本项目使用了 'FastMCP' 库来快速构建MCP服务器,并通过 SSE (Server-Sent Events) 协议进行通信。
主要功能点
- 天气警报查询: 能够根据用户指定的美国州代码(如 "CA", "NY")查询当前生效的天气警报信息。
- 天气预报查询: 能够根据用户提供的地理位置经度和纬度,获取该位置的详细天气预报。
这些功能以 MCP 工具的形式提供给LLM客户端调用。
安装步骤
- 克隆仓库: 打开终端,执行以下命令下载项目代码:
git clone https://github.com/haichaozheng/weather-mcp.git cd weather-mcp - 创建并激活虚拟环境: 为了隔离项目依赖,建议创建并使用Python虚拟环境。
# 创建虚拟环境 python -m venv weather_venv # 激活虚拟环境 (Windows) weather_venv\Scripts\activate # 激活虚拟环境 (Linux/Mac) source weather_venv/bin/activate - 安装依赖: 在激活的虚拟环境中,安装项目所需的库:
pip install -r requirements.txt - 配置环境变量: 项目需要一个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服务器所需的关键细节。
基本使用方法
-
启动Weather MCP服务器: 打开一个终端窗口,激活虚拟环境,并执行以下命令启动服务器:
python weather/weather.py服务器将启动并在 'http://localhost:8000' 监听连接,使用SSE协议。终端会显示服务器正在运行的提示信息。
-
运行客户端(可选,用于测试): 打开另一个终端窗口,激活同一个虚拟环境,并执行以下命令运行项目自带的客户端测试脚本:
python weather/mcp_client.py客户端将尝试连接到已启动的服务器,加载工具,并执行预定义的天气查询测试。这是一个演示MCP客户端如何与本服务器交互的示例。在实际应用中,您会将此服务器与您自己的LLM应用或框架集成。
信息
分类
网页与API