MCP Weather Server - Java implementation について
wttr.in APIを使って、指定した場所の現在の天気を取得するJava製MCPサーバーです。Claude DesktopなどのMCPクライアントに天気検索を組み込みたい開発者向けの実装です。
主な機能
- 01場所ごとの現在の天気取得
- 02APIキー不要のwttr.in利用
- 03STDIOトランスポートでの実行
活用シーン
- 01都市の現在の天気の確認
- 02MCPアシスタントへの降雨状況の問い合わせ
- 03場所に応じた天気検索の組み込み
MCP 対応
STDIOトランスポートで、wttr.inから現在の天気を取得する`getWeatherDetailsByLocation`ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Weather Server - Java 実装
あらゆる場所の天気情報を提供する、シンプルな Model Context Protocol(MCP)サーバーです。
関連記事:Building a simple MCP Server in Java。
MCP とは?
Model Context Protocol(MCP)は、AI アプリケーションやエージェントがデータソースやツールに接続するための標準化された方法です。Claude などの AI モデルが、標準化されたインターフェースを介してローカルシステム、外部サービス、カスタムツールとやり取りできるようにします。
プロジェクトの機能
- あらゆる場所の現在の天気情報を取得
- Claude Desktop およびその他の MCP クライアントに対応
- 無料の wttr.in 天気 API を使用(API キーは不要)
プロジェクトの要件
- Java 17 以降
- Maven 3.6 以降
- Spring Boot 3.3.x 以降
- AI アシスタント連携用の Claude for Desktop(MCP クライアントとして使用)
依存関係
このプロジェクトは、以下の主要なコンポーネントに依存しています。
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
</dependencies>
ビルドと実行
サーバーは STDIO トランスポートモードを使用し、通常はクライアントによって自動的に起動されます。
リポジトリをクローンする
最初に、プロジェクトをクローンします。
git clone https://github.com/chrischiedo/weather-mcp-server-java.git
cd weather-mcp-server-java
プロジェクトをビルドする
サーバーの jar をビルドするには、次のコマンドを使用します。
./mvnw clean install -DskipTests
これにより、target ディレクトリに jar ファイルが作成されます。
テストを実行する
テストを実行するには、次のコマンドを使用します。
./mvnw test
使用方法
サーバーを実行する
jar ファイルを実行して、MCP サーバーを起動します。
java -jar target/weather-mcp-server-0.0.1-SNAPSHOT.jar
Claude Desktop との連携
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 に天気ツールを使うよう依頼できます。
1. 「ナイロビの現在の天気は?」
2. 「今、ロンドンでは雨が降っていますか?」
3. 「今、パリの気温を教えてください。」
注:上記のプロンプトは 2025年5月4日 に送信されました。
仕組み
このサーバーは Model Context Protocol を実装し、wttr.in API から天気データを取得するツールを提供します。Claude またはその他の MCP クライアントがこのサーバーに接続すると、getWeatherDetailsByLocation ツールを使用して、あらゆる場所の現在の天気を取得できます。
サーバーの拡張
以下の方法で、このサーバーを拡張できます。
- 天気関連のツール(予報、警報、過去のデータなど)を追加する
- リソースやプロンプトなど、その他の MCP 機能を実装する
- より多くの機能を備えた別の天気 API(例:wunderground)を使用する
ライセンス
このプロジェクトはオープンソースであり、MIT License の下で利用できます。
参考資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。