【MCP Server】LangChain からCvent のデータに連携しよう!
LangChain は、開発者やデータエンジニア、AI 実践者が LLM、ツール、API、データコネクタを組み合わせて AI 活用アプリケーションやワークフローを構築するためのフレームワークです。LangChain と CData Connect AI を組み込みの MCP Server を通じて統合することで、ワークフローからライブの Cvent にリアルタイムで簡単にアクセスして対話できるようになります。
CData Connect AI は、Cventを含む数百のデータソースをMCP経由でAIツールにつなげるクラウドサービスです。接続情報はConnect AI側で一元管理されるため、LangChain エージェントにCventの認証情報を直接渡すことなくセキュアに連携できます。
この記事では、CData Connect AI での Cvent 接続の設定、LangChain への MCP サーバーの登録、そして Cvent をリアルタイムでクエリするワークフローの構築方法をご紹介します。
前提条件
- CData Connect AI のアカウント
- Python バージョン 3.10 以上(LangChain および LangGraph パッケージをインストールするため)
- OpenAI API キーを生成して保存
- システムに Visual Studio Code をインストール
ステップ 1:LangChain 用の Cvent 接続を設定する
それでは早速、LangChain から Cvent にアクセスできるようにしていきましょう。まず、CData Connect AI で Cvent 接続を作成します。この接続は、その後リモート MCP サーバーを通じて LangChain に公開されます。
- Connect AI にログインし、「Sources」をクリックして「+ Add Connection」をクリックします
- 利用可能なデータソースから「Cvent」を選択します
-
Cvent に接続するために必要な認証情報を入力しましょう。
Cvent への認証を行う前に、ワークスペースとOAuth アプリケーションを作成する必要があります。
ワークスペースの作成
ワークスペースを作成するには:
- Cvent にサインインし、App Switcher(ページ右上の青いボタン) -> Admin に移動します。
- Admin メニューから、Integrations -> REST API に移動します。
- Developer Management の新しいタブが立ち上がります。新しいタブでManage API Access をクリックします。
- Workspace を作成し、名前を付けます。開発者にアクセスさせたいスコープを選択します。スコープは、開発者がアクセスできるデータドメインを制御します。
- All を選択すると、開発者は任意のスコープ、およびREST API にこれから追加されるスコープを選択できます。
- Custom を選択すると、開発者がOAuth アプリで選択できるスコープを、選択したスコープに制限できます。CData 製品によって公開されるすべてのテーブルにアクセスするには、次のスコープを設定する必要があります。
event/attendees:read event/attendees:write event/contacts:read event/contacts:write event/custom-fields:read event/custom-fields:write event/events:read event/events:write event/sessions:delete event/sessions:read event/sessions:write event/speakers:delete event/speakers:read event/speakers:write budget/budget-items:read budget/budget-items:write exhibitor/exhibitors:read exhibitor/exhibitors:write survey/surveys:read survey/surveys:write
OAuth アプリケーションの作成
Workspace を設定して招待すると、開発者はサインアップしてカスタムOAuth アプリを作成できます。手順については、ヘルプドキュメントのカスタムOAuth アプリケーションの作成を参照してください。
Cvent への接続
OAuth アプリケーションを作成したら、次の接続プロパティを設定してCvent に接続します。
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
- OAuthClientId:OAuth アプリケーションに関連付けられたClient ID。これは、Cvent Developer Portal のApplications page ページにあります。
- OAuthClientSecret:OAuth アプリケーションに関連付けられたClient secret。これは、Cvent Developer Portal のApplications page ページにあります。
- 「Create & Test」をクリックします
- 認証が完了したら、Cvent 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します
パーソナルアクセストークン(PAT)を生成する
LangChain は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使用して Connect AI に認証します。アクセス制御の粒度を維持するために、統合ごとに個別の PAT を作成することをおすすめします。
- Connect AI で、右上の歯車アイコンを選択して「Settings」を開きます
- 「Access Tokens」で、「Create PAT」を選択します
- トークンのわかりやすい名前を付けて、「Create」を選択します
- トークンをコピーして安全に保管してください。PAT は作成時にのみ表示されます
これで Cvent 接続の設定と PAT の生成が完了しました。LangChain から CData MCP サーバーを通じて Cvent に接続する準備が整いました。
注: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 を使用して Cvent にプロンプトを送信する(MCP サーバー経由)
- インストールが完了したら、
python langchain.py
を実行してスクリプトを実行します - スクリプトは MCP サーバーに接続し、接続されたデータをクエリするために利用可能な CData Connect AI MCP ツールを検出します
- プロンプトを入力します(例:「Cvent で利用可能なテーブルはいくつありますか?」)
- それに応じて、エージェントが結果を返します
CData Connect AI でビジネスシステムのデータ活用を今すぐスタート
いかがでしたか?LangChain から Cvent へのデータ接続が簡単に完了したのではないでしょうか。業務に使えそう、と感じてくださった方は、14 日間の無償トライアルで AI ツールからビジネスシステムへのリアルタイムデータ接続をぜひお試しください。