一个基于Model Context Protocol (MCP)的天气查询服务器,可依据用户输入的地址或自动获取当前位置,查询天气信息与预报,为用户提供便捷的天气服务。
本项目使用完全免费的Open - Meteo API,无需注册或配置任何密钥,以下是安装与运行步骤。
git clone
cd weather - mcp - server
npm install
# 编译TypeScript
npm run build
# 启动服务器
npm start
# 或者开发模式(自动重编译)
npm run dev
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/path/to/weather - mcp - server/dist/index.js"]
}
}
}
参考各客户端的文档,使用stdio传输协议连接到服务器:
node /path/to/weather - mcp - server/dist/index.js
根据地址获取当前天气信息。 参数:
address (string): 地址,例如:"北京市"、"上海市浦东新区"、"New York"
示例:获取北京市的天气
根据地址获取天气预报。 参数:
address (string): 地址days (number, 可选): 预报天数,1 - 10天,默认5天
示例:获取上海市未来7天的天气预报
获取当前位置的天气信息(基于IP地址)。 参数: 无 示例:
获取我当前位置的天气
获取当前位置的天气预报。 参数:
days (number, 可选): 预报天数,1 - 10天,默认5天
示例:获取我当前位置未来3天的天气预报
根据经纬度坐标获取天气信息。 参数:
latitude (number): 纬度, - 90到90之间longitude (number): 经度, - 180到180之间
示例:获取坐标(39.9042, 116.4074)的天气信息
将地址转换为经纬度坐标。 参数:
address (string): 要解析的地址
示例:解析"天安门广场"的坐标
显示天气服务的配置状态和可用性。
天气查询智能助手。 参数:
location (string, 可选): 位置信息query_type (enum, 可选): 查询类型,"current"或"forecast"📍 位置: Beijing, Beijing, China
🌡️ 温度: 22°C (体感温度: 24°C)
🌤️ 天气: 晴
💧 湿度: 45%
💨 风速: 12 km/h (SW)
🌡️ 气压: 1013 mb
👁️ 能见度: 10 km
☀️ 紫外线指数: 6
🕐 更新时间: 2024 - 01 - 15 14:30
💡 建议:
☀️ 天气较热,穿轻便衣物
🧴 紫外线较强,建议涂抹防晒霜
📍 Beijing, Beijing, China 天气预报
🌟 当前天气:
温度: 22°C (体感: 24°C)
天气: 晴
湿度: 45% | 风速: 12 km/h
📅 未来几天预报:
今天 (2024 - 01 - 15):
🌡️ 18°C ~ 25°C | 晴
💧 湿度: 45% | 🌧️ 降雨概率: 10%
明天 (2024 - 01 - 16):
🌡️ 16°C ~ 23°C | 多云
💧 湿度: 55% | 🌧️ 降雨概率: 20%
@modelcontextprotocol/sdk:MCP协议实现。axios:HTTP请求库。zod:数据验证。dotenv:环境变量管理。weather - mcp - server/
├── src/
│ ├── index.ts # 主服务器文件
│ ├── weather - service.ts # 天气服务
│ ├── location - service.ts # 位置服务
│ └── types.ts # 类型定义
├── dist/ # 编译输出
├── package.json
├── tsconfig.json
├── env.example
└── README.md
# 安装依赖
npm install
# 开发模式(自动重编译)
npm run dev
# 编译
npm run build
# 运行
npm start
src/index.ts 中注册新的工具、资源或提示。node_modules 和 dist 目录后重新安装。启用详细日志:
DEBUG = weather - mcp - server npm start
欢迎贡献代码!请遵循以下步骤:
git checkout -b feature/AmazingFeature)。git commit -m 'Add some AmazingFeature')。git push origin feature/AmazingFeature)。如果您遇到问题或有建议,请:
本项目采用 MIT 许可证。详见 LICENSE 文件。
享受使用天气MCP服务器! 🌤️✨