Token导航 LogoToken导航

MCP Server · 浏览器工具

Weather Forecast MCP Server

一个基于Model Context Protocol (MCP)的服务器,为AI应用提供实时天气预报数据访问,支持地理编码、天气预报、警报获取和仪表板展示等功能。

stdio官方级别未说明来源级核验工具 4
地理编码天气警报HTMLClaude天气预报Claude DesktopCursorVS Code

快速开始

作者 / 组织
slin-master
提供方
slin-master

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Weather Forecast MCP Server 属于浏览器工具类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cursor,有可以直接复制的安装命令;接入前先确认权限范围。

分类

浏览器工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

天气预报MCP服务器

生产就绪的MCP服务器,用于使用美国国家气象局API进行实时天气预报。

A. 模型上下文协议 (MCP)服务器,为Claude和其他人工智能应用程序提供安全、进程隔离的天气数据访问。使用Python、FastMCP构建,专为生产部署而设计。

特性

  • ✅ 4个MCP工具: geocode_city, get_forecast, get_alerts, get_forecast_dashboard
  • ✅ 2 MCP资源: weather://climate/normals/{location}/{month} 和 ui://weather/dashboard
  • ✅ 进程隔离:作为具有作用域凭据的独立服务器运行
  • ✅ stdio运输:使用Claude Desktop进行本地开发
  • ✅ Docker就绪:具有安全强化功能的生产部署
  • ✅ 预测不需要API密钥:使用免费的美国国家气象局API
  • ✅ 可选气候正常值:美国国家海洋和大气管理局CDO集成 NOAA_API_TOKEN
  • ✅ 异步/等待:非阻塞I/O,实现高效的请求处理
  • ✅ MCP应用程序示例:直接从此Python服务器提供的交互式天气仪表板

快速开始

安装

选项1:使用紫外线(推荐)

安装 紫外线 如果你还没有:

curl -LsSf https://astral.sh/uv/install.sh | sh

克隆存储库

git clone https://github.com/slin-master/weather-forecast-mcp-server.git
cd weather-forecast-mcp-server

注意:通过uv运行时会自动安装依赖项。

选项2:使用pip

克隆存储库

git clone https://github.com/slin-master/weather-forecast-mcp-server.git
cd weather-forecast-mcp-server

安装依赖项

pip install -e .

本地测试

使用stdio传输启动MCP服务器:

使用紫外线(推荐)

uv run mcp run src/weather_forecast_mcp_server/server.py

或者用pip

mcp run src/weather_forecast_mcp_server/server.py

服务器现在正在运行,并通过stdio等待JSON-RPC连接。

MCP检验员测试

这 MCP检查员 提供了一个用于测试的web UI:

全局安装检查器

npm install -g @modelcontextprotocol/inspector

连接到您的服务器

npx @modelcontextprotocol/inspector uv run mcp run src/weather_forecast_mcp_server/server.py

打开http://localhost:5173致:

  1. 连接到服务器
  2. 探索可用工具
  3. 使用示例输入调用测试工具

与Claude Desktop一起使用

添加到您的 ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/weather-forecast-mcp-server",
        "run",
        "mcp",
        "run",
        "src/weather_forecast_mcp_server/server.py"
      ]
    }
  }
}

重新启动Claude Desktop,然后尝试:

  • “俄勒冈州波特兰的天气怎么样?”
  • “迈阿密有天气警报吗?”
  • “本周西雅图会下雨吗?”
  • “给我看看西雅图的天气仪表盘。”

Claude将调用您的MCP服务器的工具来获取实时数据!

第3部分:MCP应用程序仪表板

此存储库现在包括本教程第3部分的最小MCP应用程序实现:

  • 工具: get_forecast_dashboard(latitude, longitude)
  • UI资源: ui://weather/dashboard
  • 运行时UI文件: src/weather_forecast_mcp_server/ui/weather_dashboard.html
  • 反应源代码: mcp-app-ui/src/main.jsx

它是如何工作的:

  1. 该工具从NWS获取预测数据,并在中返回图表就绪数据 _meta.forecast.
  2. 工具元数据声明 _meta.ui.resourceUri = "ui://weather/dashboard".
  3. 支持Apps的MCP主机渲染仪表板资源并将工具结果传递给iframe。

