背景
AIツールは急速に発展しており(例えば、グラフィカルツールのCursor、Windsurf、Traeや、コマンドラインツールのClaude Code、Gemini CLI、Qwen Codeなど)、Agentモードのサポートによりその機能は非常に強力です。しかし、AIツールは直接データベースにアクセスできず、データベースとの間には依然として「橋渡し」が必要です。このような橋渡しを実現するためにMCPプロトコルが用いられています。OceanBase MCP ServerはMCPプロトコルを介してAIツールとやり取りし、ツールにデータベースから直接データを読み取る能力を付与します。
従来のデータ分析では、「ユーザー分析」、「商品分析」、「注文分析」、「ユーザー行動分析」など、開発者がバックエンドプラットフォームを開発してデータを読み取り、フロントエンドページで表示する必要がありました。BI分析ツールを使用する場合でも、時折SQL関連の知識が求められます。データは単に表示されるだけであり、データに含まれるロジックや、業務がデータに基づいてどのように変更されるべきかについては、依然としてデータ分析担当者の洞察に依存しています。
AIツール、MCP、LLMの組み合わせにより、データ分析の形態は変化します。分析担当者は開発者の関与やSQL知識を必要とせず、単にニーズをこれらのAIツールに伝えるだけで、望む結果を得ることができます。美しいチャートを生成し、初期のデータ洞察を提供することも可能です。
機能アーキテクチャ
コアツールキット
OceanBase MCP Serverは標準化されたインターフェースを提供し、AIツールが直接データベース機能を呼び出すことをサポートします:
| ツール名 | 機能の説明 |
|---|---|
execute_sql |
任意のSQL文(SELECT/INSERT/UPDATE/DELETE/DDLなど)を実行します。 |
get_current_tenant |
現在のテナント名を取得します。 |
get_all_server_nodes |
クラスタノード情報を取得します(sysテナントのみ)。 |
get_resource_capacity |
クラスタリソース容量を照会します(sysテナントのみ)。 |
get_ob_ash_report |
OceanBase Active Session History(ASH)レポートを取得し、パフォーマンス診断に使用します。 |
get_current_time |
OceanBaseクラスタの現在時刻を返します。 |
search_oceanbase_document |
OceanBase公式ドキュメントを検索します(実験的機能)。 |
oceanbase_text_search |
OceanBaseデータベーステーブルで全文検索を使用してドキュメントを検索します。 |
oceanbase_vector_search |
OceanBaseデータベーステーブルでベクトル類似性検索を実行します。 |
oceanbase_hybrid_search |
ハイブリッド検索を実行し、関係条件フィルタリングとベクトル検索を組み合わせます。 |
ob_memory_query |
セマンティック検索を通じて、AIメモリシステム内の過去の対話記録を取得します。(AIメモリシステムツール) |
ob_memory_insert |
重要な対話内容を自動的にキャプチャして保存し、ナレッジベースを構築します。(AIメモリシステムツール) |
ob_memory_delete |
古いまたは冗長な対話メモを削除します。(AIメモリシステムツール) |
ob_memory_update |
新しい情報に基づいてメモ内容を更新または進化させます。(AIメモリシステムツール) |
リソースインターフェース
MCPプロトコルを通じて公開されるリソースインターフェースにより、AIツールは直接呼び出すことができます:
| リソースパス | 機能の説明 |
|---|---|
oceanbase://tables |
データベース内のすべてのテーブルを一覧表示します。 |
oceanbase://sample/{table} |
指定されたテーブルのサンプルデータ(最初の100行)を取得します。{table} をテーブル名に動的に置き換えることができます。 |
説明
OceanBase MCP Serverの最新ドキュメントについては、OceanBase MCP Serverを参照してください。
前提条件
CursorまたはMCPプロトコルをサポートする他のツール(Windsurf、Qwen Codeなど)がインストール済みであること。
OceanBaseクラスタのデプロイが完了し、MySQLモードのユーザーテナントが作成されていること。また、ユーザーテナントに接続するユーザーには、ターゲットデータベースに対する
CREATE、INSERT、DROP、SELECT権限が付与されている必要があります。- OceanBaseクラスタのデプロイに関する詳細は、デプロイの概要を参照してください。
- ユーザーテナントの作成に関する詳細は、テナントの作成を参照してください。
- ユーザー権限に関する詳細は、MySQLモードの権限分類を参照してください。
Python環境(バージョン3.10~3.12)がインストール済みであること。
- Pythonのインストールパッケージは、Python公式サイトからダウンロードできます。
統合手順
ステップ1:データベース接続情報を取得する
OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。例:
obclient -h$host -P$port -u$user_name -p$password -D$database_name
パラメータの説明:
$host:OceanBaseデータベースへの接続IPアドレス。OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)接続方式ではODPアドレスを使用し、直接接続方式ではOBServerノードのIPアドレスを使用します。$port:OceanBaseデータベースへの接続ポート。ODP接続方式のデフォルトポートは2883で、ODPデプロイ時にカスタマイズ可能です。直接接続方式のデフォルトポートは2881で、OceanBaseデータベースのデプロイ時にカスタマイズ可能です。$database_name:アクセス対象のデータベース名。注意
テナントに接続するユーザーには、データベースに対する
CREATE、INSERT、DROP、およびSELECT権限が付与されている必要があります。その他のユーザー権限の詳細については、MySQLモードの権限分類を参照してください。$user_name:テナントの接続アカウント。ODP接続の一般的な形式:ユーザー名@テナント名#クラスタ名またはクラスタ名:テナント名:ユーザー名。直接接続方式の形式:ユーザー名@テナント名。$password:アカウントのパスワード。
その他の接続文字列の詳細については、OBClientを使用したOceanBaseテナントへの接続を参照してください。
例:
obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
ステップ2:Python依存関係をインストールする
環境準備
uvパッケージマネージャーをインストールします。
macOS/Linux環境では、以下のコマンドを実行してuvパッケージマネージャーをインストールします。
curl -LsSf https://astral.sh/uv/install.sh | shWindows環境では、以下のコマンドを実行してuvパッケージマネージャーをインストールします。
irm https://astral.sh/uv/install.ps1 | iexまたは、pipコマンドを使用してuvパッケージマネージャーをインストールします。
pip install uv
uvが正常にインストールされたかどうか確認します。
uv --version
OceanBase MCP Serverのインストール
ディレクトリを選択し、以下のコマンドを実行して仮想環境を作成します。
uv venv以下のコマンドを実行して仮想環境を有効化します。
source .venv/bin/activate以下のコマンドを実行してOceanBase MCP Serverをインストールします。
uv pip install oceanbase-mcp
ステップ3:MCP Server環境の設定
.envファイルを作成します。cat > .env <<EOF OB_HOST=127.0.0.1 OB_PORT=2881 OB_USER=test_user001@mysql001 # 例:MySQLモードのテナントユーザー OB_PASSWORD=your_password OB_DATABASE=test EOFMCP Serverを起動します。
uv run oceanbase_mcp_server \ --transport sse \ # stdio/streamable-http/sseモードをサポート --host 0.0.0.0 \ # 外部アクセスを許可する。127.0.0.1に変更してローカルアクセスを制限することも可能 --port 8000 # カスタムポート(例えば8001は後続の設定を調整する必要があります)
ステップ4:CursorでMCP Serverに接続するための設定
Cursorの設定ページに移動します:右上の歯車アイコンをクリック → MCPを選択 → New MCP Serverをクリックします。
mcp.jsonの設定を編集します。{ "mcpServers": { "ob-sse": { "autoApprove": [], "disabled": false, # サービスを有効にするにはfalseに設定する必要があります "timeout": 60, "type": "sse", "url": "http://127.0.0.1:8000/sse" # ステップ3のポートと一致させる } } }接続を検証します。
保存後、MCPページに戻ると、新しく追加されたMCPが表示されます。
新規追加後、Chatウィンドウで質問すると、Cursorは自動的にMCPのツールを使用します。
クイックスタートケース
OceanBase + MCP Serverの構築が完了したら、データ分析を迅速に試すことができます。他のAIツールでも本記事の効果を実現できますが、このケースではCursorを例に、強力なAIツールがOceanBase MCP Serverと連携してどのように動作するかを示します。
ユーザーデータ分析
コマンド入力。
ユーザーデータを分析して、ユーザーの年齢分布と都市分布を確認してください。Cursorの実行プロセス。
Cursorは
execute_sqlを呼び出して集計クエリを実行します。SELECT age, city, COUNT(*) AS user_count FROM users GROUP BY age, city;構造化された分析結果が自動生成されます。
コマンド拡張。
上記の結果をグラフに変換してください。出力結果。
年齢分布と都市分布の円グラフが自動生成されます。
商品販売分析
コマンド入力。
商品の販売状況を分析し、最も人気のある商品カテゴリとブランドを特定してください。出力例。
Cursorは分析レポートを提供し、戦略と推奨事項の洞察を示します。
注文傾向分析
コマンド入力。
注文データを分析して、販売傾向とユーザーの購買行動を確認してください。出力例。
注文データの分析レポートが生成され、データに基づいて提案が示されます。
関連ドキュメント
OceanBase MCP Serverの詳細については、OceanBase MCP Serverを参照してください。