MCP1 Weather Query について
MCP1 Weather Queryは、地名から現在の天気を調べる読み取り専用のPython製MCPサーバーです。Open-Meteoのデータを構造化して返し、天気照会に特化したツールを必要とするMCPユーザー向けです。
主な機能
- 01地名による現在の天気照会
- 02任意の国コード入力
- 03単位・時刻を含む構造化結果
- 04入出力スキーマ付き読み取り専用ツール
活用シーン
- 01指定した場所の現在の天気を確認
- 02解決された場所情報付きの天気データ取得
MCP 対応
stdio経由でMCPクライアントに `get_current_weather` ツールを提供します。構造化された天気結果と安定したツールエラーを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| location | string | はい | 都市名、地名、または郵便番号に相当するテキスト。前後の空白を除いた長さは 2-100 文字である必要があります。この値が URL として解釈されることはありません。 |
| country_code | any | いいえ | 省略可能な ISO 3166-1 alpha-2 国コード。小文字の入力も受け付け、大文字に正規化します。 |
詳細
MCP1-天気照会
MCP Server の設計、stdio デバッグ、構造化 Tool 出力、テスト、パッケージ化と公開のプロセスを学ぶための Python 小規模プロジェクトです。Datawhale「第十章 エージェント通信プロトコル」の天気の事例を再現しますが、2026-07-28 MCP 仕様と現行の公式 Python SDK を基準とし、チュートリアルの古いラッパー、データソース、公開に関する説明をそのままコピーすることはありません。
現在の状況
- プロジェクトの種類:新規プロジェクトの立ち上げ。
- プロジェクト全体のレベル:M。計画、ロードマップ、実行ベースラインは完了しています。
- ローカルでのパッケージ化機能:プロジェクトでは wheel/sdist を生成してレビューでき、プロジェクト外の独立した 2 つの環境で、
PYTHONPATHを設定せずにインストールと stdio の検証も完了しています。リアルタイムのタスク状況はdocs/project-management/current-task.mdを参照してください。 - コード:ドメイン/サービス/Open-Meteo アダプターを実装済みです。公式 v2
MCPServerにはget_current_weatherのみを登録し、入力/出力 Schema、読み取り専用の annotations、構造化された成功結果、安定した Tool execution error を提供します。 - Git:private リポジトリは wcnm8888/mcp1-weather-query です。PR #1 で
feat/f-001-local-weather-toolをmainにマージ済みです。元のローカルおよびリモートの機能ブランチは削除済みです。 - 成果物/公開:
mcp-weather-query==0.1.0は GitHub Actions Trusted Publishing を通じて 本番 PyPI に公開済みです。wheel、sdist、公開メタデータ、 SHA-256、attestations を再確認済みです。 - テスト:直近のデフォルト完全ゲートは
96 passed, 1 skippedです。唯一の skip は明示的な opt-in が必要な live contract です。以前の live contract は1 passedで、Inspector では唯一の Tool の検出、成功、エラーパスの検証が完了しています。 - 起動境界:プロジェクトに
mcp-weather-queryconsole command を登録済みです。wheel と sdist をそれぞれプロジェクト外の独立環境にインストールし、PYTHONPATHを設定せず、ソースコードの作業ディレクトリ以外から同一の stdio Server を起動済みです。 - Node 互換性:プロジェクト専用の Node 24.19.0 は公式 SHA256 検証に合格しており、Inspector 2.1.0 で engine warning は発生しなくなりました。システムの Node 22.16.0 に変更はありません。
- プロトコルの証拠:公式 Python SDK v2 の
Client(mode="auto")は、本番 stdio エントリーポイントを通じてserver/discoverを完了し、MCP 2026-07-28 をネゴシエートしました。Legacy initialize は実行していません。同一の Server で、Inspector 2.1.0 による Legacy MCP 2025-11-25 のデバッグも引き続き可能です。 - F-002 packaging:バージョン
0.1.0、uv_build、console script、MIT LICENSE、Open-Meteo NOTICE はすべてグリーンになりました。Step 3 で生成したローカル wheel/sdist の成果物レビューが完了し、Step 4 のクリーン環境での 2 種類のインストール検証にも合格しました。 - インストールの証拠:公開 wheel と sdist をそれぞれプロジェクト外の新規環境にインストール済みです。どちらも
get_current_weatherのみを検出します。本番 console の stdout には MCP メッセージのみが含まれ、終了コードは 0 です。決定論的なオフライン呼び出しでは、有効なstructuredContentが返されます。 - 登録状況:
io.github.wcnm8888/mcp1-weather-query==0.1.0は Official MCP Registry に登録済みです。公式 API で唯一のactive/latest レコードを確認済みで、公開 PyPI からインストールした後の installed-package stdio 再検証にも合格しています。
インストールと起動
ローカルのリリース候補 wheel からインストールする
D-001 では、プロジェクト外でローカルの候補成果物を生成し、レビュー済みです。レビュー済みの 0.1.0 wheel を取得した後、
dist/ を含む候補ディレクトリで次を実行します。
uv tool install ./dist/mcp_weather_query-0.1.0-py3-none-any.whl
mcp-weather-query
これにより、配布パッケージが提供する console entry point を通じて、本番 stdio MCP Server が起動します。editable install、プロジェクトのソースコードディレクトリ、PYTHONPATH は不要です。mcp-weather-query が現在の
PATH に含まれている必要があります。uv tool dir --bin で uv のツールコマンドディレクトリを確認できます。
PyPI から固定バージョンを実行する
PyPI の公式プロジェクトページで 0.1.0 が提供されています。固定バージョンを直接実行できます。
uvx --from mcp-weather-query==0.1.0 mcp-weather-query
stdio Host の設定
ローカル wheel のインストールが完了し、console command が PATH に含まれている場合、Host では次の最小構成を使用できます。
{
"mcpServers": {
"weather": {
"command": "mcp-weather-query",
"args": []
}
}
}
Server は stdin/stdout を通じて MCP プロトコルメッセージを交換し、通常の診断情報は stderr にのみ書き込みます。Host によって設定ファイルの場所や外側のフィールドは異なる場合がありますが、command をソースコードのパスに変更したり、PYTHONPATH を注入したりしないでください。
公開と登録状況
mcp-weather-query==0.1.0は公開済みです。公開状況、ファイル、attestation については PyPI の公式プロジェクトページ を参照してください。io.github.wcnm8888/mcp1-weather-query==0.1.0は Official MCP Registry に登録済みです。公式 API で唯一のactive/latest エントリーを再確認済みです。また、PyPI package、uvx、stdio、リポジトリのメタデータは、固定されたserver.jsonと一致しています。- README 冒頭の
mcp-nameコメントは、引き続き PyPI の ownership verification marker として機能します。公開 Registry の ID と一致していますが、Registry は wheel/sdist をホストしません。インストール元は引き続き PyPI です。 - R-002 では、固定された
server.jsonに対して publish を一度だけ実行しました。公開後、公式 API と新規の PyPI インストール環境で再検証し、公式のmcp-publisher logoutを使用して、このマシン上の短期認証ファイルを処理しました。 - 今後のバージョン公開、Registry メタデータの更新、状態の変更、GitHub Release には、改めて個別のユーザー承認が必要です。
提供済みの機能
最初の完結した機能として、読み取り専用の MCP Tool get_current_weather を 1 つ提供します。地点名と省略可能な国コードを受け取り、固定の天気データソースを通じて地点を解決し、単位、時刻、解決後の地点、データソースを含む構造化された現在の天気情報を返します。
明確な非目標
- 完全な Agent、チャット UI、RAG、マルチエージェントシステムは構築しません。
- 天気予報、過去の天気、空気質、災害警報、服装のアドバイスは提供しません。
- 書き込み、削除、任意の Shell、任意のファイルアクセス、任意の URL リクエストは提供しません。
- 初期段階では、Streamable HTTP、リモートホスティング、アカウント機能、本番 SLA は提供しません。
- チュートリアルの例に複数の Tool があることを理由に、「都市一覧」や「サーバー情報」などの展示用 Tool を追加しません。
ドキュメント
プロジェクトの定義、アーキテクチャ、テスト、公開、ロードマップの状況については、docs/README.md を参照してください。
ライセンスとデータのクレジット表記
- プロジェクトのソースコードは MIT License のもとで提供されます。
- 天気およびジオコーディングのデータは Open-Meteo によって提供され、 CC BY 4.0 に基づいて使用されます。
- この学習プロジェクトでは、Open-Meteo の非商用無料 API のみを使用します。公開無料プランの制限は、1 分あたり 600 回、 1 時間あたり 5,000 回、1 日あたり 10,000 回のリクエストで、SLA はありません。このツールを商用または本番環境向けの 天気サービスとして扱わないでください。上限や利用規約は上流側によって変更される可能性があるため、使用前に Open-Meteo の公式説明を確認してください。
- 本プロジェクトでは、選択した上流フィールドを構造化された MCP Tool 出力に正規化しますが、基になる測定値は変更しません。 第三者データの詳細については、NOTICE を参照してください。
参考資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。