基于模型上下文协议(MCP)的天气查询服务器,可以根据用户输入的地址或自动获取当前位置来查询天气信息和预报。
git clone <repository-url>
cd weather-mcp-server
npm install
🎉 无需API密钥! 本项目使用完全免费的Open Mateo API,无需注册或配置任何密钥。
# 编译TypeScript
npm run build
# 启动服务器
npm start
# 或者开发模式(自动重编译)
npm run dev
打开Claude Desktop配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json添加MCP服务器配置:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/path/to/weather-mcp-server/dist/index.js"]
}
}
}
参考每个客户端的文档,并使用STDIO传输协议连接到服务器:
node /path/to/weather-mcp-server/dist/index.js
根据地址获取当前天气信息
参数:
address (字符串):地址,例如:"北京","上海浦东新区","纽约"示例:
获取北京市的天气
根据地址获取天气预报
参数:
address (字符串):地址days (数字,可选):预报天数,1-10天,默认5天示例:
获取上海市未来7天的天气预报
获取当前位置的天气信息(基于IP地址)
参数: 无
示例:
获取我当前位置的天气
获取当前位置的天气预报
参数:
days (数字,可选):预报天数,1-10天,默认5天示例:
获取我当前位置未来3天的天气预报
根据经纬度坐标获取天气信息
参数:
latitude (数字):纬度,范围在-90到90之间longitude (数字):经度,范围在-180到180之间示例:
获取坐标(39.9042, 116.4074)的天气信息
将地址转换为经纬度坐标
参数:
address (字符串):要解析的地址示例:
解析"天安门广场"的坐标
显示天气服务的配置状态和可用性
天气查询智能助手
参数:
location (字符串,可选):地点信息query_type (枚举,可选):查询类型,"current"或"forecast"📍 位置: 北京市, 北京市, 中国
🌡️ 温度: 22°C (体感温度: 24°C)
🌤️ 天气: 晴
💧 湿度: 45%
💨 风速: 12 km/h (西南风)
🌡️ 气压: 1013 mb
👁️ 能见度: 10 km
☀️ 紫外线指数: 6
🕐 更新时间: 2024-01-15 14:30
💡 建议:
☀️ 天气较热,穿轻便衣物
🧴 紫外线较强,建议涂抹防晒霜
📍 北京市, 北京市, 中国 天气预报
🌟 当前天气:
温度: 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服务器吧! 🌤️✨