使用说明

项目简介

本项目 'Korea Weather MCP Server' 是一个基于 Model Context Protocol (MCP) 构建的服务器应用,旨在为大型语言模型 (LLM) 客户端提供韩国地区的天气信息服务。它利用韩国气象厅的API,将实况天气和天气预报数据以结构化的方式通过MCP协议提供给客户端,使得LLM能够方便地获取和利用最新的天气信息。

主要功能点

  • 实时天气查询: 提供指定经纬度位置的当前实时天气信息,包括温度、降雨量、湿度和风速等。
  • 超短期天气预报: 提供未来6小时内,精细到每小时的天气预报信息,包括温度、降水形态、降水量、湿度、天空状态、风速、风向和雷电信息等。
  • 短期天气预报: 提供未来3-5天的中期天气预报,包含每日最高/最低气温以及分时段的天气状况,例如降水概率、降水形态、降水量、积雪量、天空状态、湿度、风速和风向等。
  • MCP协议标准: 严格遵循MCP协议,易于与任何兼容MCP协议的客户端集成。
  • 工具化接口: 通过MCP工具 (Tools) 的形式暴露天气查询功能,方便LLM客户端调用。

安装步骤

  1. 获取API密钥: 访问 data.go.kr 网站,申请开通 “기상청 단기예보 조회서비스” (气象厅短期预报查询服务) API,获取API密钥 (API Key)。
  2. 配置环境变量:
    • 在项目根目录下创建 '.env' 文件(如果不存在)。
    • 在 '.env' 文件中添加以下内容,将您获取的API密钥填入 'YOUR_API_KEY' 的位置:
      KOREA_WEATHER_API_KEY=YOUR_API_KEY
      或者,您也可以直接将 'KOREA_WEATHER_API_KEY' 设置为系统的环境变量。
  3. 安装依赖: 确保您的Python环境满足要求 (Python 3.x)。根据 'README.md' 和 'pyproject.toml' 文件的指示,安装项目所需的Python依赖包。通常可以使用 pip 或 poetry 等工具进行安装。例如,如果使用 pip,可以执行:
    pip install requests python-dotenv httpx
    (请根据 'pyproject.toml' 文件中的具体依赖列表进行安装)

服务器配置

MCP客户端需要配置以下JSON格式信息以连接到 'Korea Weather MCP Server':

{
  "serverName": "korea_weather",
  "command": "python",
  "args": ["korea_weather.py"]
}

参数说明:

  • 'serverName': 服务器名称,必须与 'korea_weather.py' 中 'FastMCP("korea_weather")' 初始化的名称一致,此处为 '"korea_weather"'。
  • 'command': 启动服务器的命令,通常为 'python' (假设您的Python环境已配置到系统路径)。
  • 'args': 启动命令的参数,此处为服务器脚本的文件名 '["korea_weather.py"]'。

环境变量:

  • 确保 'KOREA_WEATHER_API_KEY' 环境变量已正确配置,MCP服务器启动时会读取此环境变量以访问气象厅API。

基本使用方法

  1. 启动MCP服务器: 在安装配置完成后,在项目根目录下运行以下命令启动 'Korea Weather MCP Server':

    python korea_weather.py

    服务器将通过标准输入输出 (stdio) 与MCP客户端进行通信。

  2. 客户端调用工具: 在兼容MCP协议的LLM客户端中,配置好上述服务器连接信息后,即可使用以下工具 (Tools) 查询天气信息:

    • 'get_nowcast_observation(lon: float, lat: float)': 获取指定经纬度的实时天气观测信息。

      • 'lon': 经度 (浮点数)
      • 'lat': 纬度 (浮点数)
    • 'get_short_term_forecast(lon: float, lat: float)': 获取指定经纬度的短期天气预报信息 (3-5天)。

      • 'lon': 经度 (浮点数)
      • 'lat': 纬度 (浮点数)
    • 'get_nowcast_forecast(lon: float, lat: float)': 获取指定经纬度的超短期天气预报信息 (未来6小时)。

      • 'lon': 经度 (浮点数)
      • 'lat': 纬度 (浮点数)

    客户端可以通过MCP协议发送JSON-RPC请求调用这些工具,并接收JSON-RPC响应,响应内容为包含天气信息的字符串。 请注意,经纬度参数需要以浮点数形式提供。

示例场景: 用户在LLM客户端中提问 "首尔现在天气怎么样?",客户端可以通过地理编码服务获取首尔的经纬度坐标,然后调用 'get_nowcast_observation' 工具,并将返回的天气信息整合到LLM的回复中。

信息

分类

网页与API