本工具是一个 Python 代码项目,借助 MET Norway API 获取并总结指定位置的天气预报。它采用 FastMCP 框架进行工具注册,运用 httpx 开展异步 HTTP 请求,为用户提供精准、便捷的天气预报服务。
此天气预报工具使用 Python 编写,借助 FastMCP 框架和 httpx 库实现功能。以下为快速上手步骤:
FastMCP 服务器。get_weather 函数获取天气预报。get_weather 函数可根据指定的纬度和经度,从 MET Norway API 中获取天气预报数据。summarize_daily_timeseries_most_occurrences 函数对原始预报数据进行处理,生成简洁的每日天气总结,涵盖夜晚、早晨、下午和傍晚最频繁出现的天气符号,以及当天的最低和最高温度,且预报以本地时间返回。make_net_request 函数负责对 MET Norway API 进行异步 HTTP 请求,提高数据获取效率。map_weather_symbol 函数将 API 中的天气符号代码转换为易于理解的描述。需安装 MCP 及其他所需依赖项(参见 MCP 文档)。
使用该工具前,需指定位置的纬度和经度。
导入必要的模块并初始化 FastMCP 服务器:
from collections import Counter
from datetime import datetime, timezone, timedelta
from mcp.server.fastmcp import FastMCP
from typing import Any
import asyncio
import json
import httpx
mcp = FastMCP("weather")
使用 get_weather 工具获取指定位置的天气预报:
async def main():
天气数据 = await get_weather(55.6761, 12.5683) # 示例:丹麦哥本哈根
print(天气数据)
if __name__ == "__main__":
asyncio.run(main())
将 55.6761 和 12.5683 替换为您所需的纬度和经度。
get_weather(纬度: float, 经度: float) -> str
纬度 (float):位置的纬度。经度 (float):位置的经度。该代码使用 FastMCP 框架。请参阅 FastMCP 文档以了解如何设置和运行服务器。
本项目采用 MIT License。