MCP Server Practice について
MCP Server Practice は、LinkedIn のプロフィールや天気情報を取得する Python 製 MCP サーバー群です。プロフィール検索、気象警報、予報のツールを提供します。
主な機能
- 01LinkedInプロフィールの取得
- 02気象警報の取得
- 03天気予報の取得
- 04非同期HTTPリクエスト
活用シーン
- 01LinkedInプロフィールの検索
- 02気象警報の確認
- 03天気予報の取得
MCP 対応
MCP サーバーを実装し、MCP クライアントに LinkedIn プロフィール検索と天気情報のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーの実践
このリポジトリには、LinkedIn のプロフィール情報のスクレイピングと気象データの取得を行う Model Context Protocol(MCP)サーバーの実装が含まれています。MCP フレームワークにより、AI サービスをシームレスに統合し、通信できます。
概要
- LinkedIn プロフィールスクレイパー:Fresh LinkedIn Profile Data API を使用して LinkedIn のプロフィールデータを取得します。
- 気象データサービス:National Weather Service(NWS)API を使用して気象警報と予報を取得します。
前提条件
- Python 3.7+
- 非同期 HTTP リクエスト用の
httpx - 環境変数の管理用の
python-dotenv - MCP サーバーの実装用の
mcp
インストール
-
リポジトリをクローンします:
git clone https://github.com/mybarefootstory/MCP-Server-Practice-2.git cd MCP-Server-Practice-2 -
依存関係をインストールします:
pip install httpx python-dotenv mcp -
環境変数を設定します:
- ルートディレクトリに
.envファイルを作成します。 - RapidAPI キーを追加します:
RAPIDAPI_KEY=your_rapidapi_key_here
- ルートディレクトリに
LinkedIn プロフィールスクレイパー
説明
Fresh LinkedIn Profile Data API を使用して LinkedIn のプロフィールデータを取得します。サーバーは FastMCP で初期化され、プロフィール情報を取得するリクエストを待ち受けます。
コードスニペット
from mcp.server.fastmcp import FastMCP
import httpx
import os
from dotenv import load_dotenv
load_dotenv()
RAPIDAPI_KEY = os.getenv("RAPIDAPI_KEY")
mcp = FastMCP("linkedin_profile_scraper")
async def get_linkedin_data(linkedin_url: str) -> dict:
# Fetch LinkedIn profile data
...
@mcp.tool()
async def get_profile(linkedin_url: str) -> str:
# Get LinkedIn profile data
...
if __name__ == "__main__":
mcp.run(transport="stdio")
気象データサービス
説明
NWS API を使用して気象警報と予報を取得します。サーバーは FastMCP で初期化され、警報と予報を取得するためのツールを提供します。
コードスニペット
from mcp.server.fastmcp import FastMCP
import httpx
mcp = FastMCP("weather")
async def make_nws_request(url: str) -> dict:
# Make a request to the NWS API
...
@mcp.tool()
async def get_alerts(state: str) -> str:
# Get weather alerts for a US state
...
@mcp.tool()
async def get_forecast(latitude: float, longitude: float) -> str:
# Get weather forecast for a location
...
if __name__ == "__main__":
mcp.run(transport='stdio')
使用方法
- LinkedIn プロフィールスクレイパー:サーバーを実行し、
get_profileツールを使用して LinkedIn のデータを取得します。 - 気象データサービス:サーバーを実行し、
get_alertsとget_forecastツールを使用して気象情報を取得します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。