双源天气 MCP 服务器
这是一个基于 Model Context Protocol (MCP) 的天气服务器,使用和风天气和心知天气API提供天气数据,支持故障转移和优先获取最快响应。
功能
- 查看当前天气 (作为资源提供)
- 获取指定城市的当前天气 (工具)
- 获取指定城市的天气预报 (工具)
- 同时使用多个API源,自动选择最快响应的结果
- 支持最低/最高温度、湿度和风速数据
安装
# 克隆仓库
git clone <repository-url>
cd weather-mcp-server
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,添加你的API密钥
API 密钥获取
和风天气 API
- 访问 和风天气开发服务
- 注册账号并创建应用
- 在控制台获取API Key
心知天气 API
- 访问 心知天气开发服务
- 注册账号并创建应用
- 在控制台获取API Key
开发
# 构建项目
npm run build
# 监视模式 (自动重新构建)
npm run watch
运行
npm start
MCP 模式说明
本服务器仅支持 Model Context Protocol (MCP) 模式运行,不提供HTTP服务器功能。MCP是一种专为大型语言模型设计的协议,允许模型与外部工具和资源进行交互。
MCP 服务器特点
- 使用标准输入/输出 (stdio) 与客户端通信
- 提供资源和工具供大型语言模型使用
- 支持结构化数据交换和错误处理
可用资源
weather://{city}
- 获取指定城市的当前天气
可用工具
getCurrentWeather
- 获取指定城市的当前天气getForecast
- 获取指定城市的天气预报(支持1-7天)
在 Claude Desktop 中配置
编辑 Claude Desktop 配置文件:
// macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
// Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["你的完整路径/weather-mcp-server/build/index.js"],
"env": {
"QWEATHER_API_KEY": "你的和风天气API密钥",
"SENIVERSE_API_KEY": "你的心知天气API密钥"
}
}
}
}
调试
查看 MCP 的日志:
# macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
使用 MCP Inspector 调试
npx @modelcontextprotocol/inspector node 你的完整路径/weather-mcp-server/build/index.js
然后在浏览器中访问 http://localhost:5173
故障转移机制
此服务器同时使用多个天气API源:
- 首先并行向和风天气和心知天气发送请求
- 采用最先返回响应的API结果
- 如果某个API失败,会自动使用另一个API的结果
- 所有API都失败时才会返回错误
技术文档
详细的技术文档可在 docs
目录中找到:
贡献
欢迎提交问题和拉取请求。
效果

alt text
许可
MIT