Mcp Server Weather Forecast

Mcp Server Weather Forecast

🚀 天气预报工具

本工具是一个 Python 代码项目,借助 MET Norway API 获取并总结指定位置的天气预报。它采用 FastMCP 框架进行工具注册,运用 httpx 开展异步 HTTP 请求,为用户提供精准、便捷的天气预报服务。

🚀 快速开始

此天气预报工具使用 Python 编写,借助 FastMCP 框架和 httpx 库实现功能。以下为快速上手步骤:

  1. 安装必要依赖(Python 3.13+)。
  2. 获取所需位置的经纬度。
  3. 导入必要模块并初始化 FastMCP 服务器。
  4. 调用 get_weather 函数获取天气预报。

✨ 主要特性

  • 天气预报获取get_weather 函数可根据指定的纬度和经度,从 MET Norway API 中获取天气预报数据。
  • 每日天气总结summarize_daily_timeseries_most_occurrences 函数对原始预报数据进行处理,生成简洁的每日天气总结,涵盖夜晚、早晨、下午和傍晚最频繁出现的天气符号,以及当天的最低和最高温度,且预报以本地时间返回。
  • 异步 HTTP 请求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.676112.5683 替换为您所需的纬度和经度。

📚 详细文档

工具定义

  • get_weather(纬度: float, 经度: float) -> str
    • 功能:获取并格式化指定位置的天气预报。
    • 参数
      • 纬度 (float):位置的纬度。
      • 经度 (float):位置的经度。
    • 返回:包含每日天气预报的格式化字符串。

MCP 相关

该代码使用 FastMCP 框架。请参阅 FastMCP 文档以了解如何设置和运行服务器。

📄 许可证

本项目采用 MIT License

  • 0 关注
  • 0 收藏,22 浏览
  • system 提出于 2025-10-01 14:09

相似服务问题

相关AI产品