Caiyun Weather MCP Server
# 彩云天气 MCP 服务器
[](https://smithery.ai/server/@marcusbai/caiyun-weather-mcp)
基于彩云天气 API 的 Model Context Protocol (MCP) 服务器,提供天气数据查询功能。
## 功能特点
- **实时天气数据**:温度、湿度、风速、气压、能见度等
- **分钟级降水预报**:未来2小时的降水情况
- **小时级天气预报**:未来24小时或更长时间的天气预报
- **每日天气预报**:未来多天的天气预报
- **天气预警信息**:各类天气预警
- **空气质量趋势**:24小时空气质量变化趋势和主要污染物分析
- **详细生活指数**:运动、旅行、洗车、穿衣等详细生活建议
- **降水类型识别**:区分雨、雪、雨夹雪、冰雹等降水类型
- **地址查询**:支持通过地址查询天气,内置35个主要城市坐标缓存,无需额外配置即可使用
- **多语言支持**:支持中文和英文
- **单位制选择**:支持公制和英制
## 安装
### 安装 Smithery
通过 [Smithery](https://smithery.ai/server/@pepperai/caiyun-weather-mcp) 安装 彩云天气 对于Claude的桌面应用:
```bash
npm install @smithery/cli -g
smithery install @pepperai/caiyun-weather-mcp
```
### 通过 NPX 使用
您可以直接通过 NPX 运行:
```bash
npx caiyun-weather-mcp --api-key=您的彩云天气API密钥
```
或者设置环境变量:
```bash
CAIYUN_API_KEY=您的密钥 npx caiyun-weather-mcp
```
### 从源码安装
1. 克隆仓库:
```bash
git clone https://github.com/marcusbai/caiyun-weather-mcp.git
cd caiyun-weather-mcp
```
2. 安装依赖:
```bash
npm install
```
> **注意**:本项目依赖于 Model Context Protocol (MCP) SDK,该SDK需要在运行环境中可用。MCP SDK通常由Claude或其他支持MCP的应用程序提供。
3. 构建项目:
```bash
npm run build
```
## 配置
在使用前,需要配置彩云天气API密钥。地址查询功能支持内置城市缓存,高德地图API密钥为推荐配置。
### 彩云天气API密钥
1. 访问 [彩云天气开发者中心](https://dashboard.caiyunapp.com/)
2. 注册并登录账号
3. 创建应用并获取API密钥
### 高德地图API密钥(推荐)
1. 访问 [高德开放平台](https://lbs.amap.com/)
2. 注册并登录账号
3. 创建应用并获取API密钥,需要启用"地理编码"服务
> **💡 提示**:高德地图API密钥为推荐配置。系统内置了35个主要城市的坐标缓存,包括所有直辖市、省会城市和经济发达城市,无需额外配置即可使用。
## 地址解析功能
### 支持的城市
系统内置了以下35个主要城市的坐标缓存:
**直辖市**:北京、上海、天津、重庆
**省会及主要城市**:广州、深圳、杭州、南京、武汉、成都、西安、长沙、沈阳、大连、青岛、厦门、苏州、郑州、济南、哈尔滨、石家庄、太原、合肥、南昌、福州、南宁、昆明、贵阳、兰州、西宁、拉萨、呼和浩特、海口、银川、乌鲁木齐
### 智能地址匹配
支持多种地址格式和智能匹配:
- **标准格式**:`上海`、`上海市`
- **详细地址**:`上海市浦东新区`、`北京市朝阳区`
- **城市别名**:`魔都`→上海、`帝都`→北京、`羊城`→广州、`鹏城`→深圳等
### 地址解析策略
1. **缓存优先**:内置城市坐标立即返回
2. **API增强**:配置高德API后支持任意地址
3. **降级处理**:未知地址返回北京坐标并提示配置
## 配置MCP设置
编辑MCP设置文件,添加彩云天气MCP服务器配置:
```json
{
"mcpServers": {
"caiyun-weather": {
"command": "node",
"args": ["完整路径/caiyun-weather-mcp/dist/index.js"],
"env": {
"CAIYUN_API_KEY": "您的彩云天气API密钥",
"AMAP_API_KEY": "您的高德地图API密钥(推荐)"
},
"disabled": false,
"autoApprove": []
}
}
}
```
如果您通过 NPX 安装了本服务,可以使用以下配置:
```json
{
"mcpServers": {
"caiyun-weather": {
"command": "npx",
"args": ["caiyun-weather-mcp"],
"env": {
"CAIYUN_API_KEY": "您的彩云天气API密钥",
"AMAP_API_KEY": "您的高德地图API密钥(推荐)"
},
"disabled": false,
"autoApprove": []
}
}
}
```
## 使用示例
### 根据经纬度获取天气信息
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_weather_by_location</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"daily_steps": 5,
"hourly_steps": 24,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 根据地址获取天气信息
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_weather_by_address</tool_name>
<arguments>
{
"address": "上海市",
"daily_steps": 5,
"hourly_steps": 24,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取实时天气数据
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_realtime_weather</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取分钟级降水预报
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_minutely_forecast</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取小时级天气预报
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_hourly_forecast</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"hourly_steps": 24,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取每日天气预报
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_daily_forecast</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"daily_steps": 5,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取天气预警信息
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_weather_alert</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取空气质量趋势
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_air_quality_trend</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
### 获取详细生活指数
```
<use_mcp_tool>
<server_name>caiyun-weather</server_name>
<tool_name>get_detailed_life_index</tool_name>
<arguments>
{
"longitude": 116.3976,
"latitude": 39.9075,
"language": "zh_CN",
"unit": "metric"
}
</arguments>
</use_mcp_tool>
```
## 参数说明
### 通用参数
- `longitude`:经度
- `latitude`:纬度
- `address`:地址(仅用于 `get_weather_by_address`)
- `daily_steps`:每日预报天数(1-15,默认5)
- `hourly_steps`:小时预报数量(1-360,默认24)
- `language`:语言(`zh_CN` 或 `en_US`,默认 `zh_CN`)
- `unit`:单位制(`metric` 或 `imperial`,默认 `metric`)
## 许可证
MIT
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no overlap: daily, hourly, and minutely forecasts target different time granularities, realtime weather provides current conditions, weather alerts are separate, and the last two tools differ by input type (address vs. location). An agent can easily tell them apart based on their specific functions.
All tool names follow a consistent verb_noun pattern using 'get_' as the prefix, followed by descriptive nouns like 'daily_forecast' or 'weather_by_address'. There are no deviations in style or convention, making the naming predictable and easy to understand.
With 7 tools, this server is well-scoped for a weather domain, covering key aspects like forecasts, real-time data, alerts, and location-based queries. Each tool earns its place without being excessive or insufficient, aligning perfectly with typical MCP server expectations.
The tool set is highly complete for weather data retrieval, covering forecasts, real-time info, alerts, and multiple input methods. A minor gap might be the lack of historical weather data or more advanced queries, but core workflows are fully supported, allowing agents to handle most weather-related tasks effectively.