构建React用户界面

仪表板采用混合方法:

  • Python/FastMCP提供工具/资源和协议行为。
  • React(Vite)处理UI渲染和交互。

从存储库根目录:

cd mcp-app-ui
npm install
npm run build

这将单个文件仪表板工件写入:

  • src/weather_forecast_mcp_server/ui/weather_dashboard.html

Claude桌面渲染(推荐桥接服务器)

如果您的客户端发现了该工具,但没有呈现应用程序面板,请运行ext-apps桥服务器以获得最大的主机兼容性。

安装并从存储库根目录启动:

cd mcp-app-server
npm install
node server.mjs

Claude桌面配置条目:

{
  "mcpServers": {
    "weather-app-bridge": {
      "command": "node",
      "args": [
        "/absolute/path/to/weather-forecast-mcp-server/mcp-app-server/server.mjs"
      ]
    }
  }
}

然后开始新的聊天并拨打电话:

  • weather-app-bridge:get_forecast_dashboard

如果Claude仍然以纯文本或自行生成的仪表板进行响应:

  • 确保您的应用程序HTML已重建(mcp-app-ui/npm run build)更改后。
  • 确认渲染的应用程序页脚包含 Powered by weather-forecast-mcp-server (视觉指纹)。
  • 继续使用上面的网桥服务器路径;它遵循官方 ext-apps 服务器注册模式。
  • 重新启动后打开一个新的聊天(工具/资源发现可以缓存会话)。

快速验证

  1. 使用stdio传输启动服务器(uv run mcp run src/weather_forecast_mcp_server/server.py).
  2. 连接支持应用程序的MCP主机。
  3. 调用 get_forecast_dashboard 美国坐标。
  4. 确认交互式仪表板渲染并在温度、降水和风视图之间切换。

当前限制

  • UI到模型的上下文更新依赖于主机,并非在所有客户端都能保证。
  • 应用程序渲染依赖于主机;一些MCP工具可以在不渲染iframe UI的情况下显示工具输出。
  • 预报覆盖率仍然是美国唯一的,因为它取决于美国国家气象局API。

Docker部署

对于生产部署,使用Docker进行进程隔离和安全:

构建并运行

塑造形象

docker compose build

运行容器

docker compose up -d

查看日志

docker compose logs -f weather-mcp

安全特性

Docker设置包括:

  • ✅ 非root用户(mcpuser)
  • ✅ 只读文件系统
  • ✅ 无特权升级
  • ✅ 资源限制(CPU/内存)
  • ✅ 健康检查

HTTP传输(可选)

对于远程访问,请修改 server.py 要使用HTTP传输:

if __name__ == "__main__":
    import sys
    if "--http" in sys.argv:
        mcp.run(transport="http", host="0.0.0.0", port=8000)
    else:
        mcp.run()  # Default stdio

更新Dockerfile CMD并在中公开端口8000 compose.yml.

运作原理

此服务器实现 MCP规范2025-11-25:

weather-forecast-mcp-server/
├── src/weather_forecast_mcp_server/
│   ├── server.py                  # FastMCP server with tools/resources
│   └── ui/weather_dashboard.html  # MCP App dashboard resource
├── pyproject.toml          # Dependencies and metadata
├── Dockerfile              # Production container
└── compose.yml             # Docker orchestration

建筑

  1. MCP主机 (Claude Desktop、VS Code等)生成服务器进程
  2. JSON-RPC 2.0 通过stdio或HTTP交换的消息
  3. FastMCP 处理协议细节(能力协商、工具注册)
  4. 异步I/O 具有用于非阻塞API请求的httpx
  5. 结构化响应 以JSON格式返回给主机

可用工具

geocode_city(city_name: str)

  • 将城市名称转换为坐标
  • 使用Nomatim OpenStreetMap API
  • 返回lat、lon和显示名称

get_forecast(latitude: float, longitude: float)

  • 获取完整的天气预报
  • 返回当前状况、7天预测、每小时数据和警报
  • 美国国家气象局API(仅限美国)

