天气警报服务器

一个基于Model Context Protocol (MCP)的天气警报服务器,提供美国各州的天气警报,支持Docker容器化和多种客户端集成。

  • by Jai-Keshav-Sharma
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jai-keshav-sharma/creating-weather-mcp-server

使用说明

气象MCP服务器

使用MCP Python SDK构建的模型上下文协议(MCP)服务器实现,为美国各州提供天气警报。本项目演示了如何使用工具、资源和Docker集成创建MCP服务器。

特性

  • 使用美国国家气象局API发布的美国各州天气警报
  • 支持stdio和SSE(服务器发送事件)传输
  • Docker容器化
  • 与Claude Desktop和Cursor IDE集成
  • 使用Groq的LLM驱动的CLI客户端
  • 内置对话记忆支持

项目结构

Creating-MCP-server/
├── server/
│   ├── weather.py        # Main MCP server implementation
│   ├── client.py         # LLM-powered CLI client
│   └── weather.json      # Server configuration
├── mcpserver/
│   ├── Dockerfile        # Docker configuration
│   ├── requirements.txt  # Python dependencies
│   ├── client-stdio.py   # Standard I/O client example
│   ├── client-sse.py     # SSE client example
│   └── server.py         # Containerized server

安装

本地设置

  1. 克隆存储库:
git clone <repository-url>
cd Creating-MCP-server
  1. 安装依赖项:
pip install -r mcpserver/requirements.txt

Docker设置

拉取预构建的图像:

docker pull ksharma9719/weather-mcp-server

或者在本地构建:

cd mcpserver
docker build -t weather-mcp-server .

用法

运行服务器

地方发展

cd server
python weather.py

使用Docker

docker run -p 8000:8000 ksharma9719/weather-mcp-server

客户示例

带LLM集成的CLI客户端

cd server
python client.py

标准I/O客户端

cd mcpserver
python client-stdio.py

SSE客户端

cd mcpserver
python client-sse.py

可用工具

获取警报

获取美国某个州的天气警报。

参数:

  • state:两个字母的美国州代码(例如,CA、TX、NY)

例子:

result = await session.call_tool("get_alerts", arguments={"state": "CA"})

与Claude Desktop集成

  1. 在Claude Desktop中安装服务器:
mcp install weather.py
  1. 可选:指定自定义名称:
mcp install weather.py --name "Weather Alerts Server"

发展

先决条件

  • Python 3.11或更高版本
  • uv包管理器
  • Docker(可选)

环境变量

创建一个 .env 服务器目录中的文件:

GROQ_API_KEY=your_groq_api_key

文档

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

  • 优秀SDK的模型上下文协议团队
  • 美国国家气象局为其公共API
  • 为他们的LLM API Groq