mcpField
🌩
🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop

🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop

本地服务
github.com/nahilahmed媒体与设计178 周前更新

关于 🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop

这是一个基于 FastMCP 的 Python MCP 服务,通过 api.weather.gov 按美国州查询实时天气警报,面向 Claude Desktop 等 MCP 客户端。它返回事件、严重程度、描述和说明等结构化信息,并支持通过 MCP Inspector 交互测试。

主要功能

  1. 01按美国州查询天气警报
  2. 02获取实时警报数据
  3. 03返回结构化警报详情
  4. 04通过 MCP Inspector 测试
  5. 05集成 Claude Desktop

适用场景

  1. 01查看某州当前天气警报
  2. 02在 Claude Desktop 中查询天气风险
  3. 03调试和测试 MCP 工具

MCP 相关

该服务通过 FastMCP 暴露 get_alerts 工具,供 MCP 客户端调用;工具从 api.weather.gov 获取警报数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🌩️ 使用 FastMCP + Claude Desktop 构建 MCP 天气警报工具

本项目演示如何使用官方 FastMCP Python SDK 构建 MCP(Model Context Protocol) 工具。它与 Claude Desktop 集成,让 AI 助手能够通过 api.weather.gov API 按美国州查询天气警报。


🚀 本项目的功能

  • ✅ 使用 FastMCP 实现自定义 MCP 服务
  • 🌐 使用 httpx 从 api.weather.gov 获取实时天气警报
  • 📦 返回结构化信息:事件、严重程度、描述和说明
  • 🧠 与 Claude Desktop 集成
  • 🌈 可通过 MCP Inspector 交互式测试

🧱 技术栈

工具/库用途
mcp[cli]提供命令行工具的 MCP 服务工具包
httpx异步 HTTP 客户端
uv现代 Python 包/依赖管理器
Claude Desktop用于大模型 + MCP 的 AI 界面
MCP Inspector用于调试 MCP 端点的 UI

📁 项目结构

mcpcrashcourse/
├── server/
│   └── weather.py         # MCP server logic (get_alerts)
├── pyproject.toml         # Project metadata + dependencies
├── uv.lock                # Locked versions (auto-generated by uv)
└── README.md              # You're reading it!

🧠 工具逻辑:get_alerts

@mcp.tool()
async def get_alerts(state: str) -> list[dict]:
    # Fetch weather alerts for a given U.S. state (e.g., 'CA')
    url = "https://api.weather.gov/alerts/active"
    params = {"area": state.upper()}
    async with httpx.AsyncClient() as client:
        response = await client.get(url, params=params)
        data = response.json()

    return [
        {
            "event": alert.get("event"),
            "severity": alert.get("severity"),
            "description": alert.get("description"),
            "instruction": alert.get("instruction"),
        }
        for alert in data.get("features", [])
        if alert.get("properties")
    ]

🛠️ 安装与设置

1. 创建并配置项目
pipx install uv               # install uv if you haven't
uv init mcpcrashcourse        # start new project
cd mcpcrashcourse
uv add "mcp[cli]" httpx       # add dependencies
2. 添加工具

将 weather.py 放入 server/ 文件夹,其中包含 get_alerts 的逻辑。


🧪 运行与检查

使用 MCP Inspector 启动
uv run mcp dev server/weather.py

然后打开 http://localhost:6757 来:

  • 查看 get_alerts 工具
  • 尝试使用类似 "TX" 的输入调用它

🤖 Claude Desktop 集成

  1. 更新 claude_desktop_config.json:
{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "<your-project-directory>/server/weather.py"
      ]
    }
  }
}
  1. 重启 Claude Desktop
  2. 提示词:

    “德克萨斯州有哪些天气警报?”

Claude 将调用你的 MCP 工具并显示结构化输出。


💡 什么是 MCP?

Model Context Protocol 规范了应用如何向大模型发送上下文(数据、工具、提示词)。它将**“上下文提供方”**与大模型层分离。

三种核心原语:

类型使用场景类比
工具执行函数POST 端点
资源提供静态数据GET 端点
提示词可重复使用的交互大模型模板

📎 致谢


📄 许可证

本项目基于 MIT 许可证开源。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。