LangChainからPingOneのデータに接続する方法|MCP接続3ステップ

加藤龍彦
加藤龍彦
デジタルマーケティング
LangChainからPingOneのデータにMCP接続する方法を3ステップで解説。自然言語クエリでデータ探索できるAIワークフローを構築できます。

LangChain は、開発者やデータエンジニア、AI 実践者が LLM、ツール、API、データコネクタを組み合わせて AI 活用アプリケーションやワークフローを構築するためのフレームワークです。LangChain と CData Connect AI を組み込みの MCP Server を通じて統合することで、ワークフローからライブの PingOne にリアルタイムで簡単にアクセスして対話できるようになります。

CData Connect AI は、PingOneを含む数百のデータソースをMCP経由でAIツールにつなげるクラウドサービスです。接続情報はConnect AI側で一元管理されるため、LangChain エージェントにPingOneの認証情報を直接渡すことなくセキュアに連携できます。

この記事では、CData Connect AI での PingOne 接続の設定、LangChain への MCP サーバーの登録、そして PingOne をリアルタイムでクエリするワークフローの構築方法をご紹介します。

前提条件

ステップ 1:LangChain 用の PingOne 接続を設定する

それでは早速、LangChain から PingOne にアクセスできるようにしていきましょう。まず、CData Connect AI で PingOne 接続を作成します。この接続は、その後リモート MCP サーバーを通じて LangChain に公開されます。

  1. Connect AI にログインし、「Sources」をクリックして「+ Add Connection」をクリックします
  2. 接続の追加
  3. 利用可能なデータソースから「PingOne」を選択します
  4. データソースの選択
  5. PingOne に接続するために必要な認証情報を入力しましょう。

    PingOne に接続するには以下のプロパティを設定します。

    • Region:自身のPingOne 組織のデータがホスティングされている地域。
    • AuthScheme:PingOne に接続する際に使用する認証の種類。
    • WorkerAppEnvironmentId (デフォルトのPingOne ドメインを使用する場合に必要)、またはAuthorizationServerURL のいずれかで、下で説明するように設定します。

    WorkerAppEnvironmentId の設定

    WorkerAppEnvironmentId は、Worker アプリケーションが存在するPingOne 環境のID です。 このパラメータは、環境がデフォルトのPingOne ドメイン(auth.pingone)を利用している場合のみ使用されます。 これは、ヘルプドキュメントのカスタムOAuth アプリケーションの作成で説明するように、PingOne への認証に使用するカスタムOAuth アプリケーションを作成した後に設定します。

    はじめに、このプロパティの値を見つけます。

    1. 自身のPingOne 組織のホームページからナビゲーションサイドバーに移動し、Environments をクリックします。
    2. OAuth / Worker のカスタムアプリケーションを作成した環境(通常はAdministrators)を見つけ、Manage Environment をクリックします。 環境のホームページが表示されます。
    3. 環境のホームページのナビゲーションサイドバーで、Applications をクリックします。
    4. リストから、OAuth またはWorker アプリケーションの詳細を見つけます。
    5. Environment ID フィールドの値をコピーします。 以下の例に似たものになるはずです:
      WorkerAppEnvironmentId='11e96fc7-aa4d-4a60-8196-9acf91424eca'

    次に、WorkerAppEnvironmentId をEnvironment ID フィールドの値に設定します。

    AuthorizationServerURL の設定

    AuthorizationServerURL は、お使いのアプリケーションが配置されている環境のPingOne 認可サーバーのベースURL です。 このプロパティは、PingOne プラットフォームAPI ドキュメントで説明されているように、環境にカスタムドメインを設定した場合にのみ使用されます。 Custom Domains を参照してください。

    OAuth でのPingOne への認証

    PingOne はOAuth とOAuthClient 認証の両方をサポートしています。 上述の設定手順に加え、OAuth またはOAuthCliet 認証をサポートするために、さらに2つの手順を完了する必要があります。

    • ヘルプドキュメントのカスタムOAuth アプリケーションの作成で説明するように、カスタムOAuth アプリケーションを作成して設定します。
    • ドライバーがデータモデル内のエンティティにアクセスできるようにするには、ヘルプドキュメントのAdministrator Roles での説明のとおり、使用するアドミンユーザー / ワーカーアプリケーションに対して正しいロールを設定していることを確認してください。
    • 以下のサブセクションで説明されているように、選択した認証スキームと認証フローに適切なプロパティを設定します。

    OAuth(認可コードグラント)

    AuthScheme をOAuth に設定します。

    デスクトップアプリケーション

    OAuth アクセストークンの取得およびリフレッシュ

    以下を設定して、接続してください。

    • InitiateOAuth:GETANDREFRESH。繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要をなくすには、InitiateOAuth を使用します。
    • OAuthClientId:カスタムOAuth アプリケーションを作成した際に取得したClient ID。
    • OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に取得したClient Secret。
    • CallbackURL:カスタムOAuth アプリケーションの登録時に定義したリダイレクトURI。例:https://localhost:3333

    接続すると、CData 製品 はデフォルトブラウザでPingOne のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。 ドライバーはこれでOAuth プロセスを完了します。

    1. ドライバーはPingOne からアクセストークンを取得し、それを使ってデータをリクエストします。
    2. OAuth 値はOAuthSettingsLocation で指定された場所に保存され、接続間で永続化されるようにします。

    ドライバーはアクセストークンの期限が切れると自動的にリフレッシュします。

    Web アプリケーションやヘッドレスマシン、クライアントクレデンシャルグラントを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。

    接続の設定(Salesforce の例)
  6. 「Create & Test」をクリックします
  7. 認証が完了したら、PingOne 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します
  8. 権限の更新

