使用说明
气象MCP服务器
基于Quarkus的模型上下文协议(MCP)服务器,使用美国国家气象局API提供天气信息。
什么是模型上下文协议(MCP)?
模型上下文协议(MCP)是一种标准化协议,允许AI模型发现和使用外部工具。该项目实现了一个MCP服务器,该服务器提供可由AI模型或其他MCP客户端调用的天气预报和警报工具。 服务器使用Quarkiverse MCP服务器扩展将工具作为标准MCP API公开,使人工智能系统更容易访问实时天气数据。
提供的天气工具
此服务器提供两个主要工具:
- getAlerts -检索指定美国州的活动天气警报
{
"name": "getAlerts",
"arguments": {
"state": "CA" // Two-letter US state code
}
}
- getForecast -检索地理位置的天气预报
{
"name": "getForecast",
"arguments": {
"latitude": 37.7749, // Latitude coordinate
"longitude": -122.4194 // Longitude coordinate
}
}
项目结构
- 包含使用注释的工具定义的主类
Weather.java``@Tool - REST客户端与美国国家气象局API通信
WeatherClient.java - 将原始API响应格式化为可供人阅读的文本
WeatherFormatter.java - API响应的模型类(警报、预测等)
入门指南
先决条件
- Java 24或更新版本
- Maven(用于建筑)
- JBang(用于与MCP检查器一起运行)
- Node.js与npm(用于MCP检查器)
使用Maven运行
# Build and package as uber-jar
./mvnw package
java -jar target/mcp-server-1.0.0-SNAPSHOT-runner.jar
与JBang一起跑步
此项目配置为与JBang一起使用,以便于执行。application.properties包括构建可以用JBang运行的uber jar的配置:
# Build the uber-jar
./mvnw package
# Run with JBang
jbang org.devgurupk:mcp-server:1.0.0-SNAPSHOT:runner
MCP检验员测试
您可以使用模型上下文协议检查器来测试MCP服务器并与之交互:
npx @modelcontextprotocol/inspector
将此添加到参数中:
--quiet org.devgurupk:mcp-server:1.0.0-SNAPSHOT:runner
默认情况下,服务器在根路径()处公开MCP端点,如application.properties中配置的: /
quarkus.mcp.server.sse.root-path=/
## Configuration Options
The application.properties file contains important configurations:
``` properties
# Follow redirects from the weather API
quarkus.rest-client.follow-redirects=true
# Package as uber-jar for JBang compatibility
quarkus.package.jar.type=uber-jar
# Logging configuration
quarkus.log.file.enable=true
quarkus.log.file.path=weather-quarkus.log
# MCP server configuration
quarkus.mcp.server.sse.root-path=/
如果需要更详细的日志,请取消对application.properties中的调试选项的注释:
# Debug logging options
#quarkus.log.level=DEBUG
#quarkus.mcp.server.traffic-logging.enabled=true
#quarkus.mcp.server.traffic-logging.text-limit=100
技术细节
- 框架:Quarkus 3.22.3
- Java版本:Java 23
- MCP实施:Quarkiverse MCP服务器1.0.0
- API来源:国家气象局(api.Weather.gov)
- 关键库:
- 带Jackson的Quarkus REST客户端
- Quarkus Qute模板
- Quarkiverse MCP服务器(标准IO模式)
生产大楼
优步JAR(推荐给JBang)
./mvnw package -Dquarkus.package.jar.type=uber-jar
优步罐是在 target/mcp-server-1.0.0-SNAPSHOT-runner.jar
本机可执行文件(可选)
# Native build with GraalVM installed
./mvnw package -Dnative
# Or using containers if GraalVM is not installed
./mvnw package -Dnative -Dquarkus.native.container-build=true
运作原理
该项目使用模型上下文协议来公开天气数据工具:
- 标记中的注释方法作为可通过MCP API获得的工具
@Tool``Weather.java - 注释描述了每个工具所需的参数
@ToolArg - 与美国国家气象局API的接口
WeatherClient - 该类为人类可读性格式化响应
WeatherFormatter - Quarkus MCP Server扩展提供了允许MCP客户端发现和使用工具的服务器实现
当像Inspector这样的MCP客户端连接时,它会收到一份包含可用工具及其描述的列表,然后可以使用适当的参数按名称调用它们。