返回 MCP 目录
public公开dns本地运行

weather-mcp-server-y38

一个基于NWS API的天气信息MCP服务,提供美国各州天气警报和特定位置天气预报功能。

article

README

🚀 天气 MCP 服务器

这是一个借助模型上下文协议(MCP)搭建的服务器,通过国家气象局(NWS)API 提供天气信息,能满足获取美国某州天气警报以及特定位置天气预报等需求。

✨ 主要特性

  • 获取美国某州的天气警报
  • 根据纬度和经度获取特定位置的天气预报

📦 安装指南

克隆仓库

克隆此仓库到本地。

设置虚拟环境

python -m venv .venv
source .venv/bin/activate  # 在 Windows 上,使用 `.venv\Scripts\activate`

安装所需包

使用 uv 安装所需的包:

uv add "mcp[cli]" httpx

📚 详细文档

配置说明

服务器使用配置文件 config.py,包含以下设置: | 属性 | 详情 | |------|------| | NWS_API_BASE | 国家气象局 API 的基础 URL | | USER_AGENT | 访问 NWS API 时使用的 User-Agent 字符串 | | LOG_LEVEL | 日志级别(例如,“INFO”,“DEBUG”) | | LOG_FORMAT | 日志消息的格式字符串 | | REQUEST_TIMEOUT | API 请求的超时时间(秒) |

您可以在 config.py 文件中修改这些设置以自定义服务器行为。

使用说明

作为独立服务器运行

要独立运行服务器,需按以下步骤操作:

  1. 如果尚未激活虚拟环境,请先激活:
source .venv/bin/activate  # 在 Windows 上,使用 `.venv\Scripts\activate`
  1. 运行服务器:
python weather.py

与 Cline 结合使用

天气 MCP 服务器已添加到 Cline 配置中。要在 Cline 中使用它:

  1. 确保 Cline 已正确设置并运行。
  2. 天气 MCP 服务器将作为工具“weather”可用。
  3. 您可以在 Cline 中使用以下工具:
    • get_alerts(state: str):获取美国某州的天气警报(使用两个字母的状态代码,例如“CA”表示加利福尼亚)
    • get_forecast(latitude: float, longitude: float):根据纬度和经度获取特定位置的天气预报

在 Cline 中使用的示例:

# 获取加利福尼亚州的警报
result = await mcp.call_tool("weather.get_alerts", state="CA")
print(result)

# 获取旧金山的预报(近似坐标)
result = await mcp.call_tool("weather.get_forecast", latitude=37.7749, longitude=-122.4194)
print(result)

⚠️ 重要提示

在 Cline 中调用 MCP 工具的具体语法可能会因您的 Cline 设置而有所不同。请参考 Cline 文档获取最新使用说明。

错误处理和日志记录

服务器改进了 API 请求的错误处理和日志记录功能。如果请求过程中发生错误,服务器会记录错误并返回适当的错误消息。日志将按配置的日志级别和格式输出到控制台。

测试说明

单元测试

要运行单元测试:

python -m unittest test_weather.py

这些测试涵盖了 get_alertsget_forecast 工具的基本功能。

手动测试

手动测试服务器时,您可以使用 MCP 客户端调用提供的工具。以下是一些示例命令:

# 获取加利福尼亚州的警报
result = await mcp.call_tool("weather.get_alerts", state="CA")
print(result)

# 获取旧金山的预报(近似坐标)
result = await mcp.call_tool("weather.get_forecast", latitude=37.7749, longitude=-122.4194)
print(result)

👥 贡献者

  • [您的姓名]
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端