这是一个使用多平台通信协议(MCP)构建的韩国天气服务器。它允许通过KMA(韩国气象厅)的公开数据接口查询实时天气和超短期天气预报,为用户提供便捷的天气查询服务。
from server import start_server
if __name__ == "__main__":
start_server()
git clone https://github.com/yourusername/py-mcp-ko-weather.git
cd py-mcp-ko-weather
pip install -r requirements.txt
# 获取网格坐标
location = get_grid_location("서울특별시", "서초구", "양재1동")
print(location)
# 输出:{'nx': 61, 'ny': 125}
# 获取天气预报
forecast = get_forecast("서울특별시", "서초구", "양재1동", 61, 125)
print(forecast)
# 可以根据实际需求,在获取网格坐标和天气预报的基础上,进行更多的处理和分析。
# 例如,将获取到的天气预报信息存储到文件中,或者进行可视化展示。
def get_grid_location(city: str, gu: str, dong: str) -> dict:
"""
通过指定的行政区域信息获取对应的气象局网格坐标。
Args:
city (str): 市/省名称
gu (str): 区/县名称
dong (str): 街道/镇名称
Returns:
dict: 包含nx和ny坐标的字典,如果未找到则返回空字典
"""
def get_forecast(city: str, gu: str, dong: str, nx: int, ny: int) -> str:
"""
调用KMA的超短期天气预报API。
Args:
city (str): 市/省名称
gu (str): 区/县名称
dong (str): 街道/镇名称
nx (int): 横坐标
ny (int): 纵坐标
Returns:
str: 天气预报的结构化文本信息
"""
天气预报以结构化的文本形式返回,便于LLM处理:
天气预报为: 서울특별시 서초구 양재1동 (坐标: nx=61, ny=125)
日期: 2025-05-01
时间: 15:00
当前状况:
温度: 22.3°C
天空状况: 大部晴朗
降水类型: 无
降水概率: 0%
湿度: 45%
风向: 西北
风速: 2.3 m/s
逐小时预报:
16:00 - 温度: 21.8°C, 天空: 晴朗, 降水: 无
17:00 - 温度: 20.5°C, 天空: 晴朗, 降水: 无
18:00 - 温度: 19.2°C, 天空: 晴朗, 降水: 无
...
本项目采用 MIT 许可证,具体内容请参阅 LICENSE 文件。