关于 MCP US Weather Client/Server
MCP US Weather Client/Server 是用于查询美国各州当前天气警报的 MCP 服务和客户端示例。项目调用美国国家气象局 API,并演示通过 mcp_use 和 Langchain 与服务交互。
主要功能
- 01按美国州查询有效警报
- 02格式化天气警报结果
- 03提供 mcp_use 客户端示例
- 04包含对话记忆和 LLM 集成
适用场景
- 01查询指定美国州的天气警报
- 02了解 MCP 客户端与服务示例
- 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库: 请按照其文档完成安装。
安装
-
克隆仓库:
git clone <your_repository_url> cd <repository_directory> -
安装依赖(使用 uv):
uv add -r requirements.txt此命令使用
uv pip install .,根据当前目录中的pyproject.toml文件安装项目及其依赖项。 -
创建 .env 文件: 在根目录中创建
.env文件,内容如下,并将<YOUR_GROQ_API_KEY>替换为你的实际 Groq API 密钥:GROQ_API_KEY=<YOUR_GROQ_API_KEY>
使用方法
运行 MCP 天气服务和客户端
-
启动服务:
uv run mcp dev server/weather.py -
启动客户端:
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工具。
- MCP Inspector: 此截图展示了与 MCP Inspector 配合使用的典型 weather.json
联系方式
如有任何问题或需要支持,请联系:
- 电子邮件: [email protected]
- 个人网站: aiankit.com
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。