关于 Weather Forecast Tool
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
天气预报工具
描述
这段 Python 代码使用 MET Norway API,为指定地点获取并汇总天气预报。它使用 FastMCP 框架注册工具,并使用 httpx 发起异步 HTTP 请求。
功能
-
天气预报:
get_weather函数根据指定的纬度和经度获取天气预报数据。 -
每日摘要:
summarize_daily_timeseries_most_occurrences函数处理原始预报数据,生成简洁的每日摘要,包括:- 夜间、早晨、下午和晚间出现频率最高的天气符号。
- 当天的最低和最高气温。
- 预报将以当地时间返回。
-
HTTP 请求:
make_net_request函数负责向 MET Norway API 发起异步 HTTP 请求。 -
天气符号映射:
map_weather_symbol函数将 API 中的天气符号代码转换为易于理解的描述。
依赖项
- Python 3.13+
collectionsdatetimetypingasynciojsonhttpxmcp.server.fastmcp
设置
- 安装依赖项:
根据需要安装 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(): weather_data = await get_weather(55.6761, 12.5683) # Example: Copenhagen, Denmark print(weather_data) if __name__ == "__main__": asyncio.run(main())将
55.6761和12.5683替换为所需地点的纬度和经度。
工具定义
* get_weather(latitude: float, longitude: float) -> str
* 获取并格式化指定地点的天气预报。
* 参数:
* latitude(float):地点的纬度。
* longitude(float):地点的经度。
* 返回值:
* str:包含每日天气预报的格式化字符串。
MCP
代码使用 FastMCP 框架。有关如何设置和运行服务的详细信息,请参阅 FastMCP 文档。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。