使用说明
项目简介
本项目 'MCP Beginner Weather Service' 是一个基于 Model Context Protocol (MCP) 框架构建的简单天气服务后端。它利用美国国家气象局 (NWS) 的 API,为用户提供指定州的天气警报以及指定经纬度的天气预报。该服务通过 MCP 协议将天气数据作为资源和工具提供给支持 MCP 协议的客户端(如大型语言模型应用),使得 LLM 应用能够方便地获取最新的天气信息。
主要功能点
- 获取天气警报 (get_alerts): 根据美国州份代码(例如 "CA", "NY")查询当前生效的天气警报信息。返回指定州份的详细警报列表,包括事件类型、影响区域、严重程度、描述和指令。
- 获取天气预报 (get_forecast): 根据经纬度坐标查询未来几天的天气预报。返回指定位置未来5个时段的详细天气预报,包括温度、风速风向和详细预报描述。
安装步骤
- 确保 Python 版本: 请确保您的计算机上已安装 Python 3.11 或更高版本。
- 导航到 'weather' 目录: 打开终端或命令提示符,进入 'mcp-beginner' 仓库的 'weather' 目录。
cd weather - 创建并激活虚拟环境: 为了隔离项目依赖,建议创建并激活 Python 虚拟环境。
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows - 安装依赖: 使用 pip 安装项目依赖。
pip install -e .
服务器配置
为了让 MCP 客户端连接到 'MCP Beginner Weather Service',您需要提供以下服务器配置信息。这些信息通常配置在 MCP 客户端的服务器列表中。
{ "servers": [ { "name": "weather-service", "command": "python", "args": ["weather.py"], "cwd": "./weather" // (可选) 如果客户端启动目录与weather.py不在同一级,需要指定cwd } ] }
配置参数说明:
- name: 'weather-service' - 服务器的名称,客户端用此名称来标识和调用该服务。您可以自定义名称。
- command: '"python"' - 启动服务器的命令,这里使用 Python 解释器来运行 'weather.py' 文件。
- args: '["weather.py"]' - 传递给 'python' 命令的参数,指定要运行的服务器代码文件为 'weather.py'。
- cwd: '"./weather"' (可选) - 指定工作目录为 'weather' 目录。如果客户端启动时的工作目录与 'weather.py' 文件所在的目录不同,则需要设置 'cwd' 以确保程序能正确找到和运行 'weather.py'。如果客户端的当前工作目录就是 'mcp-beginner' 仓库的根目录,并且客户端能够正确地从根目录访问到 'weather/weather.py',则可以省略 'cwd' 或设置为 '"weather"'。为了更通用,推荐使用 '"./weather"'。
注意: 请确保 MCP 客户端能够找到 'python' 命令,并且 Python 环境中已安装了项目依赖。
基本使用方法
启动 MCP 客户端后,客户端会根据配置连接到 'MCP Beginner Weather Service'。您可以通过客户端的功能调用以下工具:
- 'weather/get_alerts': 获取天气警报。客户端需要提供州份代码作为参数。例如,要获取加州的天气警报,可以调用 'weather/get_alerts' 工具,并传入参数 '{"state": "CA"}'。
- 'weather/get_forecast': 获取天气预报。客户端需要提供经度和纬度作为参数。例如,要获取旧金山的天气预报,可以调用 'weather/get_forecast' 工具,并传入参数 '{"latitude": 37.7749, "longitude": -122.4194}'。
客户端会向 'MCP Beginner Weather Service' 发送符合 MCP 协议的 JSON-RPC 请求,服务器处理请求后,会将天气数据以 JSON-RPC 响应的形式返回给客户端。客户端根据响应内容进行后续处理,例如展示给用户或供 LLM 使用。
信息
分类
网页与API