mcpField
A
AlibabaCloud DMS MCP Server

AlibabaCloud DMS MCP Server

ローカル
github.com/aliyunデータベース5413 週間前に更新

AlibabaCloud DMS MCP Server について

AlibabaCloud DMS MCP Server は、アリババクラウドのサービスや主要なデータベース、データウェアハウスを含む 40 種類以上のデータソースに統一的にアクセスする MCP サーバーです。自然言語でのデータ照会を必要とする開発者や DBA を対象とし、アクセス制御と SQL 監査ログによるセキュリティ機能も備えています。

主な機能

  1. 0140 種類以上のデータソースへの統一アクセス
  2. 02自然言語から SQL への変換(NL2SQL)
  3. 03インスタンス、テーブル、フィールド、行単位のアクセス制御
  4. 04高リスク SQL の検出と遮断
  5. 05SQL 操作の監査ログ
  6. 06マルチインスタンスとシングルデータベースの 2 つのモード

活用シーン

  1. 01AI アシスタントから本番環境やテスト環境のデータベースを照会
  2. 02異種データベース間でスキーマとデータを一括確認
  3. 03自然言語の質問から分析用 SQL を生成して実行

MCP 対応

このプロジェクトは MCP サーバーであり、インスタンス一覧の取得、テーブル構造の確認、SQL の実行、データ変更オーダーの作成、SQL の最適化などのツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

英語 | 中国語

AlibabaCloud DMS MCP Server

AI 時代のデータセキュリティアクセスゲートウェイ|インテリジェントデータクエリエンジン|40 以上のデータソースをサポート


主な機能

セキュアなアクセス

  • アカウントとパスワードのセキュリティ管理:データベースのアカウントとパスワードを手動で管理することなく安全に管理し、機密情報の漏えいを効果的に防止します。
  • イントラネットアクセスのサポート:内部ネットワーク経由でデータベースにアクセスできるため、データを社内に保持し、データセキュリティとプライバシー保護を大幅に強化します。
  • きめ細かな権限管理:インスタンス、データベース、テーブル、フィールド、行レベルのアクセス制御に対応し、呼び出し元の権限を正確に制限することで、不正な操作を防ぎ、データセキュリティを確保します。
  • 高リスク SQL の識別とブロック:豊富なルールエンジンを内蔵し、潜在的に高リスクな SQL をリアルタイムで識別してブロックし、セキュリティリスクを軽減します。
  • SQL 監査証跡:すべての SQL 操作ログを記録し、完全な追跡とコンプライアンス監査をサポートして、規制要件を満たします。

インテリジェントなデータ照会

  • NL2SQL アルゴリズムを内蔵:自然言語で入力された質問に基づいてデータテーブルをインテリジェントに照合し、テーブル内のビジネスセマンティクスを理解して SQL クエリを生成・実行し、結果をすばやく取得します。
  • パーソナライズされたナレッジベース:データ照会用のメタデータとナレッジベースを内蔵し、カスタムのビジネス知識やクエリパターンに対応することで、ビジネスシナリオに沿った独自のインテリジェントなデータ照会機能を構築できます。

複数のデータソースに対応

  • 幅広いデータソースをサポート:40 種類以上の主要なデータベース/データウェアハウスに対応し、複数のソースからの統合アクセスを実現します。
  • 環境をまたいだ一元管理:開発、テスト、本番環境にあるデータベースインスタンスの一元管理に対応し、運用効率を向上させます。
  • プラットフォーム間のシームレスな統合:Alibaba Cloud や AWS などの主要なクラウドプラットフォームに加え、自社構築のデータベース/データウェアハウスも対象とし、メンテナンスコストを効果的に削減します。

対応エコシステム

  • すべての Alibaba Cloud データソースに対応しています:RDS、PolarDB、ADB series、Lindorm series、TableStore series、Maxcompute series。
  • 主流のデータベース/データウェアハウスに対応しています:MySQL、MariaDB、PostgreSQL、Oracle、SQLServer、Redis、MongoDB、StarRocks、Clickhouse、SelectDB、DB2、OceanBase、Gauss、BigQuery など。

