MCP 城市天气查询
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"weather": {
"args": [
"--directory",
"/Users/luoshui/Documents/Cursor/MCP/mcp-weather/mcp-server-weather",
"run",
"server.py"
],
"autoApprove": [
"query_weather",
"search_city_info"
],
"command": "uv",
"disabled": false
}
}
}
服务介绍
MCP天气查询服务器
基于天行数据API的MCP(模型上下文协议)天气查询服务器,为AI模型提供实时天气信息查询功能。
🌟 功能特性
- 城市搜索: 支持中文和英文城市名称搜索
- 实时天气: 获取当前天气、温度、湿度、风力等详细信息
- 空气质量: 提供AQI指数和空气质量等级
- 生活提示: 根据天气情况提供穿衣和出行建议
- 丰富展示: 使用emoji图标,信息展示直观友好
🛠️ MCP工具函数
1. query_weather(city: str)
根据城市名称查询天气信息。
参数:
city: 城市名称(支持中文和英文,如:广州、北京、shanghai等)
返回:
- 格式化的天气信息字符串,包含温度、湿度、风力、空气质量等
示例:
result = await query_weather("广州")
# 返回:
# 📍 广东 广州 (2025-06-14 星期六)
# 🌤️ 天气: 阴
# 🌡️ 当前温度: 26.4℃
# 📊 温度范围: 24℃ ~ 30℃
# ...
2. search_city_info(city: str)
搜索城市的详细信息。
参数:
city: 城市名称(支持中文和英文)
返回:
- 城市详细信息字符串,包含中英文名称、省份、经纬度、城市代码等
示例:
result = await search_city_info("广州")
# 返回:
# 🏙️ 城市信息
# 📍 中文名称: 广州
# 🔤 英文名称: guangzhou
# 🗺️ 所属省份: 广东 (guangdong)
# ...
📦 安装和使用
1. 安装依赖
cd mcp-weather/mcp-server-weather
uv sync
2. 启动服务器
# 使用内置API Key
python server.py
# 或使用自定义API Key
python server.py --api_key YOUR_API_KEY
3. 配置MCP客户端(Cursor集成)
在Cursor的.cursor/mcp.json文件中添加如下配置:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/Users/luoshui/Documents/Cursor/MCP/mcp-weather/mcp-server-weather",
"run",
"server.py"
],
"disabled": false,
"autoApprove": [
"query_weather",
"search_city_info"
]
}
}
}
参数说明:
command: 使用uv作为包管理器运行--directory: 指定服务目录run server.py: 启动天气服务autoApprove: 自动批准工具函数调用,无需手动确认disabled: 是否禁用该服务
注意: 路径请根据你本地实际情况调整。
4. 使用方法
- 在Cursor中直接用自然语言提问天气,如"查询广州天气""北京空气质量如何"等,AI会自动调用MCP工具。
- 支持城市详细信息查询,如"广州的城市代码是多少"。
🔧 技术实现
- API提供商: 天行数据 (tianapi.com)
- HTTP客户端: httpx
- MCP框架: FastMCP
- 异步支持: 完全异步实现,支持并发请求
- 错误处理: 完善的错误处理和用户友好的错误信息
📊 API接口
城市搜索接口
- URL:
https://apis.tianapi.com/citylookup/index - 方法: GET
- 参数:
key,area
天气查询接口
- URL:
https://apis.tianapi.com/tianqi/index - 方法: GET
- 参数:
key,city,type
🧪 测试结果
✅ 所有功能测试通过:
- API连接正常
- 城市搜索功能正常
- 天气查询功能正常
- 数据格式化正常
- MCP工具函数正常
📝 注意事项
- 城市名称: 支持中文城市名称,英文名称支持有限
- API限制: 使用免费API Key,可能有请求频率限制
- 网络依赖: 需要稳定的网络连接访问天行数据API
- 数据准确性: 天气数据来源于天行数据,准确性依赖于数据提供商
🔄 更新日志
- v0.1.0: 初始版本,实现基本天气查询功能
- 支持城市搜索和天气查询
- 完善的错误处理和数据格式化
- MCP工具函数集成
📄 许可证
本项目遵循MIT许可证。