【MCP Server】LangChain からJSON のデータに連携しよう!
LangChain は、開発者やデータエンジニア、AI 実践者が LLM、ツール、API、データコネクタを組み合わせて AI 活用アプリケーションやワークフローを構築するためのフレームワークです。LangChain と CData Connect AI を組み込みの MCP Server を通じて統合することで、ワークフローからライブの JSON にリアルタイムで簡単にアクセスして対話できるようになります。
CData Connect AI は、JSONを含む数百のデータソースをMCP経由でAIツールにつなげるクラウドサービスです。接続情報はConnect AI側で一元管理されるため、LangChain エージェントにJSONの認証情報を直接渡すことなくセキュアに連携できます。
この記事では、CData Connect AI での JSON 接続の設定、LangChain への MCP サーバーの登録、そして JSON をリアルタイムでクエリするワークフローの構築方法をご紹介します。
前提条件
- CData Connect AI のアカウント
- Python バージョン 3.10 以上(LangChain および LangGraph パッケージをインストールするため)
- OpenAI API キーを生成して保存
- システムに Visual Studio Code をインストール
ステップ 1:LangChain 用の JSON 接続を設定する
それでは早速、LangChain から JSON にアクセスできるようにしていきましょう。まず、CData Connect AI で JSON 接続を作成します。この接続は、その後リモート MCP サーバーを通じて LangChain に公開されます。
- Connect AI にログインし、「Sources」をクリックして「+ Add Connection」をクリックします
- 利用可能なデータソースから「JSON」を選択します
-
JSON に接続するために必要な認証情報を入力しましょう。
データソースへの認証については、ヘルプドキュメントの「はじめに」を参照してください。CData 製品は、JSON API を双方向データベーステーブルとして、JSON ファイルを読み取り専用ビュー(ローカル ファイル、一般的なクラウドサービスに保存されているファイル、FTP サーバー)としてモデル化します。HTTP Basic、Digest、NTLM、OAuth、FTP などの主要な認証スキームがサポートされています。詳細はヘルプドキュメントの「はじめに」を参照してください。
URI を設定して認証値を入力したら、DataModel を設定してデータ表現とデータ構造をより厳密に一致させます。
DataModel プロパティは、データをどのようにテーブルに表現するかを制御するプロパティで、次の基本設定を切り替えます。
- Document(デフォルト):JSON データのトップレベルのドキュメントビューをモデル化します。CData 製品 は、ネストされたオブジェクト配列を集約されたJSON オブジェクトとして返します。
- FlattenedDocuments:ネストされた配列オブジェクトと親オブジェクトを、単一テーブルに暗黙的に結合します。
- Relational:階層データから個々の関連テーブルを返します。テーブルには、親ドキュメントにリンクする主キーと外部キーが含まれています。
リレーショナル表現の設定についての詳細は、ヘルプドキュメントの「JSON データのモデリング」を参照してください。また、以下の例で使用されているサンプルデータも確認できます。データには人や所有する車、それらの車に行われたさまざまなメンテナンスサービスのエントリが含まれています。
Amazon S3 内のJSON への接続
URI をバケット内のJSON ドキュメントに設定します。さらに、次のプロパティを設定して認証します。
- AWSAccessKey:AWS アクセスキー(username)に設定。
- AWSSecretKey:AWS シークレットキーに設定。
Box 内のJSON への接続
URI をJSON ファイルへのパスに設定します。Box へ認証するには、OAuth 認証標準を使います。 認証方法については、Box への接続 を参照してください。
Dropbox 内のJSON への接続
URI をJSON ファイルへのパスに設定します。Dropbox へ認証するには、OAuth 認証標準を使います。 認証方法については、Dropbox への接続 を参照してください。ユーザーアカウントまたはサービスアカウントで認証できます。ユーザーアカウントフローでは、以下の接続文字列で示すように、ユーザー資格情報の接続プロパティを設定する必要はありません。 URI=dropbox://folder1/file.json; InitiateOAuth=GETANDREFRESH; OAuthClientId=oauthclientid1; OAuthClientSecret=oauthcliensecret1; CallbackUrl=http://localhost:12345;
SharePoint Online SOAP 内のJSON への接続
URI をJSON ファイルを含むドキュメントライブラリに設定します。認証するには、User、Password、およびStorageBaseURL を設定します。
SharePoint Online REST 内のJSON への接続
URI をJSON ファイルを含むドキュメントライブラリに設定します。StorageBaseURL は任意です。指定しない場合、ドライバーはルートドライブで動作します。 認証するには、OAuth 認証標準を使用します。
FTP 内のJSON への接続
URI をJSON ファイルへのパスが付いたサーバーのアドレスに設定します。認証するには、User およびPassword を設定します。
Google Drive 内のJSON への接続
デスクトップアプリケーションからのGoogle への認証には、InitiateOAuth をGETANDREFRESH に設定して、接続してください。詳細はドキュメントの「Google Drive への接続」を参照してください。
- 「Create & Test」をクリックします
- 認証が完了したら、JSON 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します
パーソナルアクセストークン(PAT)を生成する
LangChain は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使用して Connect AI に認証します。アクセス制御の粒度を維持するために、統合ごとに個別の PAT を作成することをおすすめします。
- Connect AI で、右上の歯車アイコンを選択して「Settings」を開きます
- 「Access Tokens」で、「Create PAT」を選択します
- トークンのわかりやすい名前を付けて、「Create」を選択します
- トークンをコピーして安全に保管してください。PAT は作成時にのみ表示されます
これで JSON 接続の設定と PAT の生成が完了しました。LangChain から CData MCP サーバーを通じて JSON に接続する準備が整いました。
注:Connect AI の「Integrations」セクションの「LangChain」から PAT を生成することもできます。「Connect」→「 Create PAT」をクリックするだけで生成できます。
ステップ 2:LangChain で MCP サーバーに接続する
続いて、LangChain をCData Connect AI のリモートMCP サーバー に接続していきましょう。推論に OpenAI(ChatGPT)を使用するには、MCP サーバーエンドポイントと認証情報を config.py ファイルで設定します。これらを設定することで、LangChain が MCP サーバーツールを呼び出せるようになり、OpenAI が自然言語での推論を処理してくれます。
- LangChain MCP 用のフォルダを作成します
- フォルダ内にconfig.py と langchain.py の2つの Python ファイルを作成します。
- 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 エンコード版を作成できます。
- 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 を使用して JSON にプロンプトを送信する(MCP サーバー経由)
- インストールが完了したら、
python langchain.py
を実行してスクリプトを実行します - スクリプトは MCP サーバーに接続し、接続されたデータをクエリするために利用可能な CData Connect AI MCP ツールを検出します
- プロンプトを入力します(例:「JSON で利用可能なテーブルはいくつありますか?」)
- それに応じて、エージェントが結果を返します
CData Connect AI でビジネスシステムのデータ活用を今すぐスタート
いかがでしたか?LangChain から JSON へのデータ接続が簡単に完了したのではないでしょうか。業務に使えそう、と感じてくださった方は、14 日間の無償トライアルで AI ツールからビジネスシステムへのリアルタイムデータ接続をぜひお試しください。