【MCP Server】LangChain からAcumatica のデータに連携しよう!
LangChain は、開発者やデータエンジニア、AI 実践者が LLM、ツール、API、データコネクタを組み合わせて AI 活用アプリケーションやワークフローを構築するためのフレームワークです。LangChain と CData Connect AI を組み込みの MCP Server を通じて統合することで、ワークフローからライブの Acumatica にリアルタイムで簡単にアクセスして対話できるようになります。
CData Connect AI は、Acumatica のデータに接続するための専用クラウド間インターフェースを提供します。CData Connect AI Remote MCP Server により、Google ADK エージェントと Acumaticaの間でセキュアな通信が可能になります。これにより、ネイティブ対応データベースへのデータレプリケーションを必要とせずに、エージェントから Acumatica のデータの読み取りや操作を実行できます。CData Connect AIは最適化されたデータ処理機能を備えており、フィルタや JOIN を含むサポート対象のすべての SQL 操作を効率的に Acumaticaへ直接送信します。サーバーサイド処理を活用することで、要求されたAcumatica のデータ を迅速に取得できます。
この記事では、CData Connect AI での Acumatica 接続の設定、LangChain への MCP サーバーの登録、そして Acumatica をリアルタイムでクエリするワークフローの構築方法をご紹介します。
前提条件
- CData Connect AI のアカウント
- Python バージョン 3.10 以上(LangChain および LangGraph パッケージをインストールするため)
- OpenAI API キーを生成して保存
- システムに Visual Studio Code をインストール
ステップ 1:LangChain 用の Acumatica 接続を設定する
それでは早速、LangChain から Acumatica にアクセスできるようにしていきましょう。まず、CData Connect AI で Acumatica 接続を作成します。この接続は、その後リモート MCP サーバーを通じて LangChain に公開されます。
- Connect AI にログインし、「Sources」をクリックして「+ Add Connection」をクリックします
- 利用可能なデータソースから「Acumatica」を選択します
-
Acumatica に接続するために必要な認証情報を入力しましょう。
Acumatica 接続プロパティの取得・設定方法
Acumatica への接続
Acumatica データソースに接続するには、次の接続プロパティを指定する必要があります。
- URL:(必須)Acumatica ERP インスタンスのベースURL。例:https://domain.acumatica.com/。
- Schema:(オプション)異なるデータを含む2つのスキーマがあります。デフォルトはREST で、Acumatica REST コントラクトベースのAPI を使用し、OData スキーマはAcumatica OData API を使用します。OData スキーマはAcumatica Generic Inquiries へのクエリに使用されます。
- Company:(一部必須)会社名またはテナント名に設定。Schema がOData に設定されている場合は必須です。
- EndpointVersion:(オプション)Web Services エンドポイントのバージョン。例:24.200.001。これはREST スキーマにのみ適用されます。
- EndpointName:(オプション)Web Services エンドポイントの名前。例:Default。これはREST スキーマにのみ適用されます。
Acumatica への認証
Acumatica データソースへの接続に使用できる認証方法は2つあります。Basic およびOAuth です。 Basic 認証では、AuthScheme をBasic に設定し、User とPassword をログイン資格情報に設定します。 OAuth 認証については、ヘルプドキュメントの「接続の確立」セクションにある「OAuth」を参照してください。
- 「Create & Test」をクリックします
- 認証が完了したら、Acumatica 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します
パーソナルアクセストークン(PAT)を生成する
LangChain は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使用して Connect AI に認証します。アクセス制御の粒度を維持するために、統合ごとに個別の PAT を作成することをおすすめします。
- Connect AI で、右上の歯車アイコンを選択して「Settings」を開きます
- 「Access Tokens」で、「Create PAT」を選択します
- トークンのわかりやすい名前を付けて、「Create」を選択します
- トークンをコピーして安全に保管してください。PAT は作成時にのみ表示されます
これで Acumatica 接続の設定と PAT の生成が完了しました。LangChain から CData MCP サーバーを通じて Acumatica に接続する準備が整いました。
注: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 を使用して Acumatica にプロンプトを送信する(MCP サーバー経由)
- インストールが完了したら、
python langchain.py
を実行してスクリプトを実行します - スクリプトは MCP サーバーに接続し、接続されたデータをクエリするために利用可能な CData Connect AI MCP ツールを検出します
- プロンプトを入力します(例:「Acumatica で利用可能なテーブルはいくつありますか?」)
- それに応じて、エージェントが結果を返します
CData Connect AI でビジネスシステムのデータ活用を今すぐスタート
いかがでしたか?LangChain から Acumatica へのデータ接続が簡単に完了したのではないでしょうか。業務に使えそう、と感じてくださった方は、14 日間の無償トライアルで AI ツールからビジネスシステムへのリアルタイムデータ接続をぜひお試しください。