关于 MCP Weather Application (Client-Server)
MCP Weather Application (Client-Server) 是包含 MCP 服务和聊天客户端的天气应用示例。服务端从 National Weather Service 获取预警和预报,客户端使用 LangChain 与 Groq 处理自然语言请求。
主要功能
- 01获取天气预警和预报
- 02通过 MCP 发现服务端工具
- 03提供自然语言查询聊天界面
- 04使用 LangChain 和 Groq
适用场景
- 01在聊天中查询天气预警
- 02用自然语言请求天气预报
MCP 相关
服务端通过 National Weather Service API 提供 `get_alerts` 和 `get_forecast` 工具。客户端通过 stdio 连接、发现这些工具,并通过 MCP 调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 天气应用程序(客户端-服务端)
此项目展示了一个使用 MCP(Model Context Protocol,模型上下文协议)框架获取天气信息的客户端-服务端应用程序。
weather/:包含 MCP 服务端代码,用于从美国国家气象局(NWS)API 获取数据。mcp-client/:包含 MCP 客户端代码,用于与服务端交互,并使用 LangChain 和 Groq 处理自然语言查询。
描述
MCP 服务端(weather/)通过 MCP 提供特定工具(get_alerts、get_forecast)。它连接到 NWS API,以处理通过这些工具发出的请求。
MCP 客户端(mcp-client/)连接到 MCP 服务端,发现其工具,并允许用户通过聊天界面进行交互。它使用 LangChain 和 Groq API(Llama 3 模型)处理自然语言查询,判断是否需要调用服务端工具;如有必要,则通过 MCP 调用该工具并生成最终回复。
架构
- 客户端启动并通过 stdio 与服务端脚本建立 MCP 连接。
- 客户端发现服务端提供的工具。
- 用户向客户端输入自然语言查询。
- 客户端使用 Groq LLM(通过 LangChain)理解查询,并确定是否需要使用服务端工具。
- 如果需要使用工具,客户端会向服务端发送 MCP 请求,以执行指定工具(例如
get_forecast),并提供所需参数。 - 服务端执行工具逻辑,从 NWS API 获取数据。
- 服务端通过 MCP 将结果发回客户端。
- 客户端将工具的结果纳入与大模型的持续对话。
- 客户端向用户展示大模型生成的最终回复。
设置
详细的设置说明,包括依赖项安装和环境配置(例如 API 密钥),请参阅各组件目录中的 README 文件:
- **服务端设置:**参阅
weather/README.md - **客户端设置:**参阅
mcp-client/README.md
运行应用程序
要运行客户端并让它自动启动并连接到服务端,请在 mcp-client/ 目录(即包含 client.py 的目录)中执行以下命令:
uv run client.py ../weather/weather.py
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。