使用说明
气象MCP服务器
一种模型上下文协议(MCP)服务器,为全球任何城市提供实时天气信息。使用TypeScript构建,并由Open-Meteo API提供支持。
🌟 特性
- 实时天气数据:获取任何城市的当前天气状况
- 双温度单元:温度以摄氏度和华氏度显示
- 综合天气信息:包括温度、湿度和紫外线指数
- 紫外线安全建议:根据紫外线水平提供防晒建议
- 地理编码支持:自动将城市名称解析为坐标
- 错误处理:强大的错误处理,带有有意义的错误消息
- 类型安全:使用TypeScript构建,增强可靠性
🛠️ 技术栈
- 语言:TypeScript
- 运行时:Node.js
- 框架:模型上下文协议SDK
- 架构验证:佐德
- 天气API:Open-Meteo API
- 地理编码:Open-Meteo地理编码API
📦 安装
-
克隆存储库:
git clone <repository-url> cd mcp-weather-server-main -
安装依赖项:
npm install -
构建项目:
npm run build
🚀 用法
发展模式
# Watch mode with auto-rebuild
npm run watch
# Development with inspector
npm run dev
# Debug mode
npm run debug
生产模式
# Start the server
npm start
MCP检查员
# Launch the MCP inspector for testing
npm run inspector
🔧 可用工具
get-weather
检索指定城市的综合天气信息。
参数:
city(string):要获取天气信息的城市名称
示例用法:
{
"city": "London"
}
示例响应:
Weather for London (lat: 51.5074, lon: -0.1278):
Temperature: 22°C (71.6°F)
Relative Humidity: 65%
UV Index: 4
UV level is moderate (3-5). Sun protection is recommended: Slip on protective clothing, Slop on SPF 50+ sunscreen, Slap on a hat, Seek shade, Slide on sunglasses.
📊 提供的天气数据
- 温度:当前温度(摄氏度和华氏度)
- 湿度:相对湿度百分比
- 紫外线指数:当前紫外线指数及安全建议
- 位置:精确坐标和城市名称
🌞 紫外线指数安全等级
服务器提供详细的紫外线安全建议:
- 低(1-2):长时间户外不需要防晒
- 中等(3-5):建议使用五个SunSmart步骤进行防晒
- 高(6-7):防晒至关重要-遵循所有SunSmart步骤
- 非常高(8-10):尽量减少阳光照射,严格遵守保护措施
- 极端(11+):避免在紫外线高峰期进行户外活动
🏗️ 项目结构
src/
├── index.ts # Main server entry point
├── tools/
│ ├── index.ts # Tools export barrel
│ ├── weatherTool.ts # Weather tool implementation
│ └── tmsAuthTool.ts # TMS authentication tool
└── utils/ # Utility functions (if any)
🔍 API依赖项
此服务器依赖于以下外部API:
- 开放气象API:
https://api.open-meteo.com/v1/forecast - Open-Meteo地理编码API:
https://geocoding-api.open-meteo.com/v1/search
这两个API都是免费的,不需要身份验证密钥。
🧪 测试
可以使用MCP检查器测试服务器:
npm run inspector
这将启动一个web界面,您可以在其中使用不同的城市名称测试天气工具。
🛡️ 错误处理
该服务器包括全面的错误处理功能,用于:
- 城市名称无效
- 网络连接问题
- API速率限制
- 响应格式错误
- 服务器超时
📝 脚本
| 脚本 | 描述 |
|---|---|
build |
编译TypeScript并设置可执行权限 |
watch |
开发观看模式 |
inspector |
启动MCP检查员进行测试 |
dev |
带手表和检查员的开发模式 |
debug |
从Node.js调试器开始 |
debug:watch |
带手表的调试模式 |
logs |
查看MCP日志(macOS/Linux) |
clean |
删除构建目录 |
start |
启动生产服务器 |
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/new-feature - 进行更改并添加测试
- 提交您的更改:
git commit -am 'Add new feature' - 推到分支:
git push origin feature/new-feature - 提交拉取请求
📄 许可证
此项目根据ISC许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- Open Meteo 提供免费天气数据
- 模型上下文协议 对于MCP框架
- 萨德 用于运行时类型验证
📞 支持
如果您遇到任何问题或有疑问,请在GitHub存储库上打开问题。
备注:此服务器提供的天气数据仅供参考。对于依赖天气的关键决策,请咨询官方气象服务。