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+
- 紫外线 (建议用于依赖关系管理- )
- 获取API密钥。 这需要添加到.env文件中。
mcp_use图书馆: 请确保您已根据其文档安装了此程序。
安装
- 克隆存储库:
git clone
cd - 安装依赖项(使用uv):
uv add -r requirements.txt此命令使用 uv pip install . 根据安装项目及其依赖项 pyproject.toml 当前目录中的文件。
- 创建.env文件:
创建一个 .env 根目录中的文件,替换为以下内容 `` 使用您的实际Groq API密钥:
GROQ_API_KEY=用法
运行MCP天气服务器和客户端
- 启动服务器:
uv run mcp dev server/weather.py- 启动客户端:
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
联系
如有任何疑问或支持,请联系:
- 电子邮件: business@aiankit.com
- 个人网站: 网站 aiankit.com
