使用说明
气象MCP服务器
使用WeatherAPI.com服务提供天气信息的模型上下文协议(MCP)服务器。
特性
- 获取任何城市的当前天气
- 获取长达10天的天气预报
- 详细的天气信息,包括温度、湿度、风、压力、紫外线指数
- 每小时和每日预报
- 轻松集成Claude Desktop和其他MCP客户端
先决条件
- JDK 17或更高版本
- Gradle(包括包装)
- Weather API密钥来自 WeatherAPI.com (免费版可用)
安装
-
克隆存储库
-
从获取免费的API密钥https://www.weatherapi.com/
-
配置API密钥(选择一种方法):
选项1:使用.env文件(推荐)
cp .env.example .env # Edit .env and add your API key: # WEATHER_API_KEY=your_api_key_here选项2:使用环境变量
export WEATHER_API_KEY="your_api_key_here"
建筑
使用Gradle构建项目:
./gradlew build
这将在中创建一个可执行的JAR文件 build/libs/.
跑步
独立
./gradlew run
或
java -jar build/libs/weather-mcp-server-1.0.0.jar
使用克劳德桌面
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/weather/build/libs/weather-mcp-server-1.0.0.jar"
],
"env": {
"WEATHER_API_KEY": "your_api_key_here"
}
}
}
}
或者使用Gradle(用于开发):
{
"mcpServers": {
"weather": {
"command": "./gradlew",
"args": ["run", "--quiet", "--console=plain"],
"cwd": "/absolute/path/to/weather",
"env": {
"WEATHER_API_KEY": "your_api_key_here"
}
}
}
}
配置后,重新启动Claude Desktop。天气工具将在您的对话中提供。
可用工具
get_current天气
获取城市的当前天气状况。
参数:
city(字符串,必填):城市名称(例如,“伦敦”、“纽约”、“东京”)
例子:
What's the current weather in London?
获取预测
获取一个城市的天气预报。
参数:
city(字符串,必填):城市名称days(数字,可选):预测天数(1-10,默认值:3)
例子:
What's the 5-day forecast for Paris?
建筑
服务器由以下组件构建:
- 科特林:现代JVM语言
- 哪个客户端:API调用的HTTP客户端
- Kotlinx序列化:JSON处理
- Kotlin日志记录:结构化日志记录
组件
McpServer:使用JSON-RPC 2.0在stdio上实现MCP协议WeatherService:处理与WeatherAPI.com的通信models/:MCP和天气数据的数据类别
协议
实施MCP协议版本2024-11-05:
- 服务器能力协商
- 工具列表和发现
- 使用结构化模式执行工具
发展
项目结构
weather/
├── build.gradle.kts
├── settings.gradle.kts
├── src/main/kotlin/com/example/mcp/weather/
│ ├── WeatherServer.kt # Main entry point
│ ├── McpServer.kt # MCP protocol implementation
│ ├── WeatherService.kt # Weather API client
│ └── models/
│ ├── McpModels.kt # MCP protocol models
│ └── WeatherModels.kt # Weather data models
└── src/main/resources/
└── logback.xml # Logging configuration
建立分销
创建一个包含所有依赖项的分发:
./gradlew installDist
分发将在 build/install/weather-mcp-server/.
故障排除
API关键问题
如果您收到关于缺少API密钥的错误:
- 确保
WEATHER_API_KEY环境变量已设置 - 检查您的API密钥是否在https://www.weatherapi.com/
- 验证密钥是否在Claude Desktop配置中正确配置
连接问题
- 检查您的互联网连接
- 验证WeatherAPI.com是否可访问
- 检查stderr中的日志以获取详细的错误消息
日志
日志被写入stderr。查看详细日志:
./gradlew run 2>weather.log
许可证
本项目按原样提供,用于教育和发展目的。
API归因
气象数据由 WeatherAPI.com