get_alerts(latitude: float, longitude: float)

  • 获取活动天气警报
  • 返回警告、观察和建议
  • 包括严重性、紧迫性和到期时间

get_forecast_dashboard(latitude: float, longitude: float)

  • 在UI友好的有效负载中返回7天/昼夜时段
  • 包含 _meta.forecast 和 _meta.location 用于仪表板渲染
  • 宣布 ui://weather/dashboard 适用于MCP应用程序主机

可用资源

weather://climate/normals/{location}/{month}

  • 读取30年气候正常值(1991-2020)
  • 示例URI: weather://climate/normals/seattle-wa/01
  • 需要 NOAA_API_TOKEN 用于NOAA CDO API访问

ui://weather/dashboard

  • 提供可嵌入的HTML仪表板资源
  • MIME类型: text/html;profile=mcp-app
  • 被...使用 get_forecast_dashboard

与代理技能相比

此服务器提供 相同的天气功能 随着 代理技能版本,但具有不同的架构:

方面代理技能MCP服务器
执行进程中脚本单独进程
隔离共享环境流程边界
安全客户端凭据范围凭据
运输文件系统stdio或HTTP
部署客户端管理独立服务
用例个人工作流程生产系统

何时使用此MCP服务器:

  • 具有SLA的生产部署
  • 多个客户端访问该服务
  • 需要安全隔离
  • 企业/组织政策
  • 需要远程访问(HTTP传输)

何时使用代理技能:

  • 快速原型制作
  • 个人生产力
  • 受信任的本地代码
  • 基于文件系统的发现就足够了

支持的平台

API覆盖范围

使用 美国国家气象局API:

  • 🇺🇸 美国所有州和地区
  • 🇵🇷 波多黎各、美属维尔京群岛
  • 🇬🇺 关岛、美属萨摩亚

备注:对于国际天气,请使用OpenWeatherMap或WeatherAPI进行扩展。

了解更多

📖 阅读完整教程: 构建您的第一台MCP服务器

此存储库附带了一个全面的教程,涵盖:

  • 使用FastMCP实现MCP服务器
  • stdio与HTTP传输
  • Docker容器化用于生产
  • 安全最佳实践
  • 与Agent技能架构的比较

需求

  • Python 3.10+
  • 紫外线 (推荐)或pip
  • 依赖关系:请参见 pyproject.toml
  • Docker(可选,用于容器化部署)

验证

运行与释放门控相同的检查:

uv run python -m py_compile src/weather_forecast_mcp_server/server.py
timeout 8s uv run mcp run src/weather_forecast_mcp_server/server.py
uv run python - <<'PY'
import asyncio
from weather_forecast_mcp_server.server import geocode_city
print(asyncio.run(geocode_city("Seattle, WA")))
PY
docker compose -f compose.yml config
docker compose -f compose.yml build weather-mcp
uv run --group dev pytest

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

贡献的想法

  • \[\]添加提示功能(常见天气查询)
  • \[\]实现缓存层(Redis)
  • \[\]添加HTTP传输的身份验证
  • \[\]支持国际天气API
  • \[\]添加度量和可观察性(Prometheus)

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

归因

由...创建 尼尔斯·弗里德里希斯 作为MCP生态系统的一部分。

天气数据来自:

相关项目

______________________________________________________________________

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

HTML本地部署天气预报MCP服务器实时数据地理编码天气警报仪表板展示

支持客户端

Claude DesktopClaudeCursorVS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

自动操作网页

打开页面、点击、填表,把浏览器动作交给模型执行。

抓结构化数据

把页面内容整理成表格或 JSON,省掉手工复制粘贴。

走一遍关键流程

按步骤检查页面是否正常,回归时少漏环节。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在浏览器工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Weather Forecast MCP Server

MCP World · 本页

4stdio有1 个2026-05-17
Fetch 9a2682de

MCP.so

1SSE有3 个2026-05-17
Browser 738d52bc

MCP World

0stdio有1 个2026-05-17
Playwright MCP Server

MCP.so

21stdio有4 个2026-05-17
Skyvern MCP

MCP World

0stdio有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Weather Forecast MCP Server 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Weather Forecast MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Weather Forecast MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Weather Forecast MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Weather Forecast MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor、VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP