mcpField
G
Gemini Function Calling + Model Context Protocol(MCP) Flight Search

Gemini Function Calling + Model Context Protocol(MCP) Flight Search

ローカル
github.comAI・エージェント5611 週間前に更新

Gemini Function Calling + Model Context Protocol(MCP) Flight Search について

Gemini 2.5 Pro の関数呼び出しを用いて、自然言語による航班検索を mcp-flight-search ツールの呼び出しに変換するデモプロジェクトです。Gemini と MCP を組み合わせたい Python 開発者を想定しており、stdio でローカルの MCP サーバーに接続します。

主な機能

  1. 01自然言語による航班検索
  2. 02関数呼び出しによるパラメーターの自動抽出
  3. 03stdio による mcp-flight-search への接続
  4. 04検索結果の整形された JSON 出力
  5. 05環境変数による API キーの設定

活用シーン

  1. 01自然言語による都市間のフライト検索
  2. 02Gemini の関数呼び出しと MCP クライアントの連携方法の学習

MCP 対応

ローカルの mcp-flight-search プロセスを起動し、そのツール一覧を取得して stdio 経由でツールを呼び出す MCP クライアントの例です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Gemini Function Calling + Model Context Protocol(MCP) Flight Search

出力例

アーキテクチャ

このプロジェクトでは、Google の Gemini 2.5 Pro の関数呼び出し機能を使用し、Model Context Protocol(MCP)経由で mcp-flight-search ツールと連携する方法を紹介します。このクライアント実装では、次の方法を説明します。

  1. 標準入出力通信を使用して、ローカルの MCP サーバープロセス(mcp-flight-search)に接続します
  2. Gemini 2.5 Pro に自然言語のプロンプトを入力して、フライトを検索します(例:「2025-05-05 にアトランタからラスベガスへのフライトを探してください」)
  3. 自然言語の入力から、Gemini に正しい関数パラメーターを自動的に判断させます
  4. MCP ツールを使用してフライトを検索します
  5. 検索結果を整形して表示します

特長

  • Gemini 2.5 Pro を使用した自然言語でのフライト検索
  • 関数呼び出しによるパラメーターの自動抽出
  • 標準入出力経由での mcp-flight-search ツールとの連携
  • フライト検索結果を整形した JSON 出力
  • API キーを環境変数で設定

前提条件

このクライアントを実行するには、次のものが必要です。

  1. Python 3.7+
  2. Gemini 用の Google AI Studio API キー
  3. SerpAPI キー(フライト検索ツールで使用)
  4. インストール済みの mcp-flight-search パッケージ

依存関係

このプロジェクトはいくつかの Python パッケージに依存しています。

  • google-generativeai:Gemini 2.5 Pro やその他の Google AI モデルにアクセスするための、Google 公式の Python ライブラリです。

    • Gemini 2.5 Pro のクライアントインターフェースを提供します
    • 関数呼び出し機能を処理します
    • API 認証とリクエストを管理します
  • mcp-sdk-python:Python 用の Model Context Protocol(MCP)SDK です。

    • MCP 通信を管理する ClientSession を提供します
    • サーバープロセスを設定する StdioServerParameters が含まれています
    • ツールの登録と呼び出しを処理します
  • mcp-flight-search:MCP で構築されたフライト検索サービスです。

    • SerpAPI を使用したフライト検索機能を実装しています
    • MCP に準拠したフライト検索ツールを提供します
    • 標準入出力モードと HTTP 通信モードの両方に対応しています
  • asyncio:非同期コードを記述するための Python 標準ライブラリです。

    • 非同期操作とコルーチンを管理します
    • 並行する I/O 操作を処理します
    • MCP クライアントとサーバーの通信に必要です
  • json:Python 標準の JSON エンコーダーおよびデコーダーです。

    • フライト検索結果を解析します
    • 表示用に出力を整形します
    • データのシリアライズとデシリアライズを処理します

セットアップ

  1. リポジトリをクローンします:

    git clone https://github.com/arjunprabhulal/mcp-gemini-search.git
    cd mcp-gemini-search
    
  2. 依存関係をインストールします:

    # 必要な Python ライブラリをインストール
    pip install -r requirements.txt
    # MCP フライト検索ツールをインストール
    pip install mcp-flight-search
    
  3. 環境変数を設定します:

    export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
    export SERP_API_KEY="YOUR_SERPAPI_API_KEY"
    

    プレースホルダーの値を実際の API キーに置き換えてください。

アーキテクチャ

このプロジェクトは複数のコンポーネントを連携させ、自然言語によるフライト検索を実現します。システムの仕組みは次のとおりです。

コンポーネント間のやり取り
  1. ユーザーからクライアント

    • ユーザーが自然言語のクエリを入力します(例:「明日、アトランタ発ラスベガス行きのフライトを探してください」)
    • クライアントスクリプト(client.py)が入力を処理します
  2. クライアントから MCP サーバー

    • クライアントが MCP サーバープロセス(mcp-flight-search)を起動します
    • 標準入出力による通信チャネルを確立します
    • 利用可能なツールとその説明を取得します
  3. クライアントから Gemini 2.5 Pro

    • ユーザーのクエリを送信します
    • 関数呼び出し用のツールの説明を提供します
    • 抽出したパラメーターを含む、構造化された関数呼び出しを受け取ります
  4. クライアントから MCP ツール

    • Gemini から関数呼び出しのパラメーターを受け取ります
    • 適切な MCP ツールをパラメーターとともに呼び出します
    • レスポンスを処理します
  5. MCP サーバーから SerpAPI

    • MCP サーバーが SerpAPI にリクエストを送信します
    • Google Flights のデータを照会します
    • フライト情報を処理して整形します
データフロー
  1. 入力処理

    User Query → Natural Language Text → Gemini 2.5 Pro → Structured Parameters
    
  2. フライト検索

    Parameters → MCP Tool → SerpAPI → Flight Data → JSON Response
    
  3. 結果の処理

    JSON Response → Parse → Format → Display to User
    
通信プロトコル
  1. クライアント ↔ MCP サーバー

    • 標準入出力による通信を使用します
    • ツールの登録と呼び出しには MCP プロトコルに従います
    • 非同期処理を扱います
  2. MCP サーバー ↔ SerpAPI

    • HTTPS リクエスト
    • JSON データの交換
    • API キー認証
  3. クライアント ↔ Gemini 2.5 Pro

    • HTTPS リクエスト
    • 関数呼び出しプロトコル
    • API キー認証
エラー処理

この統合では、複数のレベルでエラーを処理します。

  • 入力の検証
  • API 通信エラー
  • ツールの実行失敗
  • レスポンスの解析エラー
  • データの整形に関する問題

使用方法

クライアントを実行します。

python client.py

スクリプトは次の処理を行います。

  1. MCP フライト検索サーバープロセスを起動します
  2. フライト検索クエリを 2.5 Pro に送信します
  3. Gemini の関数呼び出しを使用して検索パラメーターを抽出します
  4. MCP ツールを介して検索を実行します
  5. 整形された結果を表示します

関連プロジェクト

このクライアントは mcp-flight-search ツールを使用します。ツールは次の場所で入手できます。

作成者

AI/ML と生成 AI に関する記事をさらに読むには、Medium でフォローしてください:@arjun-prabhulal

ライセンス

このプロジェクトは MIT License の下でライセンスされています。

コメント

MCP は初めてですか?

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

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