mcpField
🌩
🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop

🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop

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

🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop について

FastMCPで構築されたPython製MCPサーバーで、米国の州ごとの気象警報をリアルタイムに取得します。Claude DesktopなどのMCPクライアント向けに警報の詳細を構造化して返し、MCP Inspectorでテストできます。

主な機能

  1. 01州ごとの警報検索
  2. 02リアルタイム警報の取得
  3. 03警報詳細の構造化出力
  4. 04MCP Inspectorでのテスト
  5. 05Claude Desktopとの連携

活用シーン

  1. 01州の現在の警報を確認
  2. 02Claude Desktopで気象リスクを質問
  3. 03MCPツールのデバッグとテスト

MCP 対応

FastMCPを通じて、MCPクライアントに`get_alerts`ツールを公開します。api.weather.govから警報データを取得します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

🌩️ FastMCP + Claude Desktop を使用した MCP 気象警報ツール

このプロジェクトでは、公式の FastMCP Python SDK を使用して MCP(Model Context Protocol) ツールを構築する方法を紹介します。Claude Desktop と連携し、api.weather.gov API を通じて、AI アシスタントが米国の州ごとの 気象警報 を取得できるようにします。


🚀 このプロジェクトでできること

  • ✅ FastMCP を使用してカスタム MCP サーバーを実装します
  • 🌐 httpx を使用して、api.weather.gov からリアルタイムの気象警報を取得します
  • 📦 現象、深刻度、説明、指示などの構造化された情報を返します
  • 🧠 Claude Desktop と連携します
  • 🌈 MCP Inspector で対話的にテストできます

🧱 技術スタック

ツール/ライブラリ用途
mcp[cli]CLI ツールを備えた MCP サーバーツールキット
httpx非同期 HTTP クライアント
uvモダンな Python パッケージ/依存関係マネージャー
Claude DesktopLLM + MCP 用の AI インターフェース
MCP InspectorMCP エンドポイントをデバッグするための UI

📁 プロジェクト構成

mcpcrashcourse/
├── server/
│   └── weather.py         # MCP server logic (get_alerts)
├── pyproject.toml         # Project metadata + dependencies
├── uv.lock                # Locked versions (auto-generated by uv)
└── README.md              # You're reading it!

🧠 ツールのロジック:get_alerts

@mcp.tool()
async def get_alerts(state: str) -> list[dict]:
    # Fetch weather alerts for a given U.S. state (e.g., 'CA')
    url = "https://api.weather.gov/alerts/active"
    params = {"area": state.upper()}
    async with httpx.AsyncClient() as client:
        response = await client.get(url, params=params)
        data = response.json()

    return [
        {
            "event": alert.get("event"),
            "severity": alert.get("severity"),
            "description": alert.get("description"),
            "instruction": alert.get("instruction"),
        }
        for alert in data.get("features", [])
        if alert.get("properties")
    ]

🛠️ インストールとセットアップ

1. プロジェクトの作成と設定
pipx install uv               # install uv if you haven't
uv init mcpcrashcourse        # start new project
cd mcpcrashcourse
uv add "mcp[cli]" httpx       # add dependencies
2. ツールの追加

get_alerts のロジックを含む weather.py を server/ フォルダーに配置します。


🧪 実行と確認

MCP Inspector で起動
uv run mcp dev server/weather.py

次に、http://localhost:6757 を開いて、以下を行います。

  • get_alerts ツールを表示する
  • "TX" などを入力して呼び出してみる

🤖 Claude Desktop との連携

  1. claude_desktop_config.json を更新します。
{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "<your-project-directory>/server/weather.py"
      ]
    }
  }
}
  1. Claude Desktop を再起動します
  2. 次のプロンプトを入力します。

    「テキサス州の気象警報は何ですか?」

Claude が MCP ツールを呼び出し、構造化された出力を表示します。


💡 MCP とは?

Model Context Protocol は、アプリが LLM に コンテキスト(データ、ツール、プロンプト)を送信する方法を標準化します。「コンテキストプロバイダー」 と LLM レイヤーを分離します。

3 つの主要なプリミティブ:

種類用途例え
ツール関数を実行するPOST エンドポイント
リソース静的データを提供するGET エンドポイント
プロンプト再利用可能なやり取りLLM テンプレート

📎 クレジット


📄 ライセンス

このプロジェクトは MIT License の下でオープンソースとして公開されています。

コメント

MCP は初めてですか?

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

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