天气警报服务

一个基于MCP协议的天气警报服务,提供美国各州的天气警报信息,并支持与Langchain集成。

  • by ankitgmishra
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ankitmishralive/hands-on-mcp

使用说明

MCP美国天气客户端/服务器

这是我第一次接触MCP的实际实施,我真的很喜欢它&我坚信MCP会一直存在,我必须实施更多的项目来更好地了解整个生态系统,关于存储库,这个存储库包含一个简单的MCP(模型上下文协议)服务器,该服务器利用美国国家气象局(NWS)API为美国各州提供天气警报信息。它还包括一个示例客户端应用程序,演示了如何使用 mcp_use 图书馆和Langchain。

特性

  • 天气警报: 获取并格式化美国特定州的活动天气警报。
  • MCP集成: 演示如何使用 fastmcp 图书馆。
  • 客户示例: 提供一个使用服务器并集成会话内存的客户端应用程序。
  • Langchain集成: 示例展示了LLM集成。

建筑

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+
  • 紫外线 (建议用于依赖关系管理- https://github.com/astral-sh/uv)
  • 获取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
    

与客户互动

  • 在提示处键入您的查询。例如:“获取加利福尼亚州、纽约州或新泽西州等地的天气警报”。
  • 类型 exit 或 quit 结束谈话。
  • 类型 clear 清除对话历史记录。

交互示例

然后,代理将使用 get_alerts 该工具用于获取加利福尼亚州的天气警报,并为您提供格式化的结果。

然后,代理将使用 get_config 获取资源的工具。

配置

server/weather.json

此配置文件描述了MCP服务器公开的工具和资源。此文件准确反映您的定义至关重要 weather.py 文件。请参阅 mcp_use 有关此文件格式的详细信息的文档。默认配置位于服务器文件夹中。

环境变量

客户端应用程序使用环境变量,具体来说 GROQ_API_KEY,以通过Groq API认证。确保在运行客户端之前设置这些变量。您可以使用 .env 文件。

输出

  • 控制台输出: 此屏幕截图显示了会话期间客户端应用程序的典型输出,演示了代理如何与MCP服务器交互并利用 get_alerts 工具。
  • MCP检查员: 此屏幕截图显示了与MCP检查器一起使用的典型weather.json

联系

如有任何疑问或支持,请联系: