气象MCP服务器
使用MCP Python SDK构建的模型上下文协议(MCP)服务器实现,为美国各州提供天气警报。本项目演示了如何使用工具、资源和Docker集成创建MCP服务器。
 ](https://hub.docker.com/r/ksharma9719/weather-mcp-server) 
特性
- 使用美国国家气象局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安装
本地设置
- 克隆存储库:
git clone
cd Creating-MCP-server- 安装依赖项:
pip install -r mcpserver/requirements.txtDocker设置
拉取预构建的图像:
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.pySSE客户端
cd mcpserver
python client-sse.py可用工具
获取警报
获取美国某个州的天气警报。
参数:
state:两个字母的美国州代码(例如,CA、TX、NY)
例子:
result = await session.call_tool("get_alerts", arguments={"state": "CA"})与Claude Desktop集成
- 在Claude Desktop中安装服务器:
mcp install weather.py- 可选:指定自定义名称:
mcp install weather.py --name "Weather Alerts Server"发展
先决条件
- Python 3.11或更高版本
- uv包管理器
- Docker(可选)
环境变量
创建一个 .env 服务器目录中的文件:
GROQ_API_KEY=your_groq_api_key文档
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 优秀SDK的模型上下文协议团队
- 美国国家气象局为其公共API
- 为他们的LLM API Groq
