A minimal MCP server that exposes weather forecast and alert tools using the National Weather Service API over STDIO transport.
This sample shows how to build a STDIO-based MCP server in Kotlin. It registers two tools that query the weather.gov API — one for weather forecasts by latitude/longitude and one for active alerts by US state. Because it uses STDIO, the server is launched as a subprocess by an MCP client or a desktop application like Claude Desktop.
- JDK 17+
- Internet access (the server calls the weather.gov API at runtime)
Run the server (it communicates via stdin/stdout):
./gradlew runBuild the fat JAR first, then connect with the MCP Inspector:
./gradlew build
npx @modelcontextprotocol/inspector -- java -jar samples/weather-stdio-server/build/libs/weather-stdio-server-0.1.0-all.jarAdd the following to your Claude Desktop configuration:
{
"mcpServers": {
"weather": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/samples/weather-stdio-server/build/libs/weather-stdio-server-0.1.0-all.jar"
]
}
}
}| Name | Description |
|---|---|
get_alerts |
Returns active weather alerts for a two-letter US state code (e.g. CA, NY). |
get_forecast |
Returns weather forecast for a given latitude / longitude using the weather.gov API. |