パーソナルアクセストークン(PAT)を生成する

LangChain は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使用して Connect AI に認証します。アクセス制御の粒度を維持するために、統合ごとに個別の PAT を作成することをおすすめします。

  1. Connect AI で、右上の歯車アイコンを選択して「Settings」を開きます
  2. 「Access Tokens」で、「Create PAT」を選択します
  3. トークンのわかりやすい名前を付けて、「Create」を選択します
  4. 新しい PAT の作成
  5. トークンをコピーして安全に保管してください。PAT は作成時にのみ表示されます

これで PingOne 接続の設定と PAT の生成が完了しました。LangChain から CData MCP サーバーを通じて PingOne に接続する準備が整いました。

注:Connect AI の「Integrations」セクションの「LangChain」から PAT を生成することもできます。「Connect」→「 Create PAT」をクリックするだけで生成できます。

LangChain 統合ツールに移動して「Connect」をクリックします Connect AI PAT を作成します

ステップ 2:LangChain で MCP サーバーに接続する

続いて、LangChain をCData Connect AI のリモートMCP サーバー に接続していきましょう。推論に OpenAI(ChatGPT)を使用するには、MCP サーバーエンドポイントと認証情報を config.py ファイルで設定します。これらを設定することで、LangChain が MCP サーバーツールを呼び出せるようになり、OpenAI が自然言語での推論を処理してくれます。

  1. LangChain MCP 用のフォルダを作成します
  2. フォルダ内にconfig.py と langchain.py の2つの Python ファイルを作成します。
  3. config.py で、MCP サーバーの認証と URL を定義する Config クラスを作成します。Base64 エンコードされた CData Connect AI のユーザー名と PAT(前提条件で取得したもの)を指定する必要があります。
     
    class Config: 
          MCP_BASE_URL = "https://mcp.cloud.cdata.com/mcp"   # MCP Server の URL 
          MCP_AUTH = "base64encoded(EMAIL:PAT)"   # Base64 エンコードされた Connect AI の Email:PAT 
    

    注:Base64 エンコードツールを使用して、MCP_AUTH の Base64 エンコード版を作成できます。

  4. langchain.py で、MCP サーバーと MCP クライアントを設定して、ツールとプロンプトを呼び出します:
     
    """ 
    LangChain ReAct エージェントと CData Connect AI MCP サーバーを統合します。
    このスクリプトは、ツールの取得、フィルタリング、LLM を使用したエージェントベースの推論を実行します。
    """ 
    
    import asyncio 
    from langchain_mcp_adapters.client import MultiServerMCPClient 
    from langchain_openai import ChatOpenAI 
    from langgraph.prebuilt import create_react_agent 
    from config import Config 
    
    async def main(): 
        # 1 つ以上のサーバー URL で MCP クライアントを初期化
        mcp_client = MultiServerMCPClient( 
            connections={ 
                "default": {  # お好きな名前でOKです
                    "transport": "streamable_http", 
                    "url": Config.MCP_BASE_URL, 
                    "headers": {"Authorization": f"Basic {Config.MCP_AUTH}"}, 
                } 
            } 
        ) 
    
        # サーバーによって公開されているリモート MCP ツールを読み込む
        all_mcp_tools = await mcp_client.get_tools() 
        print("検出された MCP ツール:", [tool.name for tool in all_mcp_tools]) 
    
        # ReAct スタイルのエージェントを作成して実行
        llm = ChatOpenAI( 
            model="gpt-4o",  
            temperature=0.2, 
            api_key="YOUR_OPEN_API_KEY"  # ここに OpenAI API キーを使用します(https://platform.openai.com/ で確認できます)
        ) 
    
        agent = create_react_agent(llm, all_mcp_tools) 
    
        user_prompt = "[rootadoname]1 で利用可能なテーブルはいくつありますか?"  # 必要に応じてプロンプトを変更してください
        print(f"
    ユーザープロンプト: {user_prompt}") 
    
        # エージェントに MCP ツールを使用するように求めるプロンプトを送信
        response = await agent.ainvoke( 
            {"messages": [{"role": "user", "content": (user_prompt),}]} 
        ) 
    
        # エージェントの最終応答を出力
        final_msg = response["messages"][-1].content 
        print("エージェントの最終応答:", final_msg) 
    
    if __name__ == "__main__": 
        asyncio.run(main()) 
    

ステップ 3:LangChain と LangGraph パッケージをインストールする

それでは、LangChain を CData Connect AI MCP と組み合わせて使用し、推論に OpenAI を統合するために必要なPython パッケージをインストールしていきましょう。

プロジェクトのターミナルで次のコマンドを実行してください。

 
pip install langchain-mcp-adapters langchain-openai langgraph 

ステップ 4:LangChain を使用して PingOne にプロンプトを送信する(MCP サーバー経由)

  1. インストールが完了したら、
    python langchain.py
    を実行してスクリプトを実行します
  2. スクリプトは MCP サーバーに接続し、接続されたデータをクエリするために利用可能な CData Connect AI MCP ツールを検出します
  3. プロンプトを入力します(例:「PingOne で利用可能なテーブルはいくつありますか?」)
  4. それに応じて、エージェントが結果を返します
  5. LangChain エージェントは、入力したプロンプトに基づいて結果を返します

CData Connect AI でビジネスシステムのデータ活用を今すぐスタート

いかがでしたか?LangChain から PingOne へのデータ接続が簡単に完了したのではないでしょうか。業務に使えそう、と感じてくださった方は、14 日間の無償トライアルで AI ツールからビジネスシステムへのリアルタイムデータ接続をぜひお試しください。

はじめる準備はできましたか?

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル