モデルコンテキストプロトコル (MCP) は、大規模言語モデル (LLM) と外部ツール間の通信チャネルを確立します。このトピックでは、マルチクラウド互換の MCP サーバーを使用して Data Management (DMS) MCP を設定し、DMS でホストされているデータベースに安全にアクセスする方法について説明します。
背景情報
従来のデータベース MCP 実装には、次の制限があります。
-
異種データベースとの互換性の制限:従来の実装では、同じ種類のデータベースへの接続と操作のみがサポートされているため、統一されたクロスプラットフォーム管理が不可能です。
-
アカウントと権限管理の欠如:認証情報を個別に管理するための一元化された機能がなく、手動でのメンテナンスに依存しているため、セキュリティリスクが生じます。
-
SQL 操作の制限:手動で入力された基本的な標準 SQL 文のみをサポートし、複雑な構文や非標準の構文を解析できません。
-
組み込みの NL2SQL サポートの欠如:自然言語から SQL (NL2SQL) へのクエリをサポートしておらず、この機能を使用するには外部 LLM との統合が必要です。
DMS MCP は、互換性とセキュリティの課題を解決する標準化されたインターフェイスを通じて、LLM に統一されたデータインジェストとアクセス機能を提供することで、これらの問題に対処します。さらに、DMS MCP は、スキーマ情報の取得、データアクセスオブジェクト (DAO) コードの生成、構造分析、自動 SQL ルーティングによる上位アプリケーションの正確なデータ取得など、新しい機能が利用可能になります。
DMS MCP のコア機能
-
セキュアなアクセス
-
認証情報の安全なホスティング:DMS はデータベースのユーザー名とパスワードを安全に管理します。これにより、手動での処理が不要になり、機密情報の漏洩を防ぎます。
-
プライベートネットワーク経由のアクセス:パブリックエンドポイントを公開することなく、プライベートネットワーク経由でデータベースにアクセスできます。これにより、データのセキュリティとプライバシーが確保されます。
-
きめ細かいアクセス制御:インスタンス、データベース、テーブル、列、行のレベルで正確な権限を適用して、不正な操作を防ぎ、データを保護できます。
-
リスクの高い SQL 文の検出とブロック:組み込みのセキュリティルールにより、潜在的に危険な SQL 文をリアルタイムで特定してブロックし、セキュリティリスクを軽減します。
-
SQL 監査とトレーサビリティ:すべての SQL 操作がログに記録され、完全なトレーサビリティとコンプライアンス監査が可能になり、規制要件を満たします。
-
-
インテリジェントなクエリ
-
組み込みの NL2SQL アルゴリズム:この機能は、関連するテーブルをインテリジェントに照合し、そのビジネスコンテキストを理解することで、自然言語の質問を SQL クエリに変換します。その後、クエリが実行され、結果が迅速に返されます。
-
カスタマイズ可能なナレッジベース:この機能には、組み込みのメタデータとクエリナレッジベースが含まれています。ビジネス知識とクエリパターンをカスタマイズして、特定のシナリオに合わせたインテリジェントなクエリ機能を構築できます。
-
-
複数のデータソースのサポート
-
多様なデータソースの統一管理:DMS MCP は 40 以上の主流データベースとデータウェアハウスをサポートしており、複数のデータタイプへの統一されたアクセスを可能にします。
-
複数環境の一元管理:単一のインターフェイスから、開発、テスト、本番環境にまたがるデータソースを管理できます。これにより、運用保守 (O&M) の効率が向上します。
-
Alibaba Cloud や AWS などの主流クラウドプラットフォーム、およびセルフマネージドデータベースやデータウェアハウスとシームレスに統合し、メンテナンスコストを効果的に削減します。
-
ワークフロー図
次の図は、クライアントがリクエストを送信したときのデータアクセスワークフローを示しています。
シナリオ
シナリオ1:Tongyi Lingma などの AI IDE によるデータアクセスオブジェクト (DAO) コードの生成
以下では、従来の開発ワークフローと DMS MCP を使用したインテリジェントな開発を比較します。
-
従来のワークフロー:データベースツールを使用してテーブル作成 SQL 文を手動で実行し、統合開発環境 (IDE) で DAO コードを記述し、データベースツールを使用してデータを構築し、その後データをプレビューします。
-
インテリジェントな開発ワークフロー:AI IDE でテーブルを設計し、DMS MCP がテーブル作成 SQL 文を自動的に実行できるようにし、IDE で DAO コードを自動生成し、MCP を使用してインテリジェントにデータを構築し、その後結果をプレビューします。
シナリオ2:DMS NL2SQL を使用したデータ統計の直接取得
マーケティングアナリストは DMS NL2SQL を使用して、自然言語で統計結果を取得できるため、データトレンドの分析が容易になります。
料金
DMS MCP は現在パブリックプレビュー中であり、無料で利用できます。
このソリューションに関する詳細情報が必要な場合は、フォームに連絡先を記入するか、DingTalk グループ (ID: 129600002740) に参加して DMS のテクニカルサポートにお問い合わせください。
事前準備
DMS MCP を使用して DMS でホストされているデータベースにアクセスする前に、DMS にデータベースインスタンスを登録し、各インスタンスのセキュリティホスティングを有効にする必要があります。インスタンスを登録するには、次のいずれかの方法を使用できます。
方法1:DMS MCP ツールを使用した Alibaba Cloud データベースインスタンスの登録
-
この方法は Alibaba Cloud データベースインスタンスのみをサポートします。
-
このツールを使用して登録されたインスタンスは、デフォルトでセキュリティホスティングが自動的に有効になります。
DMS MCP サーバーは、DMS にインスタンスを迅速に登録するための addInstance ツールを提供します。MCP 統合エージェント (対話型 AI アプリケーション) で、LLM にインスタンスの登録を指示できます。これを行うには、インスタンス ID、データベースユーザー名、パスワード、リージョンなどの詳細を提供します。その後、LLM は適切なツールを自動的に呼び出します。
方法2:DMS コンソール経由での Alibaba Cloud、他クラウド、またはセルフマネージドデータベースインスタンスの登録
この方法は、Alibaba Cloud データベースインスタンス、他クラウド上のデータベースインスタンス、およびセルフマネージドデータベースインスタンスをサポートします。次の手順では、Alibaba Cloud ApsaraDB RDS for MySQL データベースを例に説明します。
DMSコンソールV5.0 にログインします。
-
コンソールの左側にある[データベースインスタンス]エリアで、インスタンスの追加アイコン
をクリックします。説明また、メニューバーからを選択し、[新規]をクリックしてインスタンスを追加することもできます。
-
[Add Instance] ページで、インスタンス情報を入力します。
カテゴリ
設定項目
説明
[データソース]
-
デフォルトは [Alibaba Cloud - MySQL] です。データベースの種類は変更できます。
[基本情報]
[データベースの種類]
データベースインスタンスの種類を選択します。
説明データベースの種類を選択すると、DMS は [Basic Information] ページの設定項目を自動的に更新します。
[インスタンスリージョン]
データベースインスタンスが存在するリージョンを選択します。
[その他のプライマリアカウント]
このフィールドは、[Cross Alibaba Cloud Account Instance] を選択した場合にのみ表示されます。データベースインスタンスを所有するルートアカウントを選択します。
説明リストにルートアカウントが表示されない場合は、ユーザーの追加 をクリックして購入者のルートアカウントを追加します。詳細については、「ユーザーの追加」をご参照ください。
[登録方法]
データベースインスタンスの登録方法を選択します。オプションは [Instance ID] または [Connection string] です。
[Instance ID] または [Connection string]
[Instance ID] または [Connection string] を入力します。
説明接続文字列は、プライベートエンドポイントとポートで構成されます。RDS MySQL の場合、フォーマットは rm-XXXXXXX.mysql.rds.aliyuncs.com:3306 です。
[セキュリティホスティング]
これを有効のままにします。
セキュリティホスティングを有効にすると、認証情報の直接的な公開を防ぎ、きめ細かい権限管理が可能になります。
[アクセス方法]
次のアクセス方法が利用可能です。
-
[ユーザー名とパスワードによるログオン]:既存のデータベースユーザー名とパスワードを手動で入力します。
-
[KMS 認証情報によるログオン]:データベースアクセス用に KMS で作成された RDS 認証情報を手動で選択します。
説明このオプションは、RDS インスタンスを登録する場合にのみ表示されます。
[付加価値機能パッケージ]
必要に応じて機能パッケージを選択します。
-
[セキュリティコラボレーション]または[安定的な変更] (いずれかを選択):セキュリティコラボレーションには、安定的な変更のすべての機能が含まれ、開発および承認ワークフローをカスタマイズするための DevOps 機能が追加されます。安定的な変更は、ロックレス変更や SQL レビューなど、安定したデータベース運用のためのソリューションを提供します。
説明セキュリティコラボレーションまたは安定的な変更を選択しない場合、インスタンスはデフォルトでフレキシブル管理になります。
-
[機密データ保護]:この機能は、機密データを制御およびマスクします。ビジネスニーズに基づいて有効にします。詳細については、「機密データ保護の有効化」をご参照ください。
[セキュリティルール]
このフィールドは、セキュリティコラボレーションを選択した場合にのみ表示されます。
きめ細かいデータベース制御のために、システムデフォルトまたはカスタムセキュリティルールを選択できます。
[分類および等級付けテンプレート]
このフィールドは、機密データ保護が有効になっている場合にのみ表示されます。詳細については、「分類および等級付けテンプレート」をご参照ください。
[詳細情報]
-
このセクションのパラメーターはデフォルト値のままにできます。詳細については、「ApsaraDB インスタンスの登録」をご参照ください。
-
-
必要な情報を入力した後、左下隅にある[接続テスト]をクリックします。
説明テストが失敗した場合は、エラーメッセージを確認し、インスタンス情報を検証してください。
-
["Connection successful"] というメッセージが表示されたら、[Submit] をクリックします。
データベースインスタンスが DMS に正常に登録されました。
登録手順の詳細については、「ApsaraDB インスタンスの登録」および「他クラウドまたはセルフマネージドデータベースインスタンスの登録」をご参照ください。
使用モード
DMS MCP サーバーは2つの使用モードをサポートしています。
|
モード |
適用シナリオ |
|
モード1:マルチインスタンスモード |
このモードを使用して、異なる環境にまたがる複数のデータベースインスタンスを管理し、アクセスします。すべてのインスタンスを DMS に登録し、DMS MCP サーバーを介して管理します。 |
|
モード2:単一データベースモード |
単一のデータベースにアクセスする場合は、このモードを使用します。サーバーの CONNECTION_STRING パラメーターを設定して、ターゲットデータベースを指定します。サービスが開始されると、DMS MCP サーバーは指定されたデータベースに直接アクセスします。 フォーマット: DMS コンソールで、左側のリストからデータベースを見つけ、その名前をダブルクリックし、SQL ウィンドウを使用して SQL ウィンドウを開いた後、上部の接続情報バーで値を確認します。例: |
クイックスタート
オプション1:PyPI パッケージを使用した実行
-
Data Management (DMS) の AliyunDMSFullAccess 権限を持つAccessKey またはSecurity Token Service (STS) トークンを取得します。
権限の追加方法の詳細については、「権限管理」をご参照ください。
-
MCP クライアントの設定ファイルに次の構成を追加します。
-
マルチインスタンスモード
{ "mcpServers": { "dms-mcp-server": { "command": "uvx", "args": [ "alibabacloud-dms-mcp-server@latest" ], "env": { "ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key", "ALIBABA_CLOUD_SECURITY_TOKEN": "sts_security_token optional, required when using STS Token" } } } } -
単一データベースモード
{ "mcpServers": { "dms-mcp-server": { "command": "uvx", "args": [ "alibabacloud-dms-mcp-server@latest" ], "env": { "ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key", "ALIBABA_CLOUD_SECURITY_TOKEN": "optional sts_security_token, required when using STS Token", "CONNECTION_STRING": "dbName@host:port" } } } }
-
オプション2:DMS でホストされている MCP サービスの使用
DMSコンソールV5.0 にログインします。
-
MCP サービスをアクティブ化します。
-
右下隅にある MCP アイコン
にマウスポインターを合わせ、表示されるダイアログボックスで [Activate Now] をクリックします。DMS MCP ダイアログボックスには、[Credential Security] (組み込みの認証情報ホスティング)、[Secure Execution] (プライベートネットワークアクセスときめ細かい権限)、[Unified Compatibility] (40 以上の主流データソースのサポート)、[Intelligent Querying] (組み込みの NL2SQL) の4つのコア機能が表示されます。ダイアログボックスには、[product documentation] と [demonstration videos] へのクイックリンクも提供されています。
-
MCP サービスのアクティベーションスコープを選択します。
-
[Confirm Activation] をクリックします。
-
-
サービスがアクティブ化されたら、MCP 構成情報を表示します。
説明右下隅にある MCP アイコン
にマウスポインターを合わせると、表示されるダイアログボックスで MCP 構成を表示できます。 -
DMS MCP サービスを AI エージェントに統合し、使用を開始します。
説明-
DMS MCP サービスを使用する際は、手順 3 の [MCP 設定例] にある [Authorization] フィールドの値を使用して、Authorization ヘッダーに Bearer Token を設定してください。
-
MCP サーバーのデータベーススコープを変更するには、まず MCP サーバーを停止できます。これを行うには、MCP アイコン
にマウスポインターを合わせ、[Cancel Service] をクリックし、表示されるダイアログボックスで [Confirm Cancellation] をクリックします。サービスが停止された後、再度MCP サーバーをアクティブ化できます。
-
オプション3:他プラットフォームでホストされている DMS MCP サービスの使用
DMS MCP サービスは、Alibaba Cloud Model Studio、ModelScope、Function AI で使用できます。
DMS MCP がサポートするツール
|
ツール名 |
説明 |
サポートされるモード |
|
|
DMS にインスタンスを登録します。インスタンスが既に存在する場合、その情報を返します。 |
マルチインスタンスモード |
|
|
DMS 内のインスタンスのリストを検索します。 |
マルチインスタンスモード |
|
|
ホストとポートで詳細なインスタンス情報を取得します。 |
マルチインスタンスモード |
|
|
schemaName でデータベースを検索します。 |
マルチインスタンスモード |
|
|
特定のデータベースの詳細情報を取得します。 |
マルチインスタンスモード |
|
|
指定されたデータベース内のテーブルを検索します。 |
マルチインスタンスモードと単一データベースモード |
|
|
特定のデータベーステーブルの詳細情報を取得します。 |
マルチインスタンスモードと単一データベースモード |
|
|
SQL スクリプトを実行し、結果を返します。 |
マルチインスタンスモードと単一データベースモード |
|
|
DDL/DML 操作リクエストを送信するためのデータ変更チケットを作成します。 |
マルチインスタンスモードと単一データベースモード |
|
|
ステータス、承認ワークフロー、実行ログなど、チケットの詳細をクエリします。 |
マルチインスタンスモードと単一データベースモード |
|
|
実行前にレビューのためにチケットを承認ワークフローに送信します。 |
マルチインスタンスモードと単一データベースモード |
|
|
自然言語の質問を実行可能な SQL 文に変換します。 |
マルチインスタンスモード |
|
|
自然言語 (NL2SQL + SQL 実行) を使用してデータベースをクエリします。 |
単一データベースモード |
|
|
構文またはロジックエラーのある SQL 文を自動的に修正します。 |
マルチインスタンスモードと単一データベースモード |
|
|
SQL 構文の問題に関する説明と提案を提供します。 |
マルチインスタンスモードと単一データベースモード |
|
|
SQL 文を分析および最適化して、実行効率を向上させます。 |
マルチインスタンスモードと単一データベースモード |