J
mcp-server-weather
...
Created 2/28/2025byyestarz
Language:
Java
Stars:
3
Forks:
0
MCP Server Weather
基于和风天气API的一个获取实时天气的MCP服务端,使用Java来实现。和风天气API文档:https://dev.qweather.com/docs/api/weather/weather-now/
可用的工具列表
- 获取实时天气
getWeather
使用方法
- 下载项目到本地
- 打包项目,生成jar包
mvn clean package -Dmaven.test.skip=true
Claude使用方法:
{
"mcpServers": {
"mcp-server-weather": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-jar",
"你的jar包路径",
"--weather.api.api-key=YOUR API KEY"
]
}
}
}
LangChain4J使用方法:
引入依赖:
dev.langchain4j
langchain4j
dev.langchain4j
langchain4j-open-ai
dev.langchain4j
langchain4j-mcp
/**
* 阿里云的模型
*
* @return
*/
@Bean
public ChatLanguageModel chatLanguageModel() {
return OpenAiChatModel.builder()
.apiKey(System.getenv("AI_DASHSCOPE_API_KEY"))
.modelName("qwen-turbo")
.logRequests(true)
.logResponses(true)
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.build();
}
/**
* 初始化MCP Client
*/
@Bean
public McpClient mcpClientWeather() {
return new DefaultMcpClient.Builder()
.transport(new StdioMcpTransport.Builder()
.command(List.of(
"java",
"-Dspring.ai.mcp.server.stdio=true",
"-jar",
"mcp-server-weather-0.0.1-SNAPSHOT.jar",
"--weather.api.api-key=%s".formatted(System.getenv("HEFENG_WEATHER_API_KEY"))))
.logEvents(true) // only if you want to see the traffic in the log
.build())
.build();
}
/**
* 使用LangChain4J的高级API来构建一个AI助手,注入MCP Client
* @param mcpClientWeather
* @return
*/
@Bean
public AiAssistant aiAssistant(McpClient mcpClientWeather) {
ToolProvider toolProvider = McpToolProvider.builder()
.mcpClients(List.of(mcpClientWeather))
.build();
return AiServices.builder(AiAssistant.class)
.chatLanguageModel(chatLanguageModel())
.chatMemory(MessageWindowChatMemory.withMaxMessages(10))
.toolProvider(toolProvider)
.build();
}
@Test
public void testWeather1(){
System.out.println(aiAssistant.chat("今天重庆的天气怎么样?"));
/**
* AI回复以下内容:
*
*
* 今天重庆的天气情况如下:
- 天气状况:阴
- 气温:18℃
- 体感温度:16℃
- 风向:东风
- 风力:2级
- 湿度:47%
- 降水量:0.0mm
- 空气压力:980hPa
- 能见度:9km
- 云量:91%
*/
}
Last updated: 3/2/2025