使用说明
气象MCP服务器
模型上下文协议(MCP)服务器,通过RESTful API提供天气信息。该服务器与OpenWeatherMap API集成以获取实时天气数据,并可与Claude等人工智能助手一起使用。
🌟 特性
- MCP协议支持:实现模型上下文协议,实现无缝的人工智能集成
- 天气数据:来自OpenWeatherMap API的实时天气信息
- RESTful API:HTTP端点便于集成
- CORS支持:已启用跨源资源共享
- 错误处理:强大的错误处理和验证
- TypeScript:用TypeScript编写,以提高类型安全性
🚀 快速开始
先决条件
- Node.js>=18.0.0
- OpenWeatherMap API密钥
安装
-
克隆存储库
git clone <repository-url> cd weather-mcp-server -
安装依赖项
npm install -
设置环境变量
export OPENWEATHER_API_KEY="your-openweather-api-key" -
启动服务器
npm start
📖 用法
发展模式
在开发模式下运行服务器并自动重启:
npm run dev
生产模式
在生产环境中运行服务器:
npm start
🔧 API终点
GET/api/weather/:城市
获取特定城市的天气信息。
参数:
city(string):获取天气的城市名称
请求示例:
curl http://localhost:3000/api/weather/London
示例响应:
{
"city": "London",
"temperature": 15.2,
"description": "scattered clouds",
"humidity": 72,
"windSpeed": 3.6
}
POST/api/mcp
用于AI集成的MCP协议端点。
请求示例:
{
"method": "tools/call",
"params": {
"name": "get-weather",
"arguments": {
"city": "New York"
}
}
}
🛠️ 配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
OPENWEATHER_API_KEY |
您的OpenWeatherMap API密钥 | 是 |
PORT |
服务器端口(默认值:3000) | 否 |
获取OpenWeatherMap API密钥
- 访问 OpenWeatherMap
- 注册一个免费帐户
- 导航到API密钥部分
- 复制API密钥并将其设置为环境变量
📁 项目结构
weather-mcp-server/
├── src/
│ └── index.js # Main server file
├── package.json # Dependencies and scripts
├── README.md # This file
└── .gitignore # Git ignore rules
🔌 MCP集成
该服务器实现了模型上下文协议,使其与支持MCP的AI助手兼容。服务器提供 get-weather AI助手可以调用该工具来检索天气信息。
可用工具
- 获取天气信息:检索指定城市的当前天气信息
🧪 测试
目前,没有配置自动测试。您可以使用curl或任何HTTP客户端手动测试API。
示例测试:
# Test weather endpoint
curl http://localhost:3000/api/weather/Tokyo
# Test MCP endpoint
curl -X POST http://localhost:3000/api/mcp \
-H "Content-Type: application/json" \
-d '{"method":"tools/call","params":{"name":"get-weather","arguments":{"city":"Paris"}}}'
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 模型上下文协议 -对于MCP规范
- OpenWeatherMap -对于天气数据API
- Express.js -对于web框架
📞 支持
如果您遇到任何问题或有疑问,请:
- 检查 问题 页
- 使用有关您问题的详细信息创建新问题
- 包括你的Node.js版本、操作系统和任何错误消息
编码愉快! 🌤️