主なアーキテクチャ

アーキテクチャ

使用方法

DMS MCP Server は現在、2 つの使用モードに対応しています。

モード 1:マルチインスタンスモード
  • DMS へのインスタンス追加に対応し、複数のデータベースインスタンスにアクセスできます。
  • 複数のデータベースインスタンスを管理・アクセスする必要があるシナリオに適しています。
シナリオ例:

本番、テスト、開発環境にあるさまざまな種類のデータベースインスタンス(MySQL、Oracle、PostgreSQL など)を管理し、アクセスする必要がある企業の DBA を想定します。DMS MCP Server を使用すると、これらの異種データベースへの統合アクセスと一元管理を実現できます。

質問の例:

  • 本番環境にあるインスタンスはどれですか?
  • test という名前のデータベースをすべて一覧表示してください。
  • myHost:myPort インスタンスにある test_db データベースの詳細を取得してください。
  • test_db データベースにはどのようなテーブルがありますか?
  • ツールを使って test_db データベースのデータを照会し、「今日のユーザートラフィックはどれくらいですか?」という質問に答えてください。
モード 2:単一データベースモード
  • サーバーの CONNECTION_STRING パラメーターを設定して、対象データベースを直接指定します(形式:dbName@host:port)。
  • 単一のデータベースへのアクセスが中心となるシナリオに適しています。
シナリオ例 1:

開発やテストのために、固定のデータベース(例:[email protected]:3306)に頻繁にアクセスする開発者を想定します。DMS MCP Server の設定で CONNECTION_STRING パラメーターを次のように設定します:

CONNECTION_STRING = [email protected]:3306

以降はサービスを起動するたびに、DMS MCP Server が指定したデータベースに直接アクセスするため、インスタンスを切り替える必要はありません。

質問の例:

  • どのようなテーブルがありますか?
  • test_table テーブルのフィールド構造を表示してください。
  • test_table テーブルの最初の 20 行を取得してください。
  • ツールを使って、「今日のユーザートラフィックはどのくらいですか?」に回答してください。
シナリオ例 2:

注文、ユーザー、商品などのビジネスデータを頻繁にクエリして分析する必要がある、EC 企業のデータアナリストを想定します。会社の中核となるビジネスデータベースは [email protected]:3306 にあります。

DMS MCP Server で次のパラメーターを設定します:

CONNECTION_STRING = [email protected]:3306

自然言語で質問するだけで、DMS MCP が質問を SQL に変換し、結果を返します。

質問の例:

  • 今日の注文総数はいくつですか?
  • 省別の注文数ランキングを教えてください。
  • 過去 7 日間の新規ユーザー数を日別に教えてください。
  • 売上高が最も高い商品カテゴリはどれですか?

ツール一覧

ツール名説明適用モード
addInstanceDMS にインスタンスを追加します。Aliyun のインスタンスのみサポートしています。マルチインスタンスモード
listInstancesDMS のインスタンスを検索します。マルチインスタンスモード
getInstanceホストとポートに基づいて、インスタンスの詳細情報を取得します。マルチインスタンスモード
searchDatabaseschemaName に基づいてデータベースを検索します。マルチインスタンスモード
getDatabase特定のデータベースの詳細情報を取得します。マルチインスタンスモード
listTables指定したデータベース内のテーブルを一覧表示します。マルチインスタンスモード & 単一データベースモード
getTableDetailInfo特定のテーブルの詳細情報を取得します。マルチインスタンスモード & 単一データベースモード
executeScriptSQL スクリプトを実行し、結果を返します。マルチインスタンスモード & 単一データベースモード
createDataChangeOrderDMS でデータ変更オーダーを作成します。マルチインスタンスモード & 単一データベースモード
getOrderInfoDMS からオーダー情報を取得します。マルチインスタンスモード & 単一データベースモード
submitOrderApprovalDMS でオーダーを承認申請します。マルチインスタンスモード & 単一データベースモード
approveOrderDMS でオーダーを承認または却下します。マルチインスタンスモード & 単一データベースモード
generateSql自然言語の質問を SQL クエリに変換します。マルチインスタンスモード
askDatabaseデータベースに自然言語で問い合わせます(NL2SQL + SQL の実行)。単一データベースモード
fixSqlSQL エラーを分析して修正します。マルチインスタンスモード & 単一データベースモード
answerSqlSyntaxSQL 構文に関する質問に回答します。マルチインスタンスモード & 単一データベースモード
optimizeSqlSQL のパフォーマンスを分析して最適化します。マルチインスタンスモード & 単一データベースモード

ツールの全一覧については、ツール一覧を参照してください。


Supported Data Sources

DataSource/ToolNL2SQL nlsqlExecute script executeScriptShow schema getTableDetailInfoAccess control defaultAudit log default
MySQL✅✅✅✅✅
MariaDB✅✅✅✅✅
PostgreSQL✅✅✅✅✅
Oracle✅✅✅✅✅
SQLServer✅✅✅✅✅
Redis❌❌✅✅✅
MongoDB❌❌✅✅✅
StarRocks✅✅✅✅✅
Clickhouse✅✅✅✅✅
SelectDB✅✅✅✅✅
DB2✅✅✅✅✅
OceanBase✅✅✅✅✅
Gauss✅✅✅✅✅
BigQuery✅✅✅✅✅
PolarDB✅✅✅✅✅
PolarDB-X✅✅✅✅✅
AnalyticDB✅✅✅✅✅
Lindorm✅✅✅✅✅
TableStore❌❌✅✅✅
Maxcompute✅✅✅✅✅
Hologres✅✅✅✅✅

前提条件

  • uv がインストールされていること
  • Python 3.10 以降がインストールされていること
  • Alibaba Cloud DMS(AliyunDMSFullAccess)へのアクセス権を持つ AK/SK または STS Token があること。権限操作の追加については、認可管理を参照してください。

事前設定

DMS 経由でデータベースインスタンスにアクセスする前に、まずインスタンスを DMS に追加する必要があります。

インスタンスを追加する方法は 2 つあります。

方法 1:DMS MCP が提供する addInstance ツールを使用してインスタンスを追加する
DMS MCP サーバーは、インスタンスをすばやく DMS に追加するための addInstance ツールを提供します。
詳細については、「ツール一覧」にある addInstance ツールの説明を参照してください。

方法 2:DMS コンソールからインスタンスを追加する

  1. DMS コンソールにログインします。
  2. コンソールのホームページで、左側のデータベースインスタンス領域にある インスタンスの追加 アイコンをクリックします。
  3. 「インスタンスの追加」ページで、インスタンス情報(インスタンスアドレス、ポート、ユーザー名、パスワードなど)を入力します。
  4. 送信 をクリックして、インスタンスの追加を完了します。

はじめに

オプション 1:ソースコードから実行する
コードをダウンロードする
git clone https://github.com/aliyun/alibabacloud-dms-mcp-server.git
MCP クライアントを設定する

設定ファイルに次の内容を追加します。

複数インスタンスモード

{
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_mcp_server",
        "run",
        "server.py"
      ],
      "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": "uv",
      "args": [
        "--directory",
        "/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_mcp_server",
        "run",
        "server.py"
      ],
      "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",
        "CONNECTION_STRING": "dbName@host:port"
      }
    }
  }
}
オプション 2:PyPI パッケージから実行する

複数インスタンスモード

{
  "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": "sts_security_token optional, required when using STS Token",
        "CONNECTION_STRING": "dbName@host:port"
      }
    }
  }
}

お問い合わせ

ご質問やご提案がある場合は、Alibaba Cloud DMS MCP グループに参加してください(DingTalk グループ ID:129600002740)。

DingTalk

セキュリティ

ネットワークバインド

この MCP サーバーは 127.0.0.1(localhost)のみをバインドします。リモートネットワークアクセスには対応していません。すべての接続はローカルマシンから開始する必要があります。この設計により、サーバーが誤って起動された場合でも、ネットワークに公開されることはありません。

SQL 実行に関する免責事項

重要:このツールは、SELECT、INSERT、UPDATE、DELETE、DDL ステートメントを含む、あらゆる SQL の実行機能を提供するように設計されています。

この MCP サーバーを使用することで、以下の内容を確認し、同意したものとみなされます。

  1. Alibaba Cloud RAM で適切かつ最小限の権限が設定された AK/SK(AccessKey)を使用する責任は、お客様のみにあります。
  2. データベースインスタンスで DMS セーフホスティングモードを有効にすることを強く推奨します。このモードでは、組み込みの SQL レビュー、リスク識別、承認ワークフローが利用できます。
  3. このプロジェクトのメンテナーは、このツールを介した SQL 実行によって生じたデータの損失、破損、またはセキュリティインシデントについて、一切責任を負いません。
  4. ベストプラクティス:
    • クエリのみを行う場合は、読み取り専用の AK/SK を使用する
    • DMS のきめ細かな権限制御を有効にする
    • コンプライアンスのため、SQL 監査ログを有効にする
    • アクセス認証情報を定期的に確認し、ローテーションする
セキュリティ設計
  • コマンドインジェクションのリスクなし:コードベースでは subprocess、os.system、eval()、exec() を使用していません。すべての操作は Alibaba Cloud SDK を通じて実行されます。
  • SSRF のリスクなし:すべてのネットワークリクエストは、SDK 経由で固定の Alibaba Cloud エンドポイント(dms-enterprise.cn-hangzhou.aliyuncs.com)に送信されます。ユーザーが指定した URL を取得することはありません。
  • 入力検証:検索インターフェースでは入力の長さを検証し、SQL を実行しないインターフェース経由のインジェクションを防ぐため、危険性のある SQL パターンを拒否します。

ライセンス

このプロジェクトは Apache 2.0 ライセンスの下でライセンスされています。


エージェントスキル(MCP とは独立)

MCP サーバーに加えて、このプロジェクトでは DMS Enterprise 向けの AI エージェントスキルも提供しています。これらのスキルにより、あらゆる AI エージェント(Codex、ChatGPT、Cursor など)が、MCP プロトコルを必要とせず、OpenAPI 経由で DMS リソースを直接管理できます。

クイックスタート(スキル)
  1. スキル定義を読みます:
    skills/database/dms/alicloud-database-dms-enterprise/SKILL.md

  2. 利用可能な API を確認します:

    python3 skills/database/dms/alicloud-database-dms-enterprise/scripts/list_openapi_meta_apis.py
    
  3. AccessKey を設定します:

    export ALICLOUD_ACCESS_KEY_ID="your-ak"
    export ALICLOUD_ACCESS_KEY_SECRET="your-sk"
    export ALICLOUD_REGION_ID="cn-hangzhou"
    
スキルの機能
カテゴリー操作
インスタンス管理データベースインスタンスの登録、一覧表示、更新、削除
SQL の実行と監査スクリプトの実行、NL2SQL、SQL のレビューと最適化
権限管理権限申請の作成、ユーザー権限の付与/取り消し
データセキュリティ機密列の識別、データマスキング、監査ログ
タスクオーケストレーションタスクフロー(DAG)の作成、実行、監視
メタデータナレッジテーブルの業務知識の取得/編集
プロンプトの例

DMS のシナリオに応じたプロンプトテンプレートについては、skills/examples/prompts/ を参照してください:

  • インスタンス管理とリソースのクエリ
  • SQL の実行と監査
  • 権限とセキュリティの管理
  • タスクオーケストレーションとデータ変更
  • API の確認とメタデータ
スキル一覧
カテゴリースキル説明パス
database/dmsalicloud-database-dms-enterpriseOpenAPI 経由で Alibaba Cloud Data Management Service(DMS Enterprise)を管理します。データベースインスタンス管理、SQL 監査、データセキュリティ、タスクオーケストレーション、機密データ保護、権限管理、データベース操作ワークフローに使用します。skills/database/dms/alicloud-database-dms-enterprise

エージェント固有のガイドラインについては、AGENTS.md を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。