mcpField
M
MCP US Weather Client/Server

MCP US Weather Client/Server

本地服务
github.com/ankitmishralive开发工具078 周前更新

关于 MCP US Weather Client/Server

MCP US Weather Client/Server 是用于查询美国各州当前天气警报的 MCP 服务和客户端示例。项目调用美国国家气象局 API,并演示通过 mcp_use 和 Langchain 与服务交互。

主要功能

  1. 01按美国州查询有效警报
  2. 02格式化天气警报结果
  3. 03提供 mcp_use 客户端示例
  4. 04包含对话记忆和 LLM 集成

适用场景

  1. 01查询指定美国州的天气警报
  2. 02了解 MCP 客户端与服务示例
  3. 03演示在 LLM 对话中获取警报

MCP 相关

服务向 MCP 客户端提供天气警报工具和配置资源。仓库还包含基于 mcp_use 的客户端示例。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MCP US Weather Client/Server

这是我第一次亲手实现 MCP,我非常喜欢这次体验,也坚信 MCP 会一直发展下去。我还需要实现更多项目,进一步深入了解整个生态系统。关于此仓库:这里包含一个简单的 MCP(Model Context Protocol)服务,可借助 National Weather Service(NWS)API 提供美国各州的天气预警信息。此外,还包含一个示例客户端应用,演示如何使用 mcp_use 库和 Langchain 与 MCP 服务交互。

功能

  • 天气预警: 获取并整理指定美国州的有效天气预警。
  • MCP 集成: 演示如何使用 fastmcp 库构建 MCP 服务。
  • 客户端示例: 提供一个使用该服务并集成对话记忆的客户端应用。
  • Langchain 集成: 示例展示了大模型集成。

架构

graph LR

    %% MCP System
    subgraph MCP_System
        A[Client: client.py]
        B[MCP Agent: mcp_use.MCPAgent]
        C[MCP Client: mcp_use.MCPClient]
        D[FastMCP Server: weather.py]
        E[NWS API: api.weather.gov]

        A --> B
        B --> C
        C --> D
        D --> E
    end

    %% Data Flow
    subgraph Data_Flow
        F[User Input]
        F --> A
        E -->|Geo+JSON| D
        D -->|Weather Data| B
        B -->|LLM Interaction| F
    end

    %% Styling with visible text
    classDef client fill:#f9f,stroke:#333,color:#000,font-weight:bold;
    classDef agent fill:#ccf,stroke:#333,color:#000,font-weight:bold;
    classDef server fill:#fcc,stroke:#333,color:#000,font-weight:bold;
    classDef api fill:#ffc,stroke:#333,color:#000,font-weight:bold;
    classDef user fill:#cfc,stroke:#333,color:#000,font-weight:bold;

    class A client;
    class B,C agent;
    class D server;
    class E api;
    class F user;

    %% Link styling
    linkStyle default stroke:#000,stroke-width:2px;


前提条件

运行服务和客户端前,请确保已安装以下内容:

  • Python 3.7+
  • uv(推荐用于依赖管理 - https://github.com/astral-sh/uv)
  • Groq API 密钥。 需要将其添加到 .env 文件中。
  • mcp_use 库: 请按照其文档完成安装。

安装

  1. 克隆仓库:

    git clone <your_repository_url>
    cd <repository_directory>
    
  2. 安装依赖(使用 uv):

    uv add -r requirements.txt
    

    此命令使用 uv pip install .,根据当前目录中的 pyproject.toml 文件安装项目及其依赖项。

  3. 创建 .env 文件: 在根目录中创建 .env 文件,内容如下,并将 <YOUR_GROQ_API_KEY> 替换为你的实际 Groq API 密钥:

    GROQ_API_KEY=<YOUR_GROQ_API_KEY>
    

使用方法

运行 MCP 天气服务和客户端
  1. 启动服务:

    uv run mcp dev server/weather.py
    
  2. 启动客户端:

    uv run server/client.py
    
与客户端交互
  • 在提示符处输入查询。例如:“获取 CA、NY 或 NJ 等州的天气预警”。
  • 输入 exit 或 quit 结束对话。
  • 输入 clear 清除对话历史记录。

交互示例

随后,Agent 会使用 get_alerts 工具获取加利福尼亚州的天气预警,并向你提供整理后的结果。

随后,Agent 会使用 get_config 工具获取该资源。

配置

server/weather.json

此配置文件描述了 MCP 服务公开的工具和资源。此文件中的内容必须与 weather.py 文件中的定义保持一致。有关文件格式的详细信息,请参阅 mcp_use 文档。默认配置位于 server 文件夹中。

环境变量

客户端应用使用环境变量,具体来说是 GROQ_API_KEY,以通过 Groq API 进行身份验证。运行客户端前,请确保已设置这些变量。你可以通过 .env 文件设置这些变量。

输出

  • 控制台输出: 此截图展示了客户端应用在对话期间的典型输出,说明了 Agent 如何与 MCP 服务交互并使用 get_alerts 工具。

image

  • MCP Inspector: 此截图展示了与 MCP Inspector 配合使用的典型 weather.json

image

联系方式

如有任何问题或需要支持,请联系:

评论

支持 Markdown

第一次接触 MCP?

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

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