mcpField
W
Weather MCP Server

Weather MCP Server

ローカル
github.com/jalaterasメディア・デザイン184 週間前に更新

Weather MCP Server について

National Weather Serviceの警報と予報に加え、システムコマンドやプロセス情報を提供するPython製MCPサーバーです。Claude DesktopなどのMCPクライアントで利用できます。

主な機能

  1. 01州ごとの気象警報の取得
  2. 02座標に基づく予報の取得
  3. 03シェルコマンドの実行
  4. 04システムプロセス情報の確認

活用シーン

  1. 01米国の州別気象警報の確認
  2. 02指定座標の天気予報の取得
  3. 03MCPクライアント経由でのシェルコマンド実行
  4. 04システムプロセスの調査

MCP 対応

Claude DesktopなどのMCPクライアントに、天気とシステム操作のツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Weather MCP Server

概要

このプロジェクトは、気象情報サービスを提供する Model Context Protocol(MCP)サーバーを実装しています。National Weather Service(NWS)API を利用して気象警報と予報を取得し、Claude などの MCP クライアントが使用できるツールとして公開します。

このサーバーは、Python プロジェクトのベストプラクティスに従ったモジュール型アーキテクチャで構築されており、保守や拡張が容易です。

機能
  • 気象ツール:州ごとの気象警報と、特定の座標の予報を取得します
  • システムツール:シェルコマンドを実行し、システムのプロセス情報を表示します
  • MCP 統合:Claude Desktop などの MCP クライアントとシームレスに連携します

インストール

前提条件
  • Python 3.11 以降
  • uv パッケージマネージャー
セットアップ
  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/weather.git
    cd weather
    
  2. uv を使用して依存関係をインストールします:

    make install
    
  3. 開発用に追加の依存関係をインストールします:

    make dev
    

使用方法

サーバーの起動

MCP サーバーを起動するには:

make run

または、uv で直接起動します:

uv run python -m main
Claude Desktop への接続
  1. 気象サーバーを含めるように Claude Desktop の設定を更新します:
{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["-m", "main"],
      "cwd": "/path/to/weather"
    }
  }
}
  1. Claude Desktop を再起動して変更を適用します

  2. Claude Desktop で、MCP サーバーのドロップダウンメニューから「weather」MCP サーバーを選択できるようになります

気象 MCP サーバーが Claude Desktop で利用可能になり、会話の中で気象データを直接扱えるようになります。

質問の例

接続したら、Claude に次のように質問できます:

  • 「CA の現在の気象警報は何ですか?」
  • 「緯度 37.7749、経度 -122.4194 の予報は何ですか?」
  • 「システム上で最も CPU を使用しているプロセスは何ですか?」

プロジェクト構成

weather/
├── src/
│   └── weather/
│       ├── __init__.py          # Package initialization
│       ├── server.py            # Main server setup
│       ├── tools/               # Tool implementations
│       │   ├── __init__.py
│       │   ├── weather_tools.py
│       │   └── system_tools.py
│       ├── resources/           # Resource implementations
│       │   ├── __init__.py
│       │   └── system_resources.py
│       ├── services/            # External service integrations
│       │   ├── __init__.py
│       │   ├── weather_service.py
│       │   └── system_service.py
│       └── utils/               # Helper functions
│           ├── __init__.py
│           ├── http.py
│           └── formatting.py
├── tests/                       # Test suite
├── main.py                      # Entry point
├── pyproject.toml               # Dependencies and metadata
├── Makefile                     # Build commands
└── README.md                    # This file

Make ターゲット

このプロジェクトには、開発を簡単にするための make ターゲットがいくつか用意されています:

ターゲット説明
installuv を使用してプロジェクトの依存関係をインストールします
lintuv を使用して自動修正付きで ruff リンターを実行します
formatuv を使用して black フォーマッターを実行します
format-checkblack によってファイルが再フォーマットされるかどうかを確認します
lint-formatリンターとフォーマッターの両方を実行します
testuv を使用して pytest でテストを実行します
cleanビルド成果物とキャッシュファイルを削除します
outdateduv を使用して古い依存関係を確認します
upgrade-deps古くなった依存関係をすべて uv でアップグレードします
runuv を使用して MCP サーバーを起動します
inspectorテスト用に MCP Inspector を起動します
hooksgit フックをインストールします
dev-server開発モードで MCP サーバーを起動します
stop-serverMCP サーバーと Inspector を停止します
claude-installClaude Desktop にサーバーをインストールします
claude-uninstallClaude Desktop からサーバーをアンインストールします

make help を実行すると、使用可能なすべてのターゲットを確認できます。

Claude Desktop での使用

Claude Desktop で気象 MCP サーバーを使用するには:

  1. Claude Desktop にサーバーをインストールします:
make claude-install

これにより、次の処理が行われます:

  • MCP CLI を使用して Claude Desktop にサーバーをインストールします
  • プロジェクトを編集可能モード(-e .)でインストールします
  • サーバーを「weather」という名前で登録します
  • プロジェクトディレクトリから実行されるようにサーバーを設定します
  1. Claude Desktop を再起動して変更を適用します

  2. Claude Desktop で、MCP サーバーのドロップダウンメニューから「weather」MCP サーバーを選択できるようになります

気象 MCP サーバーが Claude Desktop で利用可能になり、会話の中で気象データを直接扱えるようになります。

Claude Desktop からサーバーをアンインストールするには:

make claude-uninstall

これにより、Claude Desktop から気象 MCP サーバーの設定が削除されます。変更を適用するには、Claude を再起動する必要があります。

開発モード

コードの変更時に自動で再読み込みされる、開発作業向けの設定です。

# Start the server in development mode with the MCP Inspector
make dev-server

この設定では、次の処理が行われます。

  1. mcp dev コマンドを使って MCP サーバーを起動します
  2. プロジェクトを編集可能モード(-e .)でインストールします
  3. MCP Inspector を自動的に起動します
  4. コードの変更時に自動で再読み込みされるようにします

MCP Inspector は、ウェブブラウザーで http://localhost:5173 から利用できます。

サーバーと Inspector を停止するには、次を実行します。

make stop-server

コードを変更するとサーバーが自動的に再読み込みされるため、この設定は反復的な開発に最適です。

Inspector の機能

MCP Inspector では、次の操作ができます。

  1. ツールを調べる:利用可能なすべてのツールと、そのパラメーターおよびドキュメントを確認できます。
  2. ツールを呼び出す:カスタムパラメーターを指定してツールを実行し、結果を確認できます。
  3. リソースを閲覧する:利用可能なすべてのリソースと現在の値を確認できます。
  4. プロンプトをテストする:サーバーがプロンプトテンプレートを提供している場合、さまざまな入力でテストできます。
  5. ログを表示する:Inspector とサーバー間のすべてのやり取りの詳細なログを確認できます。
天気ツールのテスト

Inspector を使うと、天気ツールを簡単にテストできます。

  1. Inspector のインターフェースで get_weather_alerts ツールを見つけます
  2. パラメーター欄に州コード(例:「CA」、「NY」、「FL」)を入力します
  3. ツールを実行して結果を確認します

同様に、緯度と経度を指定すると、get_forecast ツールをテストできます。

システムツールのテスト

Inspector を使うと、システムツールも簡単にテストできます。

  1. run_shell_command ツールを見つけます
  2. パラメーター欄に安全なコマンド(例:「ls -la」、「echo hello」)を入力します
  3. ツールを実行して結果を確認します
Inspector を使ったデバッグ

Inspector は、特にデバッグに役立ちます。

  1. ツールの呼び出しに失敗した場合、詳細なエラーメッセージを表示します
  2. 正確なリクエストとレスポンスのペイロードを確認できます
  3. パラメーターの検証やツールの実装に関する問題の特定に役立ちます

MCP Inspector の詳細については、Model Context Protocol のドキュメントをご覧ください。

ローカルでのテスト

mcp[cli] パッケージに付属する MCP CLI ツールを使って、MCP サーバーをローカルでテストできます。

  1. サーバーを起動します。

    make run
    
  2. 別のターミナルで、MCP CLI を使ってサーバーに接続します。

    # List all available tools
    make inspector
    
    # Call a specific weather tool
    mcp call-tool http://localhost:8000 get_weather_alerts --args '{"state": "CA"}'
    
    # Get a weather forecast
    mcp call-tool http://localhost:8000 get_forecast --args '{"latitude": 37.7749, "longitude": -122.4194}'
    
    # List system resources
    mcp list-resources http://localhost:8000
    
    # Get system processes
    mcp get-resource http://localhost:8000 top_processes
    

uv を直接使用する場合は、次のコマンドで MCP CLI を実行できます。

uv run mcp list-tools http://localhost:8000

開発

新しいツールの追加

サーバーに新しいツールを追加するには、次の手順に従います。

  1. 適切な tools モジュールに関数を作成します
  2. @server.tool() デコレーターで登録します
  3. tools/__init__.py のツール登録を更新します

例:

@server.tool()
async def my_new_tool(param1: str, param2: int) -> str:
    """
    Tool description.
    
    Args:
        param1: Description of param1
        param2: Description of param2
        
    Returns:
        Description of return value
    """
    # Implementation
    return result
新しいリソースの追加

新しいリソースを追加するには、次の手順に従います。

  1. 適切な resources モジュールに関数を作成します
  2. @server.resource() デコレーターで登録します
  3. resources/__init__.py のリソース登録を更新します

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。