mcpField
🌦
🌦️ MCP Weather Scraper

🌦️ MCP Weather Scraper

ローカル
github.com/EXPESRazaブラウザ自動化080 週間前に更新

🌦️ MCP Weather Scraper について

MCP Weather Scraperは、LLMとMCPツールの連携を試す開発者向けのFastAPI製天気情報取得プロトタイプです。公開ウェブ情報を解析し、OpenAIで天気データを構造化します。

主な機能

  1. 01ウェブ上の天気情報の取得と解析
  2. 02OpenAIによるデータの構造化
  3. 03MCPツールとしての天気照会
  4. 04重複リクエストを避けるキャッシュ
  5. 05結果と指標を表示するStreamlit画面

活用シーン

  1. 01場所を指定した最新天気の照会
  2. 02ウェブ上の天気情報の構造化
  3. 03リクエスト時間とOpenAIのトークン使用量の確認

MCP 対応

MCPサーバーは、天気を照会するツールをMCPクライアントに公開します。公開ウェブ情報を取得し、構造化した天気データを返します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

🌦️ MCP Weather Scraper

このプロジェクトは、Model Context Protocol (MCP) の実験的な実装です。** OpenAI** 経由の軽量な LLM と FastAPI を使用して、公開されているウェブソースからリアルタイムの天気情報を取得し、構造化します。LLM がツールとどのように連携し、構造化されていないウェブデータの取得や推論を行うインテリジェントなエージェントとして機能できるかを探ることを目的としています。


Python License Issues


🚀 主な機能

  • ✅ ブラウザー検索による天気情報のスクレイピングに対応した、MCP 準拠のサーバー
  • ✅ OpenAI LLM(例:gpt-3.5-turbo)との連携
  • ✅ FastAPI サーバーが、呼び出し可能な MCP ツールとして天気情報を提供
  • ✅ パフォーマンスに優れた selectolax による HTML の自動解析
  • ✅ LLM が構造化されていないウェブコンテンツを、構造化スキーマに抽出
  • ✅ ユーザー操作用の Streamlit アプリのフロントエンド
  • ✅ functools.lru_cache を使ったレスポンスのキャッシュ

🧠 始める前に復習しましょう

このリポジトリで押さえておきたい 5 つの概念

🧩 概念🔍 概要⚙️ 重要な理由
Model Context Protocol (MCP)LLM のツール呼び出し用の新しいプロトコル構造化された AI エージェント間の通信を実現します
UvicornPython ウェブアプリ向けの高速 ASGI サーバーFastAPI ベースの MCP サーバーをホストします
Selectolax高速な HTML パーサー天気データを効率よくスクレイピングし、抽出します
functools.lru_cache関数呼び出しをキャッシュする Python 組み込みデコレーターデータの再取得を避けてパフォーマンスを向上させます
Token Usage Metrics (OpenAI)LLM の呼び出しで使用されたトークン数に関する情報コストの追跡やプロンプト設計の最適化に役立ちます

💡 Python や API に詳しい方でも、これらのツールは最先端の AI スタックエンジニアリングを支えるものなので、ぜひ簡単に確認してみてください!


📊 トークン使用量とパフォーマンス指標

Streamlit UI には、次の情報が表示されるようになりました。

  • ⏱️ 応答時間
    天気情報の取得と処理にかかった時間

  • 🧠 プロンプトトークン
    LLM のプロンプトで使用されたトークン数

  • 💬 完了トークン
    LLM のレスポンスで生成されたトークン数

  • 🔢 合計トークン数
    リクエストあたりのトークン総数。コストの追跡に役立ちます

これらは各結果カードの下に、見やすく表示されます。


🖥️ Streamlit アプリのプレビュー

README の画像


必要条件

  • Python 3.9 以上
  • requirements.txt に記載された依存関係

🛠️ セットアップ

  1. リポジトリをクローンする
    git clone https://github.com/your-username/mcp_weather_scraper.git
    cd mcp_weather_scraper
    
  2. 仮想環境を作成して有効化する
    python -m venv .venv
    .venv\Scripts\activate  # On Windows
    
  3. 依存関係をインストールする
    pip install -r requirements.txt
    
  4. 環境変数を設定する ルートディレクトリに .env ファイルを作成し、OpenAI API キーを追加します
    OPENAI_API_KEY=your_openai_api_key
    
  5. サーバーを起動する
    uvicorn server:app --reload
    
    サーバーは http://localhost:8000 で利用できます。 API ドキュメントには、次の URL からアクセスできます。
  6. リクエストを送信する
    python client.py
    
    または
    curl -X POST http://localhost:8000/weather -H "Content-Type: application/json" -d '{"location": "Seattle"}'
    
    このスクリプトは、次のペイロードで POST リクエストを送信します。
    {
      "location": "Seattle"
    }
    
    サーバーは、次のような天気データを JSON 形式で返します。
    {
      "location": "Seattle",
      "temperature": "15°C",
      "humidity": "80%",
      "air_quality": "Good",
      "condition": "Cloudy"
    }
    

📦 フォルダー構成

.
📁 mcp_weather_scraper/
│
├── assets/
│   └── streamlit_screenshot.png
├── server.py          # MCP-compatible tool server
├── client.py          # MCP client that interacts with model + tools
├── data_models.py     # Pydantic schemas for request/response
├── utils.py           # HTML cleaning, scraping, etc.
├── requirements.txt
└── .env

📄 ライセンス

This project is licensed under the MIT License.

コメント

MCP は初めてですか?

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

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