返回市场
MCP中国天气服务器

MCP中国天气服务器

作者:Le-dawn3 星标更新:2025-06-04

项目介绍

MCP 天气预报服务器

基于高德地图API的MCP(模型上下文协议)天气预报服务器,使用TypeScript开发。

🌟 功能特性

  • 实时天气查询 - 获取指定城市的当前天气状况
  • 天气预报查询 - 获取未来几天的天气预报
  • 智能城市识别 - 支持自动转换中文城市级别名称到城市代码
  • 时区支持 - 可选时区参数
  • 详细的天气信息 - 包括温度、湿度、风向、风力等完整信息
  • 错误处理 - 全面的错误提示和异常处理

📋 系统需求

  • Node.js 16.0或更高版本
  • TypeScript 5.0或更高版本
  • 高德地图API密钥

🚀 快速开始

1. 安装依赖

npm install

2. 构建项目

npm run build

3. 运行服务器

npm start

或者开发模式:

npm run dev

🔑 获取高德地图API密钥

  1. 访问高德开放平台
  2. 注册并登录您的账户
  3. 前往控制台 → 应用管理 → 我的应用
  4. 创建一个新应用并选择“WebService”类型
  5. 获取API密钥

🛠️ 工具使用说明

get-weather-forecast

获取指定城市的天气信息。

参数描述

参数名称类型是否必填描述示例
cityNamestring中文城市级别名称"北京市", "上海市", "广州市"
datestring查询日期 (YYYY-MM-DD)"2024-01-15" (默认当天)
forecastTypestring查询类型"current" (实时) 或 "forecast" (预报)

API密钥配置

此服务器依赖于环境变量 AMAP_API_KEY 在中间读取高德地图API密钥,调用时不传递。请确保在启动服务器之前设置此环境变量。

使用示例

实时天气查询:

{
  "cityName": "北京市",
  "forecastType": "current"
}

天气预报查询:

{
  "cityName": "广州市",
  "date": "2024-01-15",
  "forecastType": "forecast"
}

MCP服务器配置示例

{
  "mcpServers": {
    "weather-forecast": {
      "command": "node",
      "args": [
        "/path/to/your/build/index.js"
      ],
      "env": {
        "AMAP_API_KEY": "your_gaode_api_key_here"
      }
    }
  }
}

JSON

实时天气:

🌈 天气查询结果

📍 北京 北京市
🌤️  天气:晴
🌡️  温度:15°C
💨 风向:西北风
🌪️  风力:3级
💧 湿度:45%
⏰ 更新时间:224-01-15 14:30:00

📅 查询日期: 2024-01-15

天气预报:

🌈 天气查询结果

📍 上海 上海市

📅 未来几天天气预报:

今天 (星期一)
🌤️  白天:晴 | 夜间:多云
🌡️  温度:8°C ~ 18°C
💨 风向:东北风 3级 | 东风 2级

2024-01-16 (星期二)
🌤️  白天:多云 | 夜间:阴
🌡️  温度:10°C ~ 20°C
💨 风向:东风 2级 | 东南风 1级

📅 查询日期: 2024-01-15

🏗️ 项目结构

mcp-weather-server/
├── src/
│   └── index.ts          # 主服务器代码
├── build/                # 编译输出目录
├── package.json          # 项目配置
├── tsconfig.json         # TypeScript配置
└── README.md            # 项目文档

🔧 开发说明

核心组件

  1. 地理编码模块 (getCityCode)

    • 将城市名称转换为高德地图城市代码
    • 支持模糊匹配和智能识别
  2. 天气查询模块 (getWeatherInfo)

    • 调用高德天气API获取天气数据
    • 支持实时天气和预报天气两种模式
  3. 数据格式化模块

    • formatLiveWeather 格式化实时天气数据
    • formatForecastWeather 格式化预报天气数据

API接口说明

高德地理编码API

  • API端点: https://restapi.amap.com/v3/geocode/geo
  • 功能: 将地址转换为坐标和城市代码
  • 文档: 地理编码API文档

高德天气查询API

  • API端点: https://restapi.amap.com/v3/weather/weatherInfo
  • 功能: 根据城市代码获取天气信息
  • 文档: 天气查询API文档

⚠️ 注意事项

  1. API限制 高德地图个人开发者账号每日调用次数上限为5000次
  2. 城市名称 请使用标准的中文城市名称,如“北京”而不是“北京市”
  3. 网络环境 确保服务器可以访问高德地图API服务
  4. 密钥安全 请妥善保管API密钥,避免泄露

🐛 故障排除

常见问题

  1. 无法找到城市代码

    • 检查城市名称拼写是否正确
    • 确认使用的是标准的城市级别名称
  2. API密钥无效

    • 验证API密钥是否正确
    • 确认密钥对应的业务类型是“WebService”
  3. 网络请求失败

    • 检查网络连接
    • 确认防火墙设置允许访问Amap API

📄 许可证

MIT许可证

🤝 贡献

欢迎提交Issue和Pull Requests来改进这个项目!

📞 支持

如有任何疑问,请通过以下方式联系我们: