MCP天气服务器-Java实现
一个简单的模型上下文协议(MCP)服务器,为任何位置提供天气信息。
随附博客文章: 用Java构建简单的MCP服务器.
什么是MCP?
这 模型上下文协议 (MCP)是人工智能应用程序和代理与数据源和工具连接的标准化方式。它允许像Claude这样的人工智能模型通过标准化的界面与您的本地系统、外部服务和自定义工具进行交互。
项目特点
- 获取任何位置的当前天气信息
- 与Claude Desktop和其他MCP客户端兼容
- 使用免费 wttr.in 天气API(无需API密钥)
项目需求
- Java 17或更高版本
- Maven 3.6或更高版本
- Spring Boot 3.3.x或更高版本
- Claude桌面版 用于AI助手集成(用作MCP客户端)
依赖项
该项目依赖于以下关键组成部分:
org.springframework.ai
spring-ai-starter-mcp-server
org.springframework
spring-web
建立和运行
服务器使用STDIO传输模式,通常由客户端自动启动。
克隆存储库
第一步是克隆项目:
git clone https://github.com/chrischiedo/weather-mcp-server-java.git
cd weather-mcp-server-java构建项目
要构建服务器jar,请使用:
./mvnw clean install -DskipTests这将在 target 目录。
运行测试
要运行测试,请使用:
./mvnw test用法
运行服务器
执行jar文件以启动MCP服务器:
java -jar target/weather-mcp-server-0.0.1-SNAPSHOT.jarClaude桌面集成
要将MCP服务器与Claude Desktop集成,请将以下配置添加到您的Claude Desktop配置设置中:
{
"mcpServers": {
"mcp-weather-server": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-jar",
"/absolute/path/to/weather-mcp-server-0.0.1-SNAPSHOT.jar"
]
}
}
}备注:在MacOS上,可以使用以下命令打开配置设置文件:
vi ~/Library/Application\ Support/Claude/claude_desktop_config.json备注:记得更换 /absolute/path/to/ 使用构建的jar文件的实际路径。
Claude Desktop的示例提示
连接后,您可以让Claude使用天气工具:
- "What's the current weather in Nairobi?"
- "Is it raining in London right now?"
- "Tell me the temperature in Paris right now."
备注:上述提示发布于 _2025年5月4日_.
运作原理
此服务器实现了模型上下文协议,以提供从 wttr.in API当Claude或其他MCP客户端连接到此服务器时,他们可以使用 getWeatherDetailsByLocation 该工具用于检索任何位置的当前天气状况。
扩展服务器
您可以通过以下方式扩展此服务器:
- 添加更多与天气相关的工具(预报、警报、历史数据等)
- 实现其他MCP功能,如资源或提示
- 使用具有更多特征的不同天气API(例如, 奇妙地)
许可证
该项目是开源的,可在 MIT许可证.
