【MCP Server】OpenAI のPython SDK からSingleStore のデータと連携しよう!
OpenAI の Python SDK は、さまざまなデータソースとやり取りできるAI アプリケーションを構築するための強力な機能を提供しています。CData Connect AI のリモートMCP と組み合わせることで、自然言語クエリを通じてSingleStore とリアルタイムでやり取りできるインテリジェントなチャットアプリケーションを構築できます。この記事では、Connect AI のリモートMCP を使用してSingleStore に接続し、会話型AI を通じてSingleStore とやり取りする OpenAI API 対応のPython アプリケーションを作成する方法をご紹介します。
CData Connect AI は、SingleStore のデータに接続するための専用クラウド間インターフェースを提供します。CData Connect AI Remote MCP Server により、Google ADK エージェントと SingleStoreの間でセキュアな通信が可能になります。これにより、ネイティブ対応データベースへのデータレプリケーションを必要とせずに、エージェントから SingleStore のデータの読み取りや操作を実行できます。CData Connect AIは最適化されたデータ処理機能を備えており、フィルタや JOIN を含むサポート対象のすべての SQL 操作を効率的に SingleStoreへ直接送信します。サーバーサイド処理を活用することで、要求されたSingleStore のデータ を迅速に取得できます。
この記事では、自然言語を使用してデータを会話形式で探索(Vibe Query)できる OpenAI 対応 Python アプリケーションの設定方法をご紹介します。Connect AI を使用すれば、SingleStore に加えて、数百の他のデータソースにもアクセスできる AI アシスタントを構築できます。
ステップ 1:OpenAI アプリケーション用の SingleStore 接続を設定する
OpenAI アプリケーションからSingleStore への接続は、CData Connect AI のリモートMCP を通じて実現されます。OpenAI アシスタントからSingleStore とやり取りするために、まず CData Connect AI で SingleStore 接続を作成・設定していきましょう。
- Connect AI にログインし、「Sources」をクリックして、「Add Connection」をクリックします。
- 「Add Connection」パネルから「SingleStore」を選択します
-
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 サーバーに認証するためのユーザー名。
- 「Create & Test」をクリックします
-
「Add SingleStore Connection」ページの「Permissions」タブに移動し、ユーザーベースの権限を更新します。
パーソナルアクセストークンの追加
パーソナルアクセストークン(PAT)は、OpenAI アプリケーションから Connect AI への接続を認証するために使用されます。アクセス制御の粒度を維持するために、サービスごとに個別のPAT を作成することをおすすめします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして、設定ページを開きます。
- 設定ページの「Access Tokens」セクションに移動し、「Create PAT」をクリックします。
-
PAT に名前を付けて「Create」をクリックします。
- パーソナルアクセストークンは作成時にのみ表示されますので、必ずコピーして安全な場所に保管してください。
これで接続の設定とPAT の生成が完了しました。OpenAI アプリケーションからSingleStore に接続する準備が整いました。
ステップ 2:CData Connect AI 用にOpenAI Python アプリケーションを設定する
以下の手順に従って、CData Connect AI に接続するように OpenAI Python アプリケーションを設定していきましょう。事前構築済みのエージェントをこちらから使用できます。または、以下の手順に従って独自のエージェントを作成することもできます。
-
Python 3.8 以上がインストールされていることを確認し、必要な依存関係をインストールします。
pip install openai python-dotenv httpx
-
GitHub から OpenAI MCP クライアントをクローンまたはダウンロードします。
git clone https://github.com/CDataSoftware/openai-mcp-client.git cd openai-mcp-client
-
環境変数を設定します。プロジェクトのルートに .env ファイルを作成し、以下の変数を設定します:
OPENAI_API_KEY=YOUR_OPENAI_API_KEY MCP_SERVER_URL=https://mcp.cloud.cdata.com/mcp MCP_USERNAME=YOUR_EMAIL MCP_PASSWORD=YOUR_PAT OPENAI_MODEL=gpt-4YOUR_OPENAI_API_KEY を OpenAI API キーに、YOUR_EMAIL を Connect AI のメールアドレスに、YOUR_PAT をステップ 1 で作成したパーソナルアクセストークンに置き換えてください。 -
独自のアプリケーションを作成する場合は、CData Connect AI MCP Server に接続するための中核となる実装は以下のとおりです。
import os import asyncio import base64 from dotenv import load_dotenv from mcp_client import MCPServerStreamableHttp, MCPAgent # 環境変数を読み込む load_dotenv() async def main(): """[service] データとやり取りするためのメインチャットループ""" # 設定を取得 api_key = os.getenv('OPENAI_API_KEY') mcp_url = os.getenv('MCP_SERVER_URL', 'https://mcp.cloud.cdata.com/mcp') username = os.getenv('MCP_USERNAME', '') password = os.getenv('MCP_PASSWORD', '') model = os.getenv('OPENAI_MODEL', 'gpt-4') # MCP サーバー用の認証ヘッダーを作成 headers = {} if username and password: auth = base64.b64encode(f"{username}:{password}".encode()).decode() headers = {"Authorization": f"Basic {auth}"} # CData MCP Server に接続 async with MCPServerStreamableHttp( name="CData MCP Server", params={ "url": mcp_url, "headers": headers, "timeout": 30, "verify_ssl": True } ) as mcp_server: #[service] データにアクセスできる AI エージェントを作成 agent = MCPAgent( name="data_assistant", model=model, mcp_servers=[mcp_server], instructions="""あなたは CData Connect AI を通じてSingleStore データにアクセスできるデータクエリアシスタントです。 ユーザーが[service] をリアルタイムで探索・クエリできるようサポートしてください。 利用可能な MCP ツールを使用して以下を実行できます: - 利用可能なデータベースとスキーマの一覧表示 - テーブル構造の探索 - SQL クエリの実行 - データに関する洞察の提供 実行内容を常に説明し、結果を明確にフォーマットしてください。""", api_key=api_key ) await agent.initialize() print(f"接続完了!{len(agent._tools_cache)} 個のツールが利用可能です。") print(" [service] と会話してみましょう(終了するには 'exit' と入力): ") # 対話型チャットループ conversation = [] while True: user_input = input("あなた: ") if user_input.lower() in ['exit', 'quit']: break conversation.append({"role": "user", "content": user_input}) print("アシスタント: ", end="", flush=True) response = await agent.run(conversation) print(response["content"]) conversation.append({"role": "assistant", "content": response["content"]}) if __name__ == "__main__": asyncio.run(main()) -
OpenAI アプリケーションを実行します:
python client.py
- 自然言語クエリを使用してSingleStore とやり取りを開始してください。これで、OpenAI アシスタントは CData Connect AI MCP Server を通じてSingleStore にアクセスできるようになりました。
ステップ 3:ライブSingleStore データへのアクセスを備えたインテリジェントアプリケーションを構築する
OpenAI Python アプリケーションを設定して CData Connect AI に接続できたので、自然言語を使用してSingleStore とやり取りする高度な AI アシスタントを構築できます。MCP 統合により、OpenAI の高度な言語モデルを通じて、アプリケーションに強力なデータアクセス機能が提供されます。
アシスタントで使用可能な MCP ツール
OpenAI アシスタントは、以下の CData Connect AI MCP ツールにアクセスできます:
- queryData:接続されたデータソースに対して SQL クエリを実行
- execData:ストアドプロシージャを実行
- getCatalogs:利用可能なデータベース接続を取得
- getSchemas:特定のカタログのデータベーススキーマを一覧表示
- getTables:スキーマ内のテーブルを一覧表示
- getColumns:特定のテーブルの列情報を取得
- getPrimaryKeys:プライマリキー情報を取得
- getIndexes:テーブルのインデックス情報を取得
- getProcedures:利用可能なストアドプロシージャを一覧表示
ユースケース例
ライブのSingleStore アクセスを備えた OpenAI 対応アプリケーションでできることの例をいくつかご紹介します:
- 会話型分析:自然言語を使用して複雑なビジネスの質問に答えるチャットインターフェースを構築
- 自動化レポート:リアルタイムデータクエリに基づいて動的なレポートとサマリーを生成
- データディスカバリーアシスタント:SQL の知識がなくてもデータ構造を探索・理解できるようユーザーをサポート
- インテリジェントデータモニター:トレンドや異常を積極的に特定する AI アシスタントを作成
- カスタムクエリビルダー:会話型のやり取りを通じて複雑なクエリを作成できるように
アシスタントとのやり取り
実行すると、自然言語を通じて OpenAI アシスタントとやり取りできます。クエリの例:
- 「利用可能なすべてのデータベースを表示して」
- 「sales データベースにはどんなテーブルがある?」
- 「売上トップ 10 の顧客をリストアップして」
- 「先月のすべての注文を検索して」
- 「過去四半期の売上トレンドを分析して」
- 「customer テーブルの構造は?」
OpenAI アシスタントは、これらの自然言語クエリを自動的に適切な SQL クエリに変換し、CData Connect AI MCP Server を通じてSingleStore データに対して実行します。複雑な SQL を記述したり、基盤となるデータ構造を理解したりすることなく、インテリジェントな洞察を提供できます。
高度な機能
OpenAI MCP 統合は、以下の高度な機能をサポートしています:
- コンテキスト認識:アシスタントは会話のコンテキストを維持し、フォローアップ質問に対応
- マルチターン会話:反復的な対話を通じて複雑なクエリを構築
- インテリジェントエラー処理:クエリで問題が発生した場合に役立つ提案を提供
- データインサイト:GPT の分析機能を活用してパターンやトレンドを特定
- 柔軟なフォーマット:さまざまな形式(テーブル、サマリー、JSON など)で結果をリクエスト
CData Connect AI でビジネスシステムのデータ活用を今すぐスタート
いかがでしたか?Mistral AI からSingleStore へのデータ接続が簡単に完了したのではないでしょうか。業務に使えそう、と感じてくださった方は、14 日間の無償トライアルで AI ツールからビジネスシステムへのリアルタイムデータ接続をぜひお試しください。