【MCP Server】LlamaIndex からSingleStore のデータに連携しよう!

CData Connect AI Remote MCP Server を活用して、LlamaIndex ReAct エージェントから SingleStore のデータ にセキュアにリアルタイムでアクセスし、操作する方法をご紹介します。

LlamaIndex は、LLM アプリケーションを構築するためのデータフレームワークです。エージェントや RAG パイプライン、外部データをもとに推論する構造化ワークフローなどを開発できます。LlamaIndex と CData Connect AI を組み込みの MCP Server を通じて統合すれば、カスタムコネクタを書くことなく、エージェントがライブの SingleStore のデータ をネイティブツールとして検出・クエリできるようになります。

CData Connect AI は、SingleStore をはじめとするさまざまなデータソースに接続できる、セキュアでローコードな環境を提供します。複雑な ETL を必要とせず、リアルタイムデータを使ったビジネスアプリケーション間のシームレスな自動化を実現します。

この記事では、CData Connect AI での SingleStore 接続の設定、LlamaIndex への MCP サーバーの登録、そして SingleStore のデータ をリアルタイムでクエリする ReAct エージェントの構築方法をご紹介します。

前提条件

ステップ 1:LlamaIndex 用の SingleStore 接続を設定する

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

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

    データに接続するには、次の接続プロパティが必要です。

    • Server:SingleStore データベースをホスティングしているサーバーのホスト名またはIP アドレス。
    • Port:SingleStore データベースをホスティングしているサーバーのポート。

    また、オプションで以下を設定することもできます。

    • SingleStore:SingleStore Server に接続する場合のデフォルトデータベース。設定されていない場合、すべてのデータベースのテーブルが返されます。

    標準認証

    標準認証で認証するには、次を設定します。

    • User:SingleStore サーバーに認証する際に使われるユーザー。
    • Password:SingleStore サーバーに認証する際に使われるパスワード。

    統合セキュリティを使用した接続

    標準のユーザー名とパスワードを提供する代わりに、Windows 認証を介して信頼されたされたユーザーをサーバーに認証できます。

    SSL 認証

    SSL 認証を活用してセキュアなセッションを介してSingleStore データに接続できます。次の接続プロパティを設定し、データに接続します。

    • SSLClientCert:クライアント証明書のための証明書ストア名に設定。クライアントとサーバーの両方のマシンでトラストストアとキーストアが保持される2-way SSL の場合に使用されます。
    • SSLClientCertPassword:クライアント証明書ストアがパスワードで保護されている場合、この値をストアのパスワードに設定します。
    • SSLClientCertSubject:TLS/SSL クライアント証明書のサブジェクト。ストア内の証明書を検索するために使用されます。
    • SSLClientCertType:クライアントストアの証明書タイプ。
    • SSLServerCert:サーバーが受け入れ可能な証明書。

    SSH 認証

    SSH を使用して、セキュアにリモートマシンにログインできます。SingleStore データにSSH 経由でアクセスするには、次の接続プロパティを設定します。

    • SSHClientCert:クライアント証明書のための証明書ストア名に設定。
    • SSHClientCertPassword:クライアント証明書ストアがパスワードで保護されている場合、この値をストアのパスワードに設定します。
    • SSHClientCertSubject:TLS/SSL クライアント証明書のサブジェクト。ストア内の証明書を検索するために使用されます。
    • SSHClientCertType:クライアントストアの証明書タイプ。
    • SSHPassword:SSH サーバーに認証するためのパスワード。
    • SSHPort:SSH 操作に使用するポート。
    • SSHServer:認証しようとしているSSH 認証サーバー。
    • SSHServerFingerPrint:接続先のホストの検証に使用するSSH サーバーのフィンガープリント。
    • SSHUser:SSH サーバーに認証するためのユーザー名。
  4. 「Save & Test」をクリックします
  5. 認証が完了したら、SingleStore 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します

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

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

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

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

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

続いて、LlamaIndex を CData Connect AI のリモート MCP サーバーに接続し、推論に OpenAI を使用していきましょう。MCP サーバーのエンドポイントと認証情報を

config.py
ファイルで設定します。これらを設定することで、LlamaIndex の MCP ツールスペックが MCP サーバーツールを呼び出せるようになり、OpenAI が自然言語での推論を処理してくれます。

  1. LlamaIndex MCP プロジェクト用のフォルダを作成します
  2. フォルダ内に
    config.py
    llamaindex_agent.py
    の2つの Python ファイルを作成します
  3. config.py
    で、MCP サーバーの URL と、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. llamaindex_agent.py
    で、MCP ツールスペックと ReAct エージェントを設定します:
    """
    LlamaIndex ReAct エージェントと CData Connect AI MCP サーバーを統合します。
    このスクリプトは、MCP ツールを検出して LlamaIndex ツールとしてラップし、
    OpenAI による推論で駆動されるエージェントループを実行します。
    """
    
    import asyncio
    from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
    from llama_index.core.agent.workflow import ReActAgent
    from llama_index.llms.openai import OpenAI
    from config import Config
    
    async def main():
    
        # Connect AI を指す MCP クライアントを初期化
        mcp_client = BasicMCPClient(
            Config.MCP_BASE_URL,
            headers={"Authorization": f"Basic {Config.MCP_AUTH}"},
        )
    
        # MCP サーバーが公開するツール(getCatalogs、queryData など)を検出
        tool_spec = McpToolSpec(client=mcp_client)
        tools = await tool_spec.to_tool_list_async()
        print("検出された MCP ツール:", [t.metadata.name for t in tools])
    
        # ReAct ループを駆動する LLM を設定
        llm = OpenAI(
            model="gpt-4o",
            temperature=0.2,
            api_key="YOUR_OPENAI_API_KEY",  # https://platform.openai.com/
        )
    
        # MCP ツールを使用するエージェントを構築
        agent = ReActAgent(tools=tools, llm=llm)
    
        user_prompt = "[rootadoname]1 で利用可能なテーブルはいくつありますか?"  # 必要に応じて変更してください
        print(f"
    ユーザープロンプト: {user_prompt}")
    
        response = await agent.run(user_prompt)
    
        print("エージェントの最終応答:", response)
    
    if __name__ == "__main__":
        asyncio.run(main())
    

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

このワークフローでは LlamaIndex を CData Connect AI MCP サーバーおよび推論用の OpenAI と組み合わせて使用するため、必要な Python パッケージをインストールしていきましょう。

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

pip install llama-index llama-index-tools-mcp llama-index-llms-openai

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

  1. インストールが完了したら、
    python llamaindex_agent.py
    を実行してスクリプトを実行します
  2. スクリプトは MCP サーバーに接続し、接続されたデータをクエリするために利用可能な CData Connect AI MCP ツールを検出します
  3. プロンプトを入力します(例:「SingleStore で利用可能なテーブルはいくつありますか?」
  4. エージェントは利用可能なツールをもとに推論し、SingleStore に対して
    queryData
    を呼び出して、その結果を返します

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

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

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

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

無料